Docker Essentials
VerifiedEssential Docker commands and workflows for container management, image operations, and debugging.
Install
Claude Code
Add to .claude/skills/ About This Skill
# Docker Essentials
Essential Docker commands for container and image management.
Container Lifecycle
Running containers ```bash # Run container from image docker run nginx
# Run in background (detached) docker run -d nginx
# Run with name docker run --name my-nginx -d nginx
# Run with port mapping docker run -p 8080:80 -d nginx
# Run with environment variables docker run -e MY_VAR=value -d app
# Run with volume mount docker run -v /host/path:/container/path -d app
# Run with auto-remove on exit docker run --rm alpine echo "Hello"
# Interactive terminal docker run -it ubuntu bash ```
Managing containers ```bash # List running containers docker ps
# List all containers (including stopped) docker ps -a
# Stop container docker stop container_name
# Start stopped container docker start container_name
# Restart container docker restart container_name
# Remove container docker rm container_name
# Force remove running container docker rm -f container_name
# Remove all stopped containers docker container prune ```
Container Inspection & Debugging
Viewing logs ```bash # Show logs docker logs container_name
# Follow logs (like tail -f) docker logs -f container_name
# Last 100 lines docker logs --tail 100 container_name
# Logs with timestamps docker logs -t container_name ```
Executing commands ```bash # Execute command in running container docker exec container_name ls -la
# Interactive shell docker exec -it container_name bash
# Execute as specific user docker exec -u root -it container_name bash
# Execute with environment variable docker exec -e VAR=value container_name env ```
Inspection ```bash # Inspect container details docker inspect container_name
# Get specific field (JSON path) docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name
# View container stats docker stats
# View specific container stats docker stats container_name
# View processes in container docker top container_name ```
Image Management
Building images ```bash # Build from Dockerfile docker build -t myapp:1.0 .
# Build with custom Dockerfile docker build -f Dockerfile.dev -t myapp:dev .
# Build with build args docker build --build-arg VERSION=1.0 -t myapp .
# Build without cache docker build --no-cache -t myapp . ```
Managing images ```bash # List images docker images
# Pull image from registry docker pull nginx:latest
# Tag image docker tag myapp:1.0 myapp:latest
# Push to registry docker push myrepo/myapp:1.0
# Remove image docker rmi image_name
# Remove unused images docker image prune
# Remove all unused images docker image prune -a ```
Docker Compose
Basic operations ```bash # Start services docker-compose up
# Start in background docker-compose up -d
# Stop services docker-compose down
# Stop and remove volumes docker-compose down -v
# View logs docker-compose logs
# Follow logs for specific service docker-compose logs -f web
# Scale service docker-compose up -d --scale web=3 ```
Service management ```bash # List services docker-compose ps
# Execute command in service docker-compose exec web bash
# Restart service docker-compose restart web
# Rebuild service docker-compose build web
# Rebuild and restart docker-compose up -d --build ```
Networking
```bash # List networks docker network ls
# Create network docker network create mynetwork
# Connect container to network docker network connect mynetwork container_name
# Disconnect from network docker network disconnect mynetwork container_name
# Inspect network docker network inspect mynetwork
# Remove network docker network rm mynetwork ```
Volumes
```bash # List volumes docker volume ls
# Create volume docker volume create myvolume
# Inspect volume docker volume inspect myvolume
# Remove volume docker volume rm myvolume
# Remove unused volumes docker volume prune
# Run with volume docker run -v myvolume:/data -d app ```
System Management
```bash # View disk usage docker system df
# Clean up everything unused docker system prune
# Clean up including unused images docker system prune -a
# Clean up including volumes docker system prune --volumes
# Show Docker info docker info
# Show Docker version docker version ```
Common Workflows
Development container: ```bash docker run -it --rm \ -v $(pwd):/app \ -w /app \ -p 3000:3000 \ node:18 \ npm run dev ```
Database container: ```bash 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: ```bash # Shell into running container docker exec -it container_name sh
# Copy file from container docker cp container_name:/path/to/file ./local/path
# Copy file to container docker cp ./local/file container_name:/path/in/container ```
Multi-stage build: ```dockerfile # 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/
Use Cases
- Look up essential Docker commands for container and image management
- Run containers with proper port mapping, volume mounts, and environment variables
- Manage container lifecycle: start, stop, restart, and remove containers
- Build and tag Docker images from Dockerfiles with best practice configurations
- Inspect container logs, resource usage, and networking for debugging
Pros & Cons
Pros
- + Comprehensive command reference covering the most-used Docker operations
- + Organized by task type for quick lookup during development
- + Includes practical examples with common flag combinations
Cons
- - Reference material only — does not execute commands or manage containers directly
- - Only available on claude-code and openclaw platforms
- - Advanced Docker features like multi-stage builds and BuildKit are not covered in depth
Frequently Asked Questions
What does Docker Essentials do?
Essential Docker commands and workflows for container management, image operations, and debugging.
What platforms support Docker Essentials?
Docker Essentials is available on Claude Code, OpenClaw.
What are the use cases for Docker Essentials?
Look up essential Docker commands for container and image management. Run containers with proper port mapping, volume mounts, and environment variables. Manage container lifecycle: start, stop, restart, and remove containers.
Stay Updated on Agent Skills
Get weekly curated skills + safety alerts