| name | docker-essentials |
| description | Essential Docker commands and workflows for container management, image operations, and debugging. |
| homepage | https://docs.docker.com/ |
| metadata | {"clawdbot":{"emoji":"🐳","requires":{"bins":["docker"]}}} |
Docker Essentials
Essential Docker commands for container and image management.
Container Lifecycle
Running containers
docker run nginx
docker run -d nginx
docker run --name my-nginx -d nginx
docker run -p 8080:80 -d nginx
docker run -e MY_VAR=value -d app
docker run -v /host/path:/container/path -d app
docker run --rm alpine echo "Hello"
docker run -it ubuntu bash
Managing containers
docker ps
docker ps -a
docker stop container_name
docker start container_name
docker restart container_name
docker rm container_name
docker rm -f container_name
docker container prune
Container Inspection & Debugging
Viewing logs
docker logs container_name
docker logs -f container_name
docker logs --tail 100 container_name
docker logs -t container_name
Executing commands
docker exec container_name ls -la
docker exec -it container_name bash
docker exec -u root -it container_name bash
docker exec -e VAR=value container_name env
Inspection
docker inspect container_name
docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name
docker stats
docker stats container_name
docker top container_name
Image Management
Building images
docker build -t myapp:1.0 .
docker build -f Dockerfile.dev -t myapp:dev .
docker build --build-arg VERSION=1.0 -t myapp .
docker build --no-cache -t myapp .
Managing images
docker images
docker pull nginx:latest
docker tag myapp:1.0 myapp:latest
docker push myrepo/myapp:1.0
docker rmi image_name
docker image prune
docker image prune -a
Docker Compose
Basic operations
docker-compose up
docker-compose up -d
docker-compose down
docker-compose down -v
docker-compose logs
docker-compose logs -f web
docker-compose up -d --scale web=3
Service management
docker-compose ps
docker-compose exec web bash
docker-compose restart web
docker-compose build web
docker-compose up -d --build
Networking
docker network ls
docker network create mynetwork
docker network connect mynetwork container_name
docker network disconnect mynetwork container_name
docker network inspect mynetwork
docker network rm mynetwork
Volumes
docker volume ls
docker volume create myvolume
docker volume inspect myvolume
docker volume rm myvolume
docker volume prune
docker run -v myvolume:/data -d app
System Management
docker system df
docker system prune
docker system prune -a
docker system prune --volumes
docker info
docker version
Common Workflows
Development container:
docker run -it --rm \
-v $(pwd):/app \
-w /app \
-p 3000:3000 \
node:18 \
npm run dev
Database container:
docker run -d \
--name postgres \
-e POSTGRES_PASSWORD=secret \
-e POSTGRES_DB=mydb \
-v postgres-data:/var/lib/postgresql/data \
-p 5432:5432 \
postgres:15
Quick debugging:
docker exec -it container_name sh
docker cp container_name:/path/to/file ./local/path
docker cp ./local/file container_name:/path/in/container
Multi-stage build:
# Dockerfile
FROM node:18 AS builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
Useful Flags
docker run flags:
-d: Detached mode (background)
-it: Interactive terminal
-p: Port mapping (host:container)
-v: Volume mount
-e: Environment variable
--name: Container name
--rm: Auto-remove on exit
--network: Connect to network
docker exec flags:
-it: Interactive terminal
-u: User
-w: Working directory
Tips
- Use
.dockerignore to exclude files from build context
- Combine
RUN commands in Dockerfile to reduce layers
- Use multi-stage builds to reduce image size
- Always tag your images with versions
- Use
--rm for one-off containers
- Use
docker-compose for multi-container apps
- Clean up regularly with
docker system prune
Documentation
Official docs: https://docs.docker.com/
Dockerfile reference: https://docs.docker.com/engine/reference/builder/
Compose file reference: https://docs.docker.com/compose/compose-file/