docker-essentials
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDocker Essentials
Docker 核心命令与工作流
Essential Docker commands for container and image management.
用于容器和镜像管理的核心Docker命令。
Container Lifecycle
容器生命周期
Running containers
运行容器
bash
undefinedbash
undefinedRun container from image
Run container from image
docker run nginx
docker run nginx
Run in background (detached)
Run in background (detached)
docker run -d nginx
docker run -d nginx
Run with name
Run with name
docker run --name my-nginx -d nginx
docker run --name my-nginx -d nginx
Run with port mapping
Run with port mapping
docker run -p 8080:80 -d nginx
docker run -p 8080:80 -d nginx
Run with environment variables
Run with environment variables
docker run -e MY_VAR=value -d app
docker run -e MY_VAR=value -d app
Run with volume mount
Run with volume mount
docker run -v /host/path:/container/path -d app
docker run -v /host/path:/container/path -d app
Run with auto-remove on exit
Run with auto-remove on exit
docker run --rm alpine echo "Hello"
docker run --rm alpine echo "Hello"
Interactive terminal
Interactive terminal
docker run -it ubuntu bash
undefineddocker run -it ubuntu bash
undefinedManaging containers
管理容器
bash
undefinedbash
undefinedList running containers
List running containers
docker ps
docker ps
List all containers (including stopped)
List all containers (including stopped)
docker ps -a
docker ps -a
Stop container
Stop container
docker stop container_name
docker stop container_name
Start stopped container
Start stopped container
docker start container_name
docker start container_name
Restart container
Restart container
docker restart container_name
docker restart container_name
Remove container
Remove container
docker rm container_name
docker rm container_name
Force remove running container
Force remove running container
docker rm -f container_name
docker rm -f container_name
Remove all stopped containers
Remove all stopped containers
docker container prune
undefineddocker container prune
undefinedContainer Inspection & Debugging
容器检查与调试
Viewing logs
查看日志
bash
undefinedbash
undefinedShow logs
Show logs
docker logs container_name
docker logs container_name
Follow logs (like tail -f)
Follow logs (like tail -f)
docker logs -f container_name
docker logs -f container_name
Last 100 lines
Last 100 lines
docker logs --tail 100 container_name
docker logs --tail 100 container_name
Logs with timestamps
Logs with timestamps
docker logs -t container_name
undefineddocker logs -t container_name
undefinedExecuting commands
执行命令
bash
undefinedbash
undefinedExecute command in running container
Execute command in running container
docker exec container_name ls -la
docker exec container_name ls -la
Interactive shell
Interactive shell
docker exec -it container_name bash
docker exec -it container_name bash
Execute as specific user
Execute as specific user
docker exec -u root -it container_name bash
docker exec -u root -it container_name bash
Execute with environment variable
Execute with environment variable
docker exec -e VAR=value container_name env
undefineddocker exec -e VAR=value container_name env
undefinedInspection
检查信息
bash
undefinedbash
undefinedInspect container details
Inspect container details
docker inspect container_name
docker inspect container_name
Get specific field (JSON path)
Get specific field (JSON path)
docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name
docker inspect -f '{{.NetworkSettings.IPAddress}}' container_name
View container stats
View container stats
docker stats
docker stats
View specific container stats
View specific container stats
docker stats container_name
docker stats container_name
View processes in container
View processes in container
docker top container_name
undefineddocker top container_name
undefinedImage Management
镜像管理
Building images
构建镜像
bash
undefinedbash
undefinedBuild from Dockerfile
Build from Dockerfile
docker build -t myapp:1.0 .
docker build -t myapp:1.0 .
Build with custom Dockerfile
Build with custom Dockerfile
docker build -f Dockerfile.dev -t myapp:dev .
docker build -f Dockerfile.dev -t myapp:dev .
Build with build args
Build with build args
docker build --build-arg VERSION=1.0 -t myapp .
docker build --build-arg VERSION=1.0 -t myapp .
Build without cache
Build without cache
docker build --no-cache -t myapp .
undefineddocker build --no-cache -t myapp .
undefinedManaging images
管理镜像
bash
undefinedbash
undefinedList images
List images
docker images
docker images
Pull image from registry
Pull image from registry
docker pull nginx:latest
docker pull nginx:latest
Tag image
Tag image
docker tag myapp:1.0 myapp:latest
docker tag myapp:1.0 myapp:latest
Push to registry
Push to registry
docker push myrepo/myapp:1.0
docker push myrepo/myapp:1.0
Remove image
Remove image
docker rmi image_name
docker rmi image_name
Remove unused images
Remove unused images
docker image prune
docker image prune
Remove all unused images
Remove all unused images
docker image prune -a
undefineddocker image prune -a
undefinedDocker Compose
Docker Compose
Basic operations
基础操作
bash
undefinedbash
undefinedStart services
Start services
docker-compose up
docker-compose up
Start in background
Start in background
docker-compose up -d
docker-compose up -d
Stop services
Stop services
docker-compose down
docker-compose down
Stop and remove volumes
Stop and remove volumes
docker-compose down -v
docker-compose down -v
View logs
View logs
docker-compose logs
docker-compose logs
Follow logs for specific service
Follow logs for specific service
docker-compose logs -f web
docker-compose logs -f web
Scale service
Scale service
docker-compose up -d --scale web=3
undefineddocker-compose up -d --scale web=3
undefinedService management
服务管理
bash
undefinedbash
undefinedList services
List services
docker-compose ps
docker-compose ps
Execute command in service
Execute command in service
docker-compose exec web bash
docker-compose exec web bash
Restart service
Restart service
docker-compose restart web
docker-compose restart web
Rebuild service
Rebuild service
docker-compose build web
docker-compose build web
Rebuild and restart
Rebuild and restart
docker-compose up -d --build
undefineddocker-compose up -d --build
undefinedNetworking
网络管理
bash
undefinedbash
undefinedList networks
List networks
docker network ls
docker network ls
Create network
Create network
docker network create mynetwork
docker network create mynetwork
Connect container to network
Connect container to network
docker network connect mynetwork container_name
docker network connect mynetwork container_name
Disconnect from network
Disconnect from network
docker network disconnect mynetwork container_name
docker network disconnect mynetwork container_name
Inspect network
Inspect network
docker network inspect mynetwork
docker network inspect mynetwork
Remove network
Remove network
docker network rm mynetwork
undefineddocker network rm mynetwork
undefinedVolumes
卷管理
bash
undefinedbash
undefinedList volumes
List volumes
docker volume ls
docker volume ls
Create volume
Create volume
docker volume create myvolume
docker volume create myvolume
Inspect volume
Inspect volume
docker volume inspect myvolume
docker volume inspect myvolume
Remove volume
Remove volume
docker volume rm myvolume
docker volume rm myvolume
Remove unused volumes
Remove unused volumes
docker volume prune
docker volume prune
Run with volume
Run with volume
docker run -v myvolume:/data -d app
undefineddocker run -v myvolume:/data -d app
undefinedSystem Management
系统管理
bash
undefinedbash
undefinedView disk usage
View disk usage
docker system df
docker system df
Clean up everything unused
Clean up everything unused
docker system prune
docker system prune
Clean up including unused images
Clean up including unused images
docker system prune -a
docker system prune -a
Clean up including volumes
Clean up including volumes
docker system prune --volumes
docker system prune --volumes
Show Docker info
Show Docker info
docker info
docker info
Show Docker version
Show Docker version
docker version
undefineddocker version
undefinedCommon Workflows
常见工作流
Development container:
bash
docker run -it --rm \
-v $(pwd):/app \
-w /app \
-p 3000:3000 \
node:18 \
npm run devDatabase 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:15Quick debugging:
bash
undefined开发容器:
bash
docker run -it --rm \
-v $(pwd):/app \
-w /app \
-p 3000:3000 \
node:18 \
npm run dev数据库容器:
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快速调试:
bash
undefinedShell into running container
Shell into running container
docker exec -it container_name sh
docker exec -it container_name sh
Copy file from container
Copy file from container
docker cp container_name:/path/to/file ./local/path
docker cp container_name:/path/to/file ./local/path
Copy file to container
Copy file to container
docker cp ./local/file container_name:/path/in/container
**Multi-stage build:**
```dockerfiledocker cp ./local/file container_name:/path/in/container
**多阶段构建:**
```dockerfileDockerfile
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
undefinedFROM 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
undefinedUseful 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
docker exec- : Interactive terminal
-it - : User
-u - : Working directory
-w
docker run- : 后台模式(脱离终端)
-d - : 交互式终端
-it - : 端口映射(主机:容器)
-p - : 卷挂载
-v - : 环境变量
-e - : 容器名称
--name - : 退出时自动删除
--rm - : 连接到指定网络
--network
docker exec- : 交互式终端
-it - : 指定用户
-u - : 指定工作目录
-w
Tips
小贴士
- Use to exclude files from build context
.dockerignore - Combine commands in Dockerfile to reduce layers
RUN - Use multi-stage builds to reduce image size
- Always tag your images with versions
- Use for one-off containers
--rm - Use for multi-container apps
docker-compose - Clean up regularly with
docker system prune
- 使用 排除构建上下文内的文件
.dockerignore - 在Dockerfile中合并命令以减少镜像层数
RUN - 使用多阶段构建减小镜像体积
- 始终为镜像添加版本标签
- 为一次性容器使用参数
--rm - 为多容器应用使用
docker-compose - 定期使用清理资源
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/
官方文档:https://docs.docker.com/
Dockerfile 参考文档:https://docs.docker.com/engine/reference/builder/
Compose 文件参考文档:https://docs.docker.com/compose/compose-file/