Table of Contents
- Docker Command Reference
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