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 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. 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 + +
+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:
+sudo systemctl start docker
+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
+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
+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>
+
+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:
+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
+
+
+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
+
+
+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
+