e895130c7a1cca12c145224a815443788ba6efee gperez2 Thu Mar 7 00:05:04 2024 -0800 Creating a new GB Docker help page, refs #27056 diff --git src/hg/htdocs/goldenPath/help/docker.html src/hg/htdocs/goldenPath/help/docker.html new file mode 100755 index 0000000..89d4b94 --- /dev/null +++ src/hg/htdocs/goldenPath/help/docker.html @@ -0,0 +1,193 @@ + + + + + + + +

Docker help page

+ +

Contents

+ +
What is Docker?
+
How to install Docker Desktop?
+
Using Docker Desktop for UCSC Genome Browser
+
Create a Docker Volume for Data Persistence
+
Updating the latest UCSC Genome Browser version
+
Editing hg.conf
+ + + +

What is Docker?

+

+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. + +

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. You can package your genomics analysis +pipeline or entire analysis environment on your local computer into a Docker container and move it +to a cluster or a cloud server. See also: Use containers to Build, Share and Run your applications + +

Image

+

+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 +

+ + + +

How to install Docker Desktop?

+ +

Windows

+ +

macOS

+ +

Linux

+ + + +

Using Docker Desktop for UCSC Genome Browser

+

Start Docker Desktop after installation is complete:

+ +

Obtaining a UCSC Genome Browser dockerfile

+

You can obtain a UCSC Genome Browser dockerfile from the +UCSC Genome Browser github +by using the wget command:

+
wget https://raw.githubusercontent.com/ucscGenomeBrowser/kent/master/src/product/installer/docker/Dockerfile
+

Creating a image

+

Once you downloaded the dockerfile, you can run docker build with the 't' option which allows +you to name and optionally tag (format: "name:tag") the image. You can create an image by running +the following command in the same directory where the dockerfile is located:

+
docker build . -t user_name/ucsc_genomebrowser_image
+

Creating a container

+

After the image has been created, you can use the docker run command and the image with the +-d option, which allows you to run the container in the background, whereas the default runs the +container in the foreground. The -p option allows you to publish a container's port(s) to the host. +The following command maps port 8080 on your host machine to port 80 in the container and names the +container using the -name option: +

docker run -d --name ucsc_genomebrowser_container -p 8080:80 user_name/ucsc_genomebrowser_image

+ +

You can access the running container via http://localhost:8080

+

You can run the the following command to list the running container: +

docker container ls

+ +

You can run the the following command to stop the running container: +

docker stop <container_name_or_id>

+ +

You can run the the following command to remove the existing container: +

docker rm <container_name_or_id>

+ +

Using Docker Desktop to create a container

+

You can also use the the Docker Desktop user interface to run the container by going to the images +tab and click 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:

+
+ +
+ + +

Create a Docker Volume for Data Persistence

+

A Docker volume allows the data to be persistent (long-lasting) after the container restarts and it +allows you to mount 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, you can use the docker run command to +start 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

+ +

You can copy files into the Docker volume or use a bind mount 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

+ +You can run the execute command to list the file inside the running container: +
docker exec ucsc_genomebrowser_volume ls data

+ + +

Updating the latest UCSC Genome Browser version

+

To update to the latest UCSC Genome Browser version, you will need to access the shell +(command-line interface) of the Docker container running the UCSC Genome Browser. You can run the +execute command inside a running Docker container with the -it options. The -i or +--interactive option allows you to interact with the command being executed and keeps STDIN open +even if not attached. This allows you to provide input to 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

+ +

You can then run the following command to update to the latest UCSC Genome Browser version: +

 bash root/browserSetup.sh update

+ +

To update only the Genome Browser software, you can run the following command: +

 bash root/browserSetup.sh cgiUpdate

+ + +

Editing hg.conf

+

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.

+ +

You can edit the hg.conf file by running the execute command inside a running Docker container +with the -it options. The -i or --interactive option allows you to interact with the command being +executed and keeps STDIN open even if not attached. This allows you to provide input to the +command. The -t or --tty option allocates a pseudo-TTY and allows for a more interactive +experience. You can use any common text editors such as vi, nano, and vim 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

+