Docker cheatsheet#
Docker Registries & Repositories#
Login to a Registry
docker login
docker login localhost:8080
Logout from a Registry
docker logout
docker logout localhost:8080
Searching an Image
docker search nginx
docker search nginx --stars=3 --no-trunc busybox
Pulling an Image
docker pull nginx
docker pull eon01/nginx localhost:5000/myadmin/nginx
Pushing an Image
docker push eon01/nginx
docker push eon01/nginx localhost:5000/myadmin/nginx
Running Containers#
Creating a Container
docker create -t -i eon01/infinite --name infinite
Running a Container
docker run -it --name infinite -d eon01/infinite
Renaming a Container
docker rename infinite infinity
Removing a Container
docker rm infinite
Updating a Container
docker update --cpu-shares 512 -m 300M infinite
Starting & Stopping Containers#
Starting
docker start nginx
Stopping
docker stop nginx
Restarting
docker restart nginx
Pausing
docker pause nginx
Unpausing
docker unpause nginx
Blocking a Container
docker wait nginx
Sending a SIGKILL
docker kill nginx
Connecting to an Existing Container
docker attach nginx
Getting Information about Containers#
Running Containers
docker ps
docker ps -a
Container Logs
docker logs infinite
Inspecting Containers
docker inspect infinite
docker inspect --format '{{ .NetworkSettings.IPAddress }}' $(docker ps -q)
Containers Events
docker events infinite
Public Ports
docker port infinite
Running Processes
docker top infinite
Container Resource Usage
docker stats infinite
Inspecting Changes to Files or Directories on a Container’s Filesystem
docker diff infinite
Manipulating Images#
Listing Images
docker images
Building Images
docker build .
docker build github.com/creack/docker-firefox
docker build - < Dockerfile
docker build - < context.tar.gz
docker build -t eon/infinite .
docker build -f myOtherDockerfile .
curl example.com/remote/Dockerfile | docker build -f - .
Removing an Image
docker rmi nginx
Loading a Tarred Repository from a File or the Standard Input Stream
docker load < ubuntu.tar.gz
docker load --input ubuntu.tar
Save an Image to a Tar Archive
docker save busybox > ubuntu.tar
Showing the History of an Image
docker history
Creating an Image Fron a Container
docker commit nginx
Tagging an Image
docker tag nginx eon01/nginx
Pushing an Image
docker push eon01/nginx
Networking#
Creating Networks
docker network create -d overlay MyOverlayNetwork
docker network create -d bridge MyBridgeNetwork
docker network create -d overlay \
--subnet=192.168.0.0/16 \
--subnet=192.170.0.0/16 \
--gateway=192.168.0.100 \
--gateway=192.170.0.100 \
--ip-range=192.168.1.0/24 \
--aux-address="my-router=192.168.1.5" --aux-address="my-switch=192.168.1.6" \
--aux-address="my-printer=192.170.1.5" --aux-address="my-nas=192.170.1.6" \
MyOverlayNetwork
Removing a Network
docker network rm MyOverlayNetwork
Listing Networks
docker network ls
Getting Information About a Network
docker network inspect MyOverlayNetwork
Connecting a Running Container to a Network
docker network connect MyOverlayNetwork nginx
Connecting a Container to a Network When it Starts
docker run -it -d --network=MyOverlayNetwork nginx
Disconnecting a Container from a Network
docker network disconnect MyOverlayNetwork nginx
Cleaning Docker#
Removing a Running Container
docker rm nginx
Removing a Container and its Volume
docker rm -v nginx
Removing all Exited Containers
docker rm $(docker ps -a -f status=exited -q)
Removing All Stopped Containers
docker rm `docker ps -a -q`
Removing a Docker Image
docker rmi nginx
Removing Dangling Images
docker rmi $(docker images -f dangling=true -q)
Removing all Images
docker rmi $(docker images -a -q)
Stopping & Removing all Containers
docker stop $(docker ps -a -q) && docker rm $(docker ps -a -q)
Removing Dangling Volumes
docker volume rm $(docker volume ls -f dangling=true -q)
Docker Swarm#
Installing Docker Swarm
curl -ssl https://get.docker.com | bash
Initializing the Swarm
docker swarm init --advertise-addr 192.168.10.1
Getting a Worker to Join the Swarm
docker swarm join-token worker
Getting a Manager to Join the Swarm
docker swarm join-token manager
Listing Services
docker service ls
Listing nodes
docker node ls
Creating a Service
docker service create --name vote -p 8080:80 instavote/vote
Listing Swarm Tasks
docker service ps
Scaling a Service
docker service scale vote=3
Updating a Service
docker service update --image instavote/vote:movies vote
docker service update --force --update-parallelism 1 --update-delay 30s nginx
docker service update --update-parallelism 5--update-delay 2s --image instavote/vote:indent vote
docker service update --limit-cpu 2 nginx
docker service update --replicas=5 nginx
Misc#
Run an image in a container with its name
docker run --rm `docker images --filter reference='*/log-generator' --format '{{.ID}}'`
Running a container from an image and open a shell into it with root privileges
docker run --entrypoint="sh" --user=0 --privileged=true <image>:<tag>
Loading image from file
docker load < Downloads/scratch.tar.gz
Running an image with passing a local file as argument (after creating a volume for the file dynamically)
-tifor running bash into the container--rmfor removing container as soon as we exit
docker run -v /local/file/path/file.txt:/dest/file/path/file.txt -ti --rm some-docker-image:tag arg1 arg2
Logging into AWS-ECR to pull docker images
aws ecr get-login-password --region <region> | docker login --username AWS --password-stdin "<account>.dkr.ecr.<region>.amazonaws.com"
See the contents (file and directories) inside a docker container:
docker export <container-id> | tar -t