docker-helper
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDocker Helper
Docker 助手
Essential Docker and Docker Compose commands and patterns.
必备的Docker与Docker Compose命令及使用模式。
Container Operations
容器操作
bash
undefinedbash
undefinedRun container
Run container
docker run -d --name myapp -p 8080:80 nginx
docker run -it --rm ubuntu bash # Interactive, auto-remove
docker run -d --name myapp -p 8080:80 nginx
docker run -it --rm ubuntu bash # Interactive, auto-remove
With volume and env
With volume and env
docker run -d
-v $(pwd):/app
-e NODE_ENV=production
--name myapp
node:18 npm start
-v $(pwd):/app
-e NODE_ENV=production
--name myapp
node:18 npm start
docker run -d
-v $(pwd):/app
-e NODE_ENV=production
--name myapp
node:18 npm start
-v $(pwd):/app
-e NODE_ENV=production
--name myapp
node:18 npm start
List containers
List containers
docker ps # Running
docker ps -a # All
docker ps # Running
docker ps -a # All
Logs
Logs
docker logs myapp
docker logs -f myapp # Follow
docker logs --tail 100 myapp
docker logs myapp
docker logs -f myapp # Follow
docker logs --tail 100 myapp
Exec into container
Exec into container
docker exec -it myapp bash
docker exec -it myapp sh # Alpine
docker exec -it myapp bash
docker exec -it myapp sh # Alpine
Stop/remove
Stop/remove
docker stop myapp
docker rm myapp
docker rm -f myapp # Force
undefineddocker stop myapp
docker rm myapp
docker rm -f myapp # Force
undefinedImage Operations
镜像操作
bash
undefinedbash
undefinedBuild
Build
docker build -t myapp:latest .
docker build -t myapp:v1.0 -f Dockerfile.prod .
docker build -t myapp:latest .
docker build -t myapp:v1.0 -f Dockerfile.prod .
List/remove
List/remove
docker images
docker rmi myapp:latest
docker image prune -a # Remove unused
docker images
docker rmi myapp:latest
docker image prune -a # Remove unused
Tag/push
Tag/push
docker tag myapp:latest registry.io/myapp:latest
docker push registry.io/myapp:latest
undefineddocker tag myapp:latest registry.io/myapp:latest
docker push registry.io/myapp:latest
undefinedDocker Compose
Docker Compose
bash
undefinedbash
undefinedStart services
Start services
docker compose up -d
docker compose up -d --build # Rebuild
docker compose up -d
docker compose up -d --build # Rebuild
Stop
Stop
docker compose down
docker compose down -v # Remove volumes
docker compose down
docker compose down -v # Remove volumes
Logs
Logs
docker compose logs -f
docker compose logs -f web
docker compose logs -f
docker compose logs -f web
Scale
Scale
docker compose up -d --scale web=3
docker compose up -d --scale web=3
Exec
Exec
docker compose exec web bash
undefineddocker compose exec web bash
undefinedCompose File Pattern
Compose 文件模板
yaml
undefinedyaml
undefineddocker-compose.yml
docker-compose.yml
services:
web:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
environment:
- NODE_ENV=development
depends_on:
- db
db:
image: postgres:15
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: secret
volumes:
postgres_data:
undefinedservices:
web:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
- /app/node_modules
environment:
- NODE_ENV=development
depends_on:
- db
db:
image: postgres:15
volumes:
- postgres_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: secret
volumes:
postgres_data:
undefinedDebugging
调试
bash
undefinedbash
undefinedContainer inspection
Container inspection
docker inspect myapp
docker inspect --format '{{.NetworkSettings.IPAddress}}' myapp
docker inspect myapp
docker inspect --format '{{.NetworkSettings.IPAddress}}' myapp
Resource usage
Resource usage
docker stats
docker stats myapp
docker stats
docker stats myapp
Processes in container
Processes in container
docker top myapp
docker top myapp
Filesystem changes
Filesystem changes
docker diff myapp
docker diff myapp
Copy files
Copy files
docker cp myapp:/app/file.txt ./
docker cp ./file.txt myapp:/app/
undefineddocker cp myapp:/app/file.txt ./
docker cp ./file.txt myapp:/app/
undefinedCleanup
清理
bash
undefinedbash
undefinedRemove stopped containers
Remove stopped containers
docker container prune
docker container prune
Remove unused images
Remove unused images
docker image prune -a
docker image prune -a
Remove unused volumes
Remove unused volumes
docker volume prune
docker volume prune
Remove everything unused
Remove everything unused
docker system prune -a --volumes
undefineddocker system prune -a --volumes
undefinedDockerfile Best Practices
Dockerfile 最佳实践
dockerfile
undefineddockerfile
undefinedUse specific tags
Use specific tags
FROM node:18-alpine
FROM node:18-alpine
Set working directory
Set working directory
WORKDIR /app
WORKDIR /app
Copy package files first (layer caching)
Copy package files first (layer caching)
COPY package*.json ./
RUN npm ci --only=production
COPY package*.json ./
RUN npm ci --only=production
Copy source
Copy source
COPY . .
COPY . .
Non-root user
Non-root user
RUN addgroup -g 1001 appgroup &&
adduser -S -u 1001 -G appgroup appuser USER appuser
adduser -S -u 1001 -G appgroup appuser USER appuser
RUN addgroup -g 1001 appgroup &&
adduser -S -u 1001 -G appgroup appuser USER appuser
adduser -S -u 1001 -G appgroup appuser USER appuser
Expose port
Expose port
EXPOSE 3000
EXPOSE 3000
Health check
Health check
HEALTHCHECK --interval=30s --timeout=3s
CMD wget -q --spider http://localhost:3000/health || exit 1
CMD wget -q --spider http://localhost:3000/health || exit 1
CMD ["node", "server.js"]
undefinedHEALTHCHECK --interval=30s --timeout=3s
CMD wget -q --spider http://localhost:3000/health || exit 1
CMD wget -q --spider http://localhost:3000/health || exit 1
CMD ["node", "server.js"]
undefinedReference
参考资料
For multi-stage builds, networking, and optimization:
references/advanced.md关于多阶段构建、网络配置及优化内容,请查看:
references/advanced.md