Docker Cheat Sheet

This comprehensive cheat sheet will assist Docker users, experienced and new, in getting containers up-and-running quickly. We list commands that will allow users to install, build, ship and run Docker containers.



Docker is an increasingly popular tool designed to make it easier to create, deploy and run applications within a container. We recently published an article – Data Scientist guide for getting started with Docker – which hopefully laid out some of the basics. As we have done in the past with SQL, Python Regular Expressions and many others, we thought it would be useful to have a centralized cheat sheet for Docker commands, which we’ve based on Docker’s official cheat sheet:

Docker cheat sheet

Install

First off, you’ll need to head over to the Docker site to install a version of the software.

To ensure it’s been installed correctly, open the command line and type docker version. This should display something like the below:

Docker version

Build

docker build [OPTIONS] PATH | URL | -

Common Options Explanation
--add-host Add custom host-to-IP mapping (host:IP)
--cache-from Images to consider as cache sources
--compress Compress the build using gzip
--file, -f Name and route of Docker file
--force-rm Always remove intermediate containers
--label Set the metadata for the image
--memory, -m Set a memory limit
--no-cahe Do not use cache
--rm Remove intermediate containers after a successful build
--tag, -t Name and optionally tag an image in the ‘name:tag’ format
--target Set the target build stage

Builds an image from a Dockerfile

 

docker images

Lists all of the images that are locally stored in the docker engine

 

docker rmi IMAGE_NAME

Removes one or more images

 

Ship

docker pull IMAGE_NAME[:TAG]

Pulls an image or a repository from a registry

 

docker push IMAGE_NAME[:TAG]

Pushes an image or a repository to a registry

 

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

Creates a tag TARGET_IMAGE that refers to SOURCE_IMAGE

 

docker login [OPTIONS] [SERVER]

Common Options Explanation
--password, -p Password
--username, -u Username

Logs into a docker registry

 

docker logout [SERVER]

Logs out of a docker registry

 

Run

docker create [OPTIONS] IMAGE_NAME

Creates a new container. This is the same as docker run, but the container is never started. See docker run for options

 

docker run [OPTIONS] IMAGE_NAME

Common Options Explanation
--add-host Add custom host-to-IP mapping (host:IP)
--attach, -a Attach to STDIN, STDOUT, STDERR
--hostname, -h Container host name
--interactive, -i Keep STDIN open even if not attached
-it Connect the container to the terminal
--label, -l Set metadata on the container
--memory, -m Set a memory limit
--mount Attach a filesystem mount to the container
--name Assign a name to the container
--network Connect a container to a certain network
--publish, -p Expose certain ports to the container
--rm Automatically remove the container when it exits
--volume, -v Bind mount a volume
--workdir, -w Set the working directory inside the container

Run a command in a new container

 

docker start CONTAINER_NAME

Start one or more containers

 

docker stop CONTAINER_NAME

Stop one or more running containers

 

docker kill CONTAINER_NAME

Kill one or more running containers

 

docker ps

List all containers

 

docker rm CONTAINER_NAME

Remove one or more containers

 

Data Science Examples

FROM ubuntu

RUN apt-get install python3

This Dockerfile would install python3 on top of Ubuntu layer. Dockerfiles are text files that define the environment inside the container

 

 
FROM ubuntu:latest 
RUN apt-get update && apt-get install -y python3 \ python3-pip 
RUN pip3 install jupyter
WORKDIR /home/jupyter
COPY  /src/jupyter ./
EXPOSE 8000
ENTRYPOINT ["jupyter", "notebook", "--ip=*"]

This Dockerfile would:
- install python3 on top of Ubuntu layer
- create a /home/jupyter directory on the container
- copy in contents from the /src/jupyter folder on the user's machine
- Expose port 8000
- Run Jupyter notebook

 

docker pull tensorflow/tensorflow

Pull a latest TensorFlow image down

 

docker run -it -p 8000:8000 tensorflow/tensorflow

Run TensorFlow image in a container on port 8000

Related: