Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Essential Docker commands and workflows for container management, image operations, and debugging.
.claude/skills/docker-essentials/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | — | — |
| case-03 | ✗→✗ | = Same ✗ | — | — |
| case-13 | ✗→✗ | = Same ✗ | — | — |
| case-10 | ✗→✗ | = Same ✗ | — | — |
| case-20 | ✗→✗ | = Same ✗ | — | — |
Essential Docker commands for container and image management.
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
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
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
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
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
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 .
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
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
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
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
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
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
Development container:
bashdocker run -it --rm \ -v $(pwd):/app \ -w /app \ -p 3000:3000 \ node:18 \ npm run dev
Database container:
bashdocker 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
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 networkdocker exec flags:
-it: Interactive terminal-u: User-w: Working directory.dockerignore to exclude files from build contextRUN commands in Dockerfile to reduce layers--rm for one-off containersdocker-compose for multi-container appsdocker system pruneOfficial docs: https://docs.docker.com/ Dockerfile reference: https://docs.docker.com/engine/reference/builder/ Compose file reference: https://docs.docker.com/compose/compose-file/
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-05 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +5 percentage points is the difference between those two pass rates over the 22 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.