5b54eba6619b55ebe18c183dbc65c26e7da82e18
mspeir
Thu Sep 3 09:39:15 2026 -0700
docker help: promote the prebuilt image section to h2 and split out the build path
Code review pointed out that the section 3334b0d added was an h3 nested under "Using
Docker Desktop for UCSC Genome Browser" while every other entry in the page's table of
contents is an h2. It is now an h2.
That alone left the four build-your-own h3s that follow it (Obtaining a Dockerfile,
Creating a Image, Creating a Container, Using Docker Desktop to Create a Container)
nested under the prebuilt image section, which is the wrong parent since they describe
building rather than pulling. They now sit under a new "Building the Image Yourself"
h2, which also gets a table of contents entry. Every h2 on the page is now listed in
the contents and every h3 is under the h2 it belongs to.
refs #37764
Co-Authored-By: Claude Opus 5 (1M context)
Docker is a platform for developing, testing and running applications.
Docker can be used to run genomics tools and manage software such as the UCSC Genome Browser.
Docker offers consistency across different computers and environments by packaging everything
needed including specific software versions and configurations into a self-contained unit called
a container.
A container is software that packages up code and all its dependencies to run an application
quickly and reliably from one computing environment to another. A container is isolated from other
containers and a Docker container can be run on a developer's local laptop, virtual machines, on
cloud providers, or other combinations of environments. A genomics analysis pipeline or entire
analysis environment can be packaged to a local computer into a Docker container and moved to a
cluster or a cloud server. See also: Use containers to Build, Share and Run applications
A Dockerfile is a text file that provides instructions to build an image. The Dockerfile is written
in Dockerfile syntax.
A docker image is a read-only template with instructions and everything needed to run an
application for the container. See also: Overview of the get started guide
Start Docker Desktop after installation is complete:
UCSC publishes a ready-made Genome Browser image on Docker Hub as
genomebrowser/server. The
image is rebuilt for every Genome Browser release and tagged with the version number, for example
The following commands download the image and start a container, mapping port 8080 on the host
machine to port 80 in the container: The Genome Browser is then available at http://localhost:8080 To pull a specific release rather than the most recent one, add the version tag:
Plan on about 8GB of disk space for the image itself. The download is around 2.6GB and unpacks to
around 7.4GB. Track data is downloaded from UCSC as you use the browser and needs space beyond
that. See the Create a Docker Volume for Data Persistence section below
for keeping that data between container restarts.
Build the image from the Dockerfile instead if you need to change how it is built, for instance to
add other software or to change the Genome Browser configuration at build time. The next sections
describe how to do that. The UCSC Genome Browser dockerfile can be obtained from the
UCSC Genome Browser Github
by using the wget command:
Once the dockerfile has been downloaded, running the docker build with the 't' option allows the
naming and the optional tag (format: "name:tag") of the image. The image can be created by
running the following command in the same directory where the dockerfile is located: After the image has been created, running the docker run command and the image with the -d
option allows the container to be run in the background, whereas the default runs the container in
the foreground. The -p option publishes a container's port(s) to the host. The following command
maps port 8080 on the host machine to port 80 in the container and names the container using the -name option:
Docker Help Page
Contents
What is Docker?
How to Install Docker Desktop?
Using Docker Desktop for UCSC Genome Browser
Using the Prebuilt UCSC Genome Browser Image
+Building the Image Yourself
Create a Docker Volume for Data Persistence
Updating the Latest UCSC Genome Browser Version
Customize a UCSC Genome Browser Docker Container
What is Docker?
Container
Image
How to Install Docker Desktop?
Windows
macOS
Linux
Using Docker Desktop for UCSC Genome Browser
-sudo systemctl start dockerUsing the Prebuilt UCSC Genome Browser Image
+Using the Prebuilt UCSC Genome Browser Image
v502. The latest tag always points at the most recent release, and a
single tag covers both Intel and Apple Silicon machines. Most people should pull this image rather
than build the Dockerfile themselves, since pulling takes a few minutes where a build takes
considerably longer.docker pull genomebrowser/server
docker run -d --name ucsc_genomebrowser_container -p 8080:80 genomebrowser/serverdocker pull genomebrowser/server:v502Building the Image Yourself
+
Obtaining a UCSC Genome Browser Dockerfile
wget https://raw.githubusercontent.com/ucscGenomeBrowser/kent/master/src/product/installer/docker/DockerfileCreating a Image
docker build . -t user_name/ucsc_genomebrowser_imageCreating a Container
docker run -d --name ucsc_genomebrowser_container -p 8080:80 user_name/ucsc_genomebrowser_image
Accessing the running container via http://localhost:8080
Running the following command will list the running container:
docker container ls
Running the following command stops the running container::
docker stop <container_name_or_id>
Running the following command removes the existing container::
docker rm <container_name_or_id>
The Docker Desktop user interface can be used to run the container by going to the images tab and clicking the run button under Actions:
Click Optional settings in the "Run a new container" pop-up window:
Enter a Container name and a Host port in the "Run a new container" popup window:
Click the link with the Host port to go to the running container via localhost:
A Docker volume allows the data to be persistent (long-lasting) after the container restarts and mount to a host directory or another container's data volume into the UCSC Genome Browser container.
The following command creates a new volume named ucsc_genomebrowser_volume that containers can consume and store data in:
docker volume create ucsc_genomebrowser_volume
After creating the volume named ucsc_genomebrowser_volume, running the docker run command starts the UCSC Genome Browser container using the user_name/ucsc_genomebrowser_image image and the -v option to mount the volume created in the previous step.
docker run -d --name ucsc_genomebrowser_volume -p 8080:80 -v ucsc_genomebrowser_volume:/data user_name/ucsc_genomebrowser_image
Files can be copied into the Docker volume or a bind mount can be used to link a host directory containing data to the /data directory inside the container. The following command copies a file to the data directory inside the container:
docker cp file.txt ucsc_genomebrowser_volume:/data
Running the execute command will list the file inside the running container:
docker exec ucsc_genomebrowser_volume ls data
Updating the latest UCSC Genome Browser version will require access to the Docker container running shell (command-line interface) of the UCSC Genome Browser. The execute command can be run inside a running Docker container with the -it options. The -i or --interactive option allows interaction with the command being executed and keeps STDIN open even if not attached. This will allow input to be provided for the command. The -t or --tty option allocates a pseudo-TTY and allows for a more interactive experience. The following example shows how to run exec command and the -it options:
docker exec -it <container_name_or_id> /bin/bash
Running the following command updates the Genome Browser software:
bash root/browserSetup.sh cgiUpdate
The hg.conf file is a file that has information on how to connect to MariaDB, the location of the other directories and various other settings.
The hg.conf file can be edited by running the execute command inside a running Docker container with the -it options. The -i or --interactive option allows interaction with the command being executed and keeps STDIN open even if not attached. This will allow input to be provided for the command. The -t or --tty option allocates a pseudo-TTY and allows for a more interactive experience. Any common text editors such as vi, nano, and vim can be used with the execute command and the -it options. The following example shows how to edit the hg.conf file using vi:
docker exec -it <container_name_or_id> vi /usr/local/apache/cgi-bin/hg.conf
Track settings such as fonts, text size, default tracks, attached hubs, and the default region can be customized and set as the default settings. These settings will appear every time the UCSC Genome Browser graphic display is opened and will also appear after a reset of all user settings. This can be useful when working with a different assembly than hg38, having track hubs automatically attached, or changing the visibility of tracks.
#The default cart
CREATE TABLE defaultCart (
contents longblob not null # cart contents
);mysql hgcentral -Ne "DROP TABLE defaultCart"
mysql hgcentral < defaultCart.sql
mysql hgcentral -Ne "insert into defaultCart select contents from namedSessionDb where sessionName='nameOfSession' and userName='nameOfUser'"
defaultCartName=defaultCart