docker-essentials

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Docker Essentials

Docker 核心命令与工作流

Essential Docker commands for container and image management.
用于容器和镜像管理的核心Docker命令。

Container Lifecycle

容器生命周期

Running containers

运行容器

bash
undefined
bash
undefined

Run 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
undefined
docker run -it ubuntu bash
undefined

Managing containers

管理容器

bash
undefined
bash
undefined

List 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
undefined
docker container prune
undefined

Container Inspection & Debugging

容器检查与调试

Viewing logs

查看日志

bash
undefined
bash
undefined

Show 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
undefined
docker logs -t container_name
undefined

Executing commands

执行命令

bash
undefined
bash
undefined

Execute 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
undefined
docker exec -e VAR=value container_name env
undefined

Inspection

检查信息

bash
undefined
bash
undefined

Inspect 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
undefined
docker top container_name
undefined

Image Management

镜像管理

Building images

构建镜像

bash
undefined
bash
undefined

Build 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 .
undefined
docker build --no-cache -t myapp .
undefined

Managing images

管理镜像

bash
undefined
bash
undefined

List 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
undefined
docker image prune -a
undefined

Docker Compose

Docker Compose

Basic operations

基础操作

bash
undefined
bash
undefined

Start 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
undefined
docker-compose up -d --scale web=3
undefined

Service management

服务管理

bash
undefined
bash
undefined

List 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
undefined
docker-compose up -d --build
undefined

Networking

网络管理

bash
undefined
bash
undefined

List 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
undefined
docker network rm mynetwork
undefined

Volumes

卷管理

bash
undefined
bash
undefined

List 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
undefined
docker run -v myvolume:/data -d app
undefined

System Management

系统管理

bash
undefined
bash
undefined

View 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
undefined
docker version
undefined

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
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
undefined

Shell 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:**
```dockerfile
docker cp ./local/file container_name:/path/in/container

**多阶段构建:**
```dockerfile

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
undefined
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
undefined

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
docker run
参数:
  • -d
    : 后台模式(脱离终端)
  • -it
    : 交互式终端
  • -p
    : 端口映射(主机:容器)
  • -v
    : 卷挂载
  • -e
    : 环境变量
  • --name
    : 容器名称
  • --rm
    : 退出时自动删除
  • --network
    : 连接到指定网络
docker exec
参数:
  • -it
    : 交互式终端
  • -u
    : 指定用户
  • -w
    : 指定工作目录

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
  • 使用
    .dockerignore
    排除构建上下文内的文件
  • 在Dockerfile中合并
    RUN
    命令以减少镜像层数
  • 使用多阶段构建减小镜像体积
  • 始终为镜像添加版本标签
  • 为一次性容器使用
    --rm
    参数
  • 为多容器应用使用
    docker-compose
  • 定期使用
    docker system prune
    清理资源

Documentation

官方文档