Docker 命令行与 Docker Compose 全面指南
来源:     阅读:4
易浩激活码
发布于 2025-10-30 15:43
查看主页

Docker 命令行与 Docker Compose 全面指南


1 Docker 容器状态管理与优化

Docker 容器的生命周期包含多个状态:Created(已创建)、Running(运行中)、Paused(暂停)、Stopped(停止)和 Deleted(删除)。理解这些状态及其转换是有效管理 Docker 容器的基础。

1.1 容器生命周期管理 (高频常用)



命令

功能描述

实际示例

使用频率

docker run

创建并启动新容器

docker run -d --name my-nginx nginx:alpine

⭐⭐⭐⭐⭐

docker start

启动已存在的停止容器

docker start my-nginx

⭐⭐⭐⭐⭐

docker stop

优雅停止运行中的容器 (发送 SIGTERM)

docker stop my-nginx(等待10秒)

⭐⭐⭐⭐⭐

docker restart

重启容器

docker restart my-nginx

⭐⭐⭐⭐

docker pause/unpause

暂停/恢复容器

docker pause my-nginx

⭐⭐⭐

docker kill

强制停止容器 (发送 SIGKILL)

docker kill my-nginx(立即停止)

⭐⭐

docker rm

删除已停止的容器

docker rm my-nginx

⭐⭐⭐⭐⭐

docker create

创建容器但不立即启动

docker create --name my-nginx nginx:alpine

⭐⭐

1.2 容器状态查看与监控 (高频常用)



命令

功能描述

实际示例

使用频率

docker ps

查看运行中的容器

docker ps -a(查看所有容器)

⭐⭐⭐⭐⭐

docker logs

查看容器日志输出

docker logs -f my-nginx(实时跟踪)

⭐⭐⭐⭐⭐

docker stats

实时监控容器资源使用 (CPU/内存/网络)

docker stats my-nginx

⭐⭐⭐⭐

docker top

查看容器内运行的进程

docker top my-nginx

⭐⭐⭐

docker inspect

查看容器详细信息 (配置/状态/网络)

docker inspect my-nginx

⭐⭐⭐⭐⭐

docker events

查看实时事件流 (创建/启动/停止等)

docker events --filter event=die

⭐⭐

docker wait

等待容器停止并获取退出状态码

docker wait my-nginx

1.3 容器优化策略

2 Docker 容器部署及配置设置

容器部署涉及运行时的各种配置,包括网络、存储、环境变量等。

2.1 容器运行与配置 (高频常用)

docker run命令是启动容器的核心,选项繁多。



选项

功能描述

实际示例

使用频率

-d/--detach

后台运行容器

docker run -d nginx

⭐⭐⭐⭐⭐

--name

为容器指定名称

docker run --name my-web nginx

⭐⭐⭐⭐⭐

-p/--publish

端口映射 (主机端口:容器端口)

docker run -p 8080:80 nginx

⭐⭐⭐⭐⭐

-v/--volume

挂载数据卷或主机目录

docker run -v /host/path:/container/path nginx

⭐⭐⭐⭐⭐

-e/--env

设置环境变量

docker run -e MY_VAR=value nginx

⭐⭐⭐⭐⭐

--rm

容器退出后自动删除

docker run --rm -it ubuntu bash

⭐⭐⭐⭐

-it

交互式运行容器 (组合选项)

docker run -it ubuntu bash

⭐⭐⭐⭐⭐

--network

指定容器网络

docker run --network=my-bridge nginx

⭐⭐⭐⭐

--restart

设置重启策略

docker run --restart=on-failure:3 nginx

⭐⭐⭐

-u/--user

指定运行用户

docker run -u 1000:1000 nginx

⭐⭐

--env-file

从文件读取环境变量

docker run --env-file .env nginx

⭐⭐⭐

2.2 网络配置管理

Docker 提供了多种网络模式来适应不同场景。



网络模式

描述

适用场景

使用频率

bridge

默认模式。容器通过 Docker 桥接网络与主机和其他容器通信。

单主机内容器通信,需要端口映射

⭐⭐⭐⭐⭐

host

容器直接使用主机网络,无隔离。性能最好,但安全性较低。

高性能需求场景,如网络密集型应用

⭐⭐⭐

none

禁用所有网络。容器完全隔离。

安全隔离要求极高的场景

overlay

支持多主机容器通信。

Docker Swarm 或 Kubernetes 集群环境

⭐⭐⭐ (集群)

macvlan

为容器分配 MAC 地址,使其在物理网络上像一台物理设备。

需要容器直接暴露在物理网络的场景

⭐⭐

常用网络管理命令

# 查看网络列表docker network ls# 创建自定义桥接网络docker network create --driver bridge --subnet 192.168.1.0/24 my-bridge# 将运行中的容器连接到网络docker network connect my-bridge my-container# 断开容器与网络的连接docker network disconnect my-bridge my-container# 查看网络详细信息docker network inspect my-bridge# 删除网络docker network rm my-bridge

2.3 数据持久化与卷管理

容器本身是临时的,数据持久化需要依赖卷(Volume)或绑定挂载(Bind Mount)。



方式

描述

优点

缺点

Volume

Docker 管理的持久化数据存储,与容器生命周期分离。

易于备份、迁移和管理,是 Docker 推荐的方式。

位置在 Docker 存储区域,主机上直接访问稍复杂。

Bind Mount

将主机上的特定目录或文件直接挂载到容器中。

主机和容器之间共享文件方便,如配置文件、源代码。

依赖主机目录结构,可移植性较差。

tmpfs

将数据存储在内存中,仅适用于 Linux 主机。

速度快,但容器停止后数据丢失。

非持久化,适用于临时敏感数据。

常用数据卷命令

# 查看卷列表docker volume ls# 创建命名卷docker volume create my-vol# 查看卷详细信息docker volume inspect my-vol# 使用卷启动容器docker run -d -v my-vol:/app/data nginx# 删除未使用的卷docker volume prune# 绑定挂载主机目录docker run -d -v /host/path:/container/path nginx

3 Docker 镜像管理:打包、发布、推送和拉取

镜像是容器的基础,管理镜像是 Docker 使用中的重大环节。

3.1 基础镜像操作 (高频常用)



命令

功能描述

实际示例

使用频率

docker pull

从仓库拉取镜像到本地

docker pull nginx:latest

⭐⭐⭐⭐⭐

docker images

列出本地镜像

docker images

⭐⭐⭐⭐⭐

docker rmi

删除本地镜像

docker rmi nginx:latest

⭐⭐⭐⭐

docker build

根据 Dockerfile 构建镜像

docker build -t my-app:latest .

⭐⭐⭐⭐⭐

docker tag

给镜像打标签

docker tag my-app:latest my-registry/my-app:v1.0

⭐⭐⭐⭐

docker push

将镜像推送到远程仓库

docker push my-registry/my-app:v1.0

⭐⭐⭐⭐

docker save

将镜像保存为 tar 文件

docker save -o my-app.tar my-app:latest

⭐⭐

docker load

从 tar 文件加载镜像

docker load -i my-app.tar

⭐⭐

docker history

查看镜像构建历史

docker history my-app:latest

⭐⭐

docker search

在 Docker Hub 中搜索镜像

docker search nginx

⭐⭐

3.2 镜像构建 (Dockerfile)

Dockerfile 是一个包含构建镜像所需指令的文本文件。

常见 Dockerfile 指令

# 指定基础镜像FROM alpine:3.7# 更新系统并安装包RUN apk update && apk add curl# 设置工作目录WORKDIR /app# 复制应用程序文件COPY app.sh .# 设置入口点ENTRYPOINT ["./app.sh"]

构建镜像:

docker build -t my-image:latest .

docker build支持一些有用选项:

3.3 镜像推送与拉取

要分享镜像,需要将其推送到镜像仓库(如 Docker Hub、私有仓库)。

docker login
docker tag my-image:latest your-username/your-repo:your-tag
docker push your-username/your-repo:your-tag
docker pull your-username/your-repo:your-tag

Docker 命令行与 Docker Compose 全面指南


4 Docker Compose 详细讲解

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件(默认名为 docker-compose.yml)来配置所有服务,然后用一条命令即可启动所有服务。

4.1 核心概念与优势

4.2 docker-compose.yml 文件结构解析

一个典型的 docker-compose.yml文件包含以下部分:

version: '3'  # 指定 Compose 文件格式的版本services:     # 定义各个服务(容器)  web:        # 服务名称    image: nginx:latest  # 使用的镜像    ports:      - "8080:80"       # 端口映射 (主机:容器)    volumes:      - ./html:/usr/share/nginx/html  # 挂载数据卷或目录    networks:      - my-network      # 连接到的网络    depends_on:      - database        # 依赖关系,先启动 database  database:   # 另一个服务    image: mysql:5.7    environment:      MYSQL_ROOT_PASSWORD: example_password    volumes:      - db_data:/var/lib/mysql  # 使用命名卷    networks:      - my-networkvolumes:      # 定义卷(如果不在上面声明,Compose 会自动创建)  db_data:networks:     # 定义网络(如果不在上面声明,Compose 会自动创建)  my-network:

4.3 常用 Docker Compose 命令 (高频常用)



命令

功能描述

使用频率

docker-compose up

创建并启动所有服务。-d在后台运行。

⭐⭐⭐⭐⭐

docker-compose down

停止并删除所有容器、网络。-v同时删除卷。

⭐⭐⭐⭐⭐

docker-compose ps

列出本项目中的所有容器。

⭐⭐⭐⭐

docker-compose logs

查看所有服务的日志。-f实时跟踪。

⭐⭐⭐⭐

docker-compose start

启动已存在的服务容器。

⭐⭐⭐

docker-compose stop

停止运行中的服务容器,不删除。

⭐⭐⭐

docker-compose restart

重启服务容器。

⭐⭐⭐

docker-compose exec

在运行中的服务容器中执行命令。

⭐⭐⭐⭐

docker-compose build

构建或重新构建服务的镜像。

⭐⭐⭐

docker-compose pull

拉取服务所需的镜像。

⭐⭐

docker-compose config

验证并查看 Compose 文件配置。

⭐⭐

4.4 Docker Compose 实战示例:部署 WordPress

这是一个经典的多容器应用示例(WordPress + MySQL):

version: '3'services:  db:    image: mysql:5.7    volumes:
      - db_data:/var/lib/mysql    restart: always    environment:      MYSQL_ROOT_PASSWORD: somewordpress      MYSQL_DATABASE: wordpress      MYSQL_USER: wordpress      MYSQL_PASSWORD: wordpress  wordpress:    depends_on:
      - db    image: wordpress:latest    ports:
      - "8000:80"    restart: always    environment:      WORDPRESS_DB_HOST: db:3306      WORDPRESS_DB_USER: wordpress      WORDPRESS_DB_PASSWORD: wordpress      WORDPRESS_DB_NAME: wordpress    volumes:
      - ./wp-content:/var/www/html/wp-contentvolumes:  db_data:

部署步骤

  1. 将上述内容保存为 docker-compose.yml。

  2. 在终端中运行 docker-compose up -d。

  3. 打开浏览器访问 http://localhost:8000即可看到 WordPress 安装界面。

  4. 要停止并清理,运行 docker-compose down -v。

5 总结与高频命令速查表

5.1 学习提议

5.2 终极高频命令速查表



类别

超高频命令 (每天用)

次高频命令 (常常用)

容器生命周期

docker run, docker ps, docker stop, docker rm, docker logs

docker start, docker restart, docker exec

镜像管理

docker build, docker images, docker pull

docker tag, docker push, docker rmi

网络与存储

docker network ls, docker volume ls

docker network create, docker volume create

Compose

docker-compose up, docker-compose down, docker-compose logs

docker-compose ps, docker-compose exec

免责声明:本文为用户发表,不代表网站立场,仅供参考,不构成引导等用途。 系统环境
相关推荐
12、正则表达式
Flutter实现网络请求
Rust 查找重复文件:像找双胞胎一样揪出文件夹里的克隆文件
初始化vue项目报错 eslint.org...
如何在 Ubuntu 系统中增加一个辅助 IP 地址
首页
搜索
订单
购物车
我的