Skills doro-docker-essentials
Essential Docker commands and workflows for container management, image operations, and debugging.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/a2mus/doro-docker-essentials" ~/.claude/skills/openclaw-skills-doro-docker-essentials && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/a2mus/doro-docker-essentials" ~/.openclaw/skills/openclaw-skills-doro-docker-essentials && rm -rf "$T"
manifest:
skills/a2mus/doro-docker-essentials/SKILL.mdsource content
Docker Essentials
Essential Docker commands for container and image management.
Container Lifecycle
Running containers
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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:
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:
# 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 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
flags:docker run
: Detached mode (background)-d
: Interactive terminal-it
: Port mapping (host:container)-p
: Volume mount-v
: Environment variable-e
: Container name--name
: Auto-remove on exit--rm
: Connect to network--network
flags:docker exec
: Interactive terminal-it
: User-u
: Working directory-w
Tips
- Use
to exclude files from build context.dockerignore - Combine
commands in Dockerfile to reduce layersRUN - Use multi-stage builds to reduce image size
- Always tag your images with versions
- Use
for one-off containers--rm - Use
for multi-container appsdocker-compose - 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/