Table of Contents

  1. Docker Command Reference
    1. Container Lifecycle
      1. Run container
      2. Interactive shell
      3. Stop
      4. Start
      5. Restart
      6. Kill
      7. Remove
      8. Force remove
      9. Auto remove
    2. Images
      1. List images
      2. Pull image
      3. Build image
      4. Build from Dockerfile
      5. Tag image
      6. Push image
      7. Remove image
      8. Prune dangling
      9. Prune all unused
    3. Containers
      1. List running
      2. List all
      3. Inspect
      4. Stats
      5. Top
      6. Logs
      7. Follow logs
      8. Last 100 lines
      9. Execute command
      10. Shell
      11. Copy to container
      12. Copy from container
    4. Networking
      1. List networks
      2. Inspect network
      3. Create bridge
      4. Connect
      5. Disconnect
    5. Volumes
      1. List volumes
      2. Create volume
      3. Inspect volume
      4. Remove volume
      5. Prune unused
      6. Mount named volume
      7. Bind mount
    6. Docker Compose
      1. Start stack
      2. Build & start
      3. Stop stack
      4. Remove volumes
      5. Restart service
      6. View services
      7. Logs
      8. Follow logs
      9. Execute shell
      10. Run one-off
      11. Pull images
      12. Rebuild
      13. Config check
    7. Cleanup
      1. System prune
      2. Aggressive prune
      3. Container prune
      4. Network prune
      5. Builder cache
    8. Registry
      1. Login
      2. Logout
      3. Search Hub
    9. Dockerfile
      1. Copy files
      2. Working directory
      3. Run build step
      4. Default command
      5. Entrypoint
      6. Expose port
      7. Environment variable
      8. Build argument
      9. Switch user
      10. Healthcheck
    10. Compose YAML
      1. Named volume
      2. Environment
      3. Bind mount
      4. Restart policy
      5. Depends on
      6. Healthcheck
    11. Debugging
      1. Events
      2. Disk usage
      3. Inspect mounts
      4. Processes
      5. Resource usage
    12. Backup/Restore
      1. Export container
      2. Import tar
      3. Save image
      4. Load image
    13. Swarm (Basics)
      1. Init swarm
      2. Leave swarm
      3. List nodes
      4. Deploy stack
      5. List stacks
      6. Remove stack
    14. Useful Filters
    15. Useful Environment Variables

Docker Command Reference

Quick-reference snippets for common Docker tasks.

Container Lifecycle

Run container

Use: run container.

docker run -d --name nginx -p 80:80 nginx

Interactive shell

Use: interactive shell.

docker run -it ubuntu:24.04 bash

Stop

Use: stop.

docker stop mycontainer

Start

Use: start.

docker start mycontainer

Restart

Use: restart.

docker restart mycontainer

Kill

Use: kill.

docker kill mycontainer

Remove

Use: remove.

docker rm mycontainer

Force remove

Use: force remove.

docker rm -f mycontainer

Auto remove

Use: auto remove.

docker run --rm alpine echo hello

Images

List images

Use: list images.

docker images

Pull image

Use: pull image.

docker pull postgres:16

Build image

Use: build image.

docker build -t myapp:latest .

Build from Dockerfile

Use: build from dockerfile.

docker build -f Dockerfile.dev -t myapp:dev .

Tag image

Use: tag image.

docker tag myapp:latest registry.example.com/myapp:v1

Push image

Use: push image.

docker push registry.example.com/myapp:v1

Remove image

Use: remove image.

docker rmi myapp:latest

Prune dangling

Use: prune dangling.

docker image prune

Prune all unused

Use: prune all unused.

docker image prune -a

Containers

List running

Use: list running.

docker ps

List all

Use: list all.

docker ps -a

Inspect

Use: inspect.

docker inspect mycontainer

Stats

Use: stats.

docker stats

Top

Use: top.

docker top mycontainer

Logs

Use: logs.

docker logs mycontainer

Follow logs

Use: follow logs.

docker logs -f mycontainer

Last 100 lines

Use: last 100 lines.

docker logs --tail 100 mycontainer

Execute command

Use: execute command.

docker exec mycontainer ls /

Shell

Use: shell.

docker exec -it mycontainer bash

Copy to container

Use: copy to container.

docker cp file.txt mycontainer:/tmp/

Copy from container

Use: copy from container.

docker cp mycontainer:/tmp/file.txt .

Networking

List networks

Use: list networks.

docker network ls

Inspect network

Use: inspect network.

docker network inspect bridge

Create bridge

Use: create bridge.

docker network create mynet

Connect

Use: connect.

docker network connect mynet mycontainer

Disconnect

Use: disconnect.

docker network disconnect mynet mycontainer

Volumes

List volumes

Use: list volumes.

docker volume ls

Create volume

Use: create volume.

docker volume create appdata

Inspect volume

Use: inspect volume.

docker volume inspect appdata

Remove volume

Use: remove volume.

docker volume rm appdata

Prune unused

Use: prune unused.

docker volume prune

Mount named volume

Use: mount named volume.

docker run -v appdata:/data busybox

Bind mount

Use: bind mount.

docker run -v $(pwd):/app myapp

Docker Compose

Start stack

Use: start stack.

docker compose up -d

Build & start

Use: build & start.

docker compose up -d --build

Stop stack

Use: stop stack.

docker compose down

Remove volumes

Use: remove volumes.

docker compose down -v

Restart service

Use: restart service.

docker compose restart api

View services

Use: view services.

docker compose ps

Logs

Use: logs.

docker compose logs

Follow logs

Use: follow logs.

docker compose logs -f api

Execute shell

Use: execute shell.

docker compose exec api bash

Run one-off

Use: run one-off.

docker compose run --rm api python manage.py

Pull images

Use: pull images.

docker compose pull

Rebuild

Use: rebuild.

docker compose build --no-cache

Config check

Use: config check.

docker compose config

Cleanup

System prune

Use: system prune.

docker system prune

Aggressive prune

Use: aggressive prune.

docker system prune -a --volumes

Container prune

Use: container prune.

docker container prune

Network prune

Use: network prune.

docker network prune

Builder cache

Use: builder cache.

docker builder prune

Registry

Login

Use: login.

docker login

Logout

Use: logout.

docker logout

Search Hub

Use: search hub.

docker search nginx

Dockerfile

Copy files

Use: copy files.

COPY . /app

Working directory

Use: working directory.

WORKDIR /app

Run build step

Use: run build step.

RUN pip install -r requirements.txt

Default command

Use: default command.

CMD ["python","app.py"]

Entrypoint

Use: entrypoint.

ENTRYPOINT ["python"]

Expose port

Use: expose port.

EXPOSE 8000

Environment variable

Use: environment variable.

ENV APP_ENV=production

Build argument

Use: build argument.

ARG VERSION=latest

Switch user

Use: switch user.

USER appuser

Healthcheck

Use: healthcheck.

HEALTHCHECK CMD curl -f http://localhost:8000 || exit 1

Compose YAML

Named volume

Use: named volume.

volumes:
  postgres_data:

Environment

Use: environment.

.env
POSTGRES_DB=mydb

Bind mount

Use: bind mount.

volumes:
  - ./data:/data

Restart policy

Use: restart policy.

restart: unless-stopped

Depends on

Use: depends on.

depends_on:
  - db

Healthcheck

Use: healthcheck.

healthcheck:
  test: ["CMD","pg_isready","-U","postgres"]

Debugging

Events

Use: events.

docker events

Disk usage

Use: disk usage.

docker system df

Inspect mounts

Use: inspect mounts.

docker inspect mycontainer | grep Mounts -A10

Processes

Use: processes.

docker top mycontainer

Resource usage

Use: resource usage.

docker stats --no-stream

Backup/Restore

Export container

Use: export container.

docker export mycontainer > container.tar

Import tar

Use: import tar.

docker import container.tar myimage

Save image

Use: save image.

docker save postgres:16 -o postgres.tar

Load image

Use: load image.

docker load -i postgres.tar

Swarm (Basics)

Init swarm

Use: init swarm.

docker swarm init

Leave swarm

Use: leave swarm.

docker swarm leave

List nodes

Use: list nodes.

docker node ls

Deploy stack

Use: deploy stack.

docker stack deploy -c compose.yml mystack

List stacks

Use: list stacks.

docker stack ls

Remove stack

Use: remove stack.

docker stack rm mystack

Useful Filters

docker ps --filter status=running
docker images --filter dangling=true
docker volume ls -q
docker network ls

Useful Environment Variables

DOCKER_HOST
DOCKER_BUILDKIT=1
COMPOSE_PROJECT_NAME=myproject