Docker Cheat Sheet

Posted by John Liu on Sunday, July 16, 2023

Docker command cheat sheet from twitter.

Process Management

Show all running docker containers

docker ps

Show all docker containers

docker ps -a

Run a container

docker run <image>:<tag>

Run a container and connect to it

docker run -it <image>:<tabe>

Run a container in the background

docker run -d <image>:<tag>

Stop a container

docker stop <container>

Kill a container

docker kill <container>

Volumes & Ports

List volumes

docker volume ls

Create a volume

docker volume create <volume>

Delete a volume

docker volume rm <volume>

Show volume metadata

docker volume inspect <volume>

Delete all volumes not attached to a container

docker volume prune

Mount a local directory to your container

docker run -v <local_dir>:<container_dir> <image> 

Copy file or folder from a docker container to host machine

docker cp <local_dir>:<container_dir> <local_dir> 

Copy file or folder from local machine onto a container

docker cp <local_dir> <container>:<container_dir> 

Map a local port to a docker instance

docker run -d -p 127.0.0.1:<local_port>:<docker_port> <image> 

List the ports a docker container is running on

docker port <container> 

Docker Compose

Start your docker compose defined resources in detached mode

docker compose -f <docker_compose_yaml> up -d

an example docker compose yaml file (compose_DAB.yaml)

services:
    DAB_Test:
        image: "mcr.microsoft.com/azure-databases/data-api-builder:latest"
        container_name: DAB_Test2
        ports:
            - "5001:5000"
        volumes:
            - c:\DataAPIBuilder\Samples\dab-config.json:/App/dab-config.json
    DataApiBuilder-AutoGen:
        image: "mcr.microsoft.com/azure-databases/data-api-builder:latest"
        ports:
            - "5002:5000"
        volumes:
            - c:\DataAPIBuilder\Samples\dab-config-AutoGen.json:/App/dab-config.json

For the DAB (Data API Builder) container, the container internal port# is 5000 and configuration file name is dab-config.json located under /App foler insider the container. This compose file creates two containers DAB_Test2 and DataApiBuilder-AutoGen and map the port to host port# 5001/5002 respectively. It maps the respective DAB config file on the host to /App/dab-config.json.

Stop all docker compose resources

docker compose stop

Destroy all docker compose resources

docker compose down

Show docker compose processes

docker compose ps

Show docker compose logs

docker compose logs

Show docker compose resource consumption

docker compose top

Images/Repository

List available local images

docker images

Search for docker images

docker search <image>

Pull a docker image

docker pull <image>

Build an image with a dockerfile

docker build -t <image>:<tag> <run_directory> -f <dockerfile>

Login to a remote repository

docker login <repository>

Push an image to your remote repository

docker push <image>:<tag>

Remove a local docker image

docker rmi <image>:<tag>

Show metadata for an image

docker inspect <image>

Remove all unused docker images

docker image prune

Troubleshooting

Show the logs of a container

docker logs <container>

Follow/tail the logs of a container

docker logs -f <container>

Show timestamps on docker logs

docker logs -t <container>

Show details/metadata of a container

docker inspect <container>

Show a ’top’ view of processes running on a container

docker top <container>

Show a ’top’ view of all docker containers

docker stats

Show any files that have changed since startup

docker diff <container>

Connect to an already running container

docker attach <container>

Execute a command on a container

docker exec -it <container_id> /bin/bash

Show docker system wide information

docker system info

Show docker disk space used

docker system df