THE ULTIMATE DOCKER CHEAT SHEET
1. RUN a CONTAINER
(I) Start new container from an image: docker run IMAGE_NAME
(II) And assign it a name: docker run --name CONTAINER _NAME IMAGE_NAME
(III) To map a port: docker run -p HOST_PORT:CONTAINER_PORT IMAGE
(IV) To MAP all port: docker run -P IMAGE_NAME
(V) And Start a Container in background: docker run -d IMAGE_NAME
(VI) And Assign it a HOST NAME: docker run --hostname HOSTNAME IMAGE_NAME
(VII) And add a DNS entry or HOST entry in /etc/hosts file: docker run --add-host
HOSTNAME:IP IMAGE
(VIII) And map a local directory (volume) to a container: docker run -v HOST_DIR:TARGET_DIR IMAGE_NAME
(IX) ALL IN ONE Example : docker run --name my_container -p 80:80 -v /home/data/:/var/www/html/--add-host test.ac.in:10.246.10.6 --hostname nginx_host -d nginx
2. MANAGE CONTAINERS
(I) Show List of all running containers : docker ps
(II) Show List of all running and stop containers : docker ps -a
(III) Show List of all running and stop containers with ID: docker ps -aq
(III) Delete Container : docker rm CONTAINER_ID
(IV) Delete Stop Container: docker container prune
(V) Stop a Running Container: docker stop CONTAINER
(VI) Start a stop Container: docker start CONTAINER
(VII) Copy a file from container to host: docker cp CONTAINER:SOURCE TARGET
(VII) Copy a file from host to container: docker cp TARGET CONTAINER:SOURCE
(VIII) RUN a Container in EXECUTABLE MODE (can do temporary change in running container but changes will vanish after restart the container) or run a shell inside container: docker exec -it CONTAINER EXECUTABLE
EXAMPLE: docker exec -it nginx /bin/bash
(IX) Rename a Container: docker rename OLD_NAME NEW_NAME
(X) Create a IMAGE from Running Container (To make permanent changes): docker commit container
3. MANAGE IMAGES
(I) Download an IMAGE: docker pull IMAGE[:tag] (for ex: docker pull nginx or docker pull nginx:latest)
(II) Upload an image to a repository: docker push IMAGE[:tag] (ex: docker push nginx or docker push nginx:latest)
(III) Delete an Image: docker rmi IMAGE
(IV) Show list of all Images: docker images
(V) Delete dangling images (unused) : docker image prune
(VI) Delete all unused images: docker image prune -a
(VII) Build and tag image from Dockerfile: docker build -t IMAGE:TAG PATH_OF_DOCKERFILE
(VIII) Tag an image: docker tag IMAGE NEWIMAGE or docker image IMAGE:TAG NEWIMAGE:TAG
(IX) Save an image to file: docker save IMAGE > FILE_NAME
(X) Load an image from file: docker load -i FILE_NAME
(XI) Save and Load from gzip format: docker save my_image:my_tag | gzip >my_image.tar.gz
docker load -i my_image.tar.gz
4. INFO AND STATS
(I) Show the latest logs of Container: docker logs -f CONTAINER_ID or docker logs --tail=100 CONTAINER_ID or docker logs --follow CONTAINER_ID
(II) Show the Stats of Running Container: docker stats
(III) Show processes of Container: docker top CONTAINER
(IV) Show Docker version: docker version
(V) Get Detailed Info about Container: docker info CONTAINER
(VI) Show all modified files in container: docker diff container
(VII) Show mapped port in container: docker port CONATINER
(VIII) Get IP address: docker inspect -f ‘{{.NetworkSettings.IPAddress}}’ CONTAINER
(IX)Show history of image: docker history IMAGE
5. DOCKER COMPOSE:
(I) Build with Dockerfile: docker-compose build
(II) Starts existing containers for a service: docker-compose start
(III) Stops running containers without removing them: docker-compose stop
(IV) Stops containers and removes containers, networks, volumes, and images created by up : docker-compose down -v
(V) Pauses running containers of a service: docker-compose pause
(VI) Unpauses paused containers of a service.: docker-compose unpause
(VII) Builds, (re)creates, starts, and attaches to containers for a service.: docker-compose up -d
(VIII) Lists containers: docker-compose ps
(IX) Service Logs: docker-compose logs -f SERVICE_NAME