本文最后更新于42 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
文档信息
- 适用系统: CentOS/RHEL 8+、Ubuntu 20.04+
- Docker版本: 最新稳定版(包含Compose V2插件)
- 部署环境: 云服务器
一、环境准备与检查
1.1 系统要求
- 操作系统: 64位Linux(CentOS 7+/Ubuntu 18.04+)
- 内核版本: ≥ 3.10(推荐 ≥ 5.x)
- 内存: 至少2GB可用
- 磁盘空间: 至少20GB可用
- 网络: 稳定互联网连接
1.2 预检査清单
bash
# 1. 系统信息检查
cat /etc/os-release
uname -r
# 2. 资源检查
free -h
df -h /
# 3. 端口占用检查
ss -tlnp | grep -E ":22|:80|:443|:2375|:2376"
# 4. 防火墙状态检查
systemctl status firewalld
getenforce # SELinux状态
# 5. 网络连通性测试
ping -c 2 8.8.8.8
curl -I https://docker.com
二、Docker Engine 完整安装
2.1 卸载旧版本(如存在)
bash
#!/bin/bash
echo "开始清理旧版本Docker..."
# 停止相关服务
sudo systemctl stop docker docker.socket containerd 2>/dev/null || true
# 卸载旧版本包
for pkg in docker docker-client docker-client-latest docker-common \
docker-latest docker-latest-logrotate docker-logrotate \
docker-engine docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
do
sudo yum remove -y $pkg 2>/dev/null || true
done
# 清理残留文件和目录
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
sudo rm -rf /var/run/docker.sock
sudo rm -rf /var/lib/dockershim
echo "✅ 旧版本清理完成"
2.2 安装依赖和配置仓库
bash
#!/bin/bash
echo "安装系统依赖..."
# 安装必要工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2 \
curl wget git bash-completion
# 添加Docker官方仓库
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 更新仓库缓存
sudo yum makecache fast
echo "✅ 依赖安装完成"
2.3 安装Docker引擎完整套件
bash
#!/bin/bash
echo "安装Docker完整套件..."
# 安装所有核心组件
sudo yum install -y docker-ce \
docker-ce-cli \
containerd.io \
docker-buildx-plugin \
docker-compose-plugin
# 验证安装
echo "安装版本信息:"
docker --version
docker compose version
echo "✅ Docker引擎安装完成"
三、Docker服务配置与优化
3.1 基础服务配置
bash
#!/bin/bash
echo "配置Docker服务..."
# 创建docker用户组
sudo groupadd docker 2>/dev/null || true
# 启动并启用服务
sudo systemctl start docker
sudo systemctl enable docker
sudo systemctl enable containerd
# 添加当前用户到docker组
sudo usermod -aG docker $USER
# 检查服务状态
echo "服务状态检查:"
sudo systemctl status docker --no-pager | grep -A3 "Active:"
echo "⚠️ 重要提示:请重新登录SSH会话以使docker组权限生效"
3.2 镜像加速器配置(中国地区优化)
bash
#!/bin/bash
echo "配置镜像加速器..."
# 创建配置目录
sudo mkdir -p /etc/docker
# 生成daemon.json配置文件
sudo tee /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com",
"https://ccr.ccs.tencentyun.com"
],
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "3",
"compress": "true"
},
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true"
],
"live-restore": true,
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 5,
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 65535,
"Soft": 65535
}
}
}
EOF
# 重新加载并重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker
# 验证配置
echo "镜像加速器配置:"
docker info | grep -A5 "Registry Mirrors"
echo "✅ 镜像加速器配置完成"
3.3 网络与存储优化
bash
#!/bin/bash
echo "配置网络与存储..."
# 创建自定义网络
docker network create docker-network 2>/dev/null || echo "网络已存在"
# 创建基础数据卷
docker volume create docker-data 2>/dev/null || true
# 配置防火墙(如果使用firewalld)
if systemctl is-active --quiet firewalld; then
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.17.0.0/16" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="172.18.0.0/16" accept'
sudo firewall-cmd --reload
fi
echo "✅ 网络与存储配置完成"
四、Docker Compose 完整配置
4.1 Compose环境配置
bash
#!/bin/bash
echo "配置Docker Compose环境..."
# 创建Compose项目目录结构
mkdir -p ~/docker-projects/{compose-files,envs,configs,backup}
# 设置环境变量
cat >> ~/.bashrc << 'EOF'
# Docker Compose别名
alias dcup='docker compose up -d'
alias dcdown='docker compose down'
alias dclogs='docker compose logs -f'
alias dcps='docker compose ps'
alias dcexec='docker compose exec'
alias dcrestart='docker compose restart'
# Docker常用别名
alias dps='docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"'
alias dimg='docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"'
alias dvol='docker volume ls --format "table {{.Name}}\t{{.Driver}}\t{{.Mountpoint}}"'
alias dnet='docker network ls --format "table {{.Name}}\t{{.Driver}}\t{{.Scope}}"'
EOF
# 立即生效
source ~/.bashrc
echo "✅ Compose环境配置完成"
4.2 Compose配置文件模板
bash
#!/bin/bash
echo "创建Compose配置模板..."
# 创建通用docker-compose.yml模板
cat > ~/docker-projects/compose-files/template.yml << 'EOF'
version: '3.8'
# 网络配置
networks:
frontend:
driver: bridge
ipam:
config:
- subnet: 172.20.0.0/16
backend:
driver: bridge
internal: true # 内部网络,不对外暴露
ipam:
config:
- subnet: 172.21.0.0/16
# 数据卷配置
volumes:
app_data:
driver: local
logs:
driver: local
configs:
driver: local
# 服务配置
services:
# 示例服务1
service1:
image: alpine:latest
container_name: example_service1
restart: unless-stopped
networks:
- frontend
volumes:
- app_data:/data
- ./config:/app/config:ro
environment:
- TZ=Asia/Shanghai
- LOG_LEVEL=info
healthcheck:
test: ["CMD", "echo", "healthy"]
interval: 30s
timeout: 10s
retries: 3
deploy:
resources:
limits:
cpus: '0.5'
memory: 512M
reservations:
cpus: '0.25'
memory: 256M
# 示例服务2
service2:
build: .
container_name: example_service2
restart: unless-stopped
depends_on:
- service1
networks:
- frontend
- backend
ports:
- "8080:80"
env_file:
- .env
secrets:
- db_password
labels:
- "com.example.description=Example service"
- "com.example.version=1.0"
# 密钥配置(Docker Swarm模式)
secrets:
db_password:
file: ./secrets/db_password.txt
EOF
# 创建.env环境变量文件模板
cat > ~/docker-projects/envs/.env.template << 'EOF'
# Docker Compose环境变量配置
# 复制此文件为.env并根据需要修改
# 项目设置
COMPOSE_PROJECT_NAME=myproject
COMPOSE_PROJECT_DIR=/path/to/project
# 网络设置
NETWORK_SUBNET=172.22.0.0/16
NETWORK_GATEWAY=172.22.0.1
# 时间设置
TZ=Asia/Shanghai
LANG=en_US.UTF-8
# 资源限制
MEMORY_LIMIT=1g
CPU_LIMIT=0.5
# 日志设置
LOG_LEVEL=INFO
LOG_ROTATE_SIZE=10m
LOG_ROTATE_COUNT=3
EOF
echo "✅ Compose模板创建完成"
4.3 Compose实用工具脚本
bash
#!/bin/bash
echo "创建Compose工具脚本..."
# 创建项目初始化脚本
cat > /usr/local/bin/docker-init-project << 'EOF'
#!/bin/bash
# Docker项目初始化脚本
if [ -z "$1" ]; then
echo "用法: $0 <项目名称>"
exit 1
fi
PROJECT_NAME=$1
PROJECT_DIR="$HOME/docker-projects/$PROJECT_NAME"
echo "创建Docker项目: $PROJECT_NAME"
echo "项目目录: $PROJECT_DIR"
# 创建目录结构
mkdir -p "$PROJECT_DIR"/{compose,config,data,logs,scripts,backup}
# 复制模板文件
cp ~/docker-projects/compose-files/template.yml "$PROJECT_DIR/compose/docker-compose.yml"
cp ~/docker-projects/envs/.env.template "$PROJECT_DIR/.env"
# 创建实用脚本
cat > "$PROJECT_DIR/scripts/start.sh" << 'SCRIPT'
#!/bin/bash
cd "$(dirname "$0")/.."
docker compose up -d
echo "项目已启动"
SCRIPT
cat > "$PROJECT_DIR/scripts/stop.sh" << 'SCRIPT'
#!/bin/bash
cd "$(dirname "$0")/.."
docker compose down
echo "项目已停止"
SCRIPT
cat > "$PROJECT_DIR/scripts/backup.sh" << 'SCRIPT'
#!/bin/bash
cd "$(dirname "$0")/.."
BACKUP_DIR="backup/$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR"
tar czf "$BACKUP_DIR/config.tar.gz" compose/ config/ .env
docker compose config > "$BACKUP_DIR/docker-compose.export.yml"
echo "备份已保存到: $BACKUP_DIR"
SCRIPT
# 设置权限
chmod +x "$PROJECT_DIR"/scripts/*.sh
# 生成README
cat > "$PROJECT_DIR/README.md" << 'README'
# Docker项目: $PROJECT_NAME
## 项目结构
- compose/ - Docker Compose配置文件
- config/ - 应用配置文件
- data/ - 持久化数据
- logs/ - 日志文件
- scripts/ - 管理脚本
- backup/ - 备份文件
## 常用命令
启动项目: ./scripts/start.sh
停止项目: ./scripts/stop.sh
查看日志: docker compose logs -f
进入容器: docker compose exec <服务名> sh
备份配置: ./scripts/backup.sh
## 配置说明
1. 编辑 .env 文件设置环境变量
2. 编辑 compose/docker-compose.yml 配置服务
README
echo "✅ 项目 '$PROJECT_NAME' 初始化完成"
echo "目录: $PROJECT_DIR"
echo "下一步:"
echo "1. cd $PROJECT_DIR"
echo "2. 编辑 .env 文件"
echo "3. 编辑 compose/docker-compose.yml"
echo "4. 运行 ./scripts/start.sh"
EOF
# 创建快速命令脚本
cat > /usr/local/bin/dc-manage << 'EOF'
#!/bin/bash
# Docker Compose管理脚本
case "$1" in
"list")
echo "正在运行的项目:"
docker ps --format "{{.Names}}" | grep -o '^[^_]*' | sort -u
;;
"backup-all")
echo "备份所有项目..."
for dir in ~/docker-projects/*/; do
if [ -f "$dir/scripts/backup.sh" ]; then
echo "备份: $(basename "$dir")"
(cd "$dir" && ./scripts/backup.sh)
fi
done
;;
"cleanup")
echo "清理未使用资源..."
docker system prune -af
docker volume prune -f
docker network prune -f
echo "清理完成"
;;
"stats")
echo "系统资源统计:"
docker system df -v
echo ""
echo "容器资源使用:"
docker stats --no-stream --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}\t{{.NetIO}}\t{{.BlockIO}}"
;;
*)
echo "用法: $0 {list|backup-all|cleanup|stats}"
echo " list - 列出运行中的项目"
echo " backup-all - 备份所有项目"
echo " cleanup - 清理Docker资源"
echo " stats - 查看资源统计"
exit 1
;;
esac
EOF
# 设置权限
sudo chmod +x /usr/local/bin/docker-init-project
sudo chmod +x /usr/local/bin/dc-manage
echo "✅ Compose工具脚本创建完成"
五、验证与测试
5.1 完整功能验证
bash
#!/bin/bash
echo "执行完整功能验证..."
# 测试1: Docker引擎基础功能
echo "=== 测试1: Docker引擎 ==="
docker run --rm hello-world
docker run --rm alpine echo "✅ Alpine容器测试成功"
# 测试2: Docker Compose基础功能
echo "=== 测试2: Docker Compose ==="
TEST_DIR="/tmp/docker-test-$(date +%s)"
mkdir -p "$TEST_DIR"
cd "$TEST_DIR"
cat > docker-compose.yml << 'COMPOSE'
version: '3.8'
services:
test1:
image: busybox:latest
command: echo "服务1启动成功"
networks:
- test-net
test2:
image: busybox:latest
command: echo "服务2启动成功"
networks:
- test-net
depends_on:
- test1
networks:
test-net:
driver: bridge
COMPOSE
docker compose up
cd /tmp
rm -rf "$TEST_DIR"
# 测试3: 多容器网络通信
echo "=== 测试3: 网络通信 ==="
docker network create verify-network
docker run -d --name verify-server --network verify-network nginx:alpine
docker run --rm --network verify-network curlimages/curl -s http://verify-server
docker rm -f verify-server
docker network rm verify-network
echo "✅ 所有功能验证完成"
5.2 性能基准测试
bash
#!/bin/bash
echo "执行性能基准测试..."
echo "1. 镜像拉取速度测试:"
time docker pull alpine:latest
echo "2. 容器启动速度测试:"
time docker run --rm alpine echo "启动测试"
echo "3. 磁盘I/O测试:"
docker run --rm -v /tmp:/data alpine dd if=/dev/zero of=/data/test.bin bs=1M count=100 status=progress
echo "4. 网络性能测试:"
docker run --rm curlimages/curl -o /dev/null -s -w '时间: %{time_total}s\n速度: %{speed_download} B/s\n' https://docker.com
echo "✅ 性能测试完成"
5.3 健康检查脚本
bash
#!/bin/bash
cat > /usr/local/bin/docker-health-check << 'EOF'
#!/bin/bash
# Docker健康检查脚本
echo "=== Docker系统健康检查 ==="
echo "检查时间: $(date)"
echo ""
# 1. 服务状态
echo "1. 服务状态检查:"
SERVICE_STATUS=$(systemctl is-active docker)
if [ "$SERVICE_STATUS" = "active" ]; then
echo "✅ Docker服务: 运行正常"
else
echo "❌ Docker服务: 异常 ($SERVICE_STATUS)"
fi
# 2. 版本信息
echo -e "\n2. 版本信息:"
docker --version 2>/dev/null && echo "✅ Docker版本正常" || echo "❌ Docker未安装"
docker compose version 2>/dev/null && echo "✅ Compose版本正常" || echo "❌ Compose未安装"
# 3. 资源使用
echo -e "\n3. 资源使用情况:"
docker system df --format "表格: {{.Type}}\t总计: {{.TotalSize}}\t使用: {{.Size}}\t可用: {{.Available}}"
# 4. 容器状态
echo -e "\n4. 容器状态:"
RUNNING=$(docker ps -q | wc -l)
TOTAL=$(docker ps -aq | wc -l)
echo "运行中容器: $RUNNING"
echo "总容器数: $TOTAL"
if [ "$RUNNING" -eq "$TOTAL" ] || [ "$TOTAL" -eq 0 ]; then
echo "✅ 容器状态正常"
else
echo "⚠️ 有容器处于停止状态"
fi
# 5. 网络检查
echo -e "\n5. 网络配置:"
docker network ls --filter "type=custom" --format "table {{.Name}}\t{{.Driver}}\t{{.Scope}}"
# 6. 磁盘空间警告
echo -e "\n6. 磁盘空间检查:"
DISK_USAGE=$(df /var/lib/docker --output=pcent | tail -1 | tr -d ' %')
if [ "$DISK_USAGE" -gt 80 ]; then
echo "⚠️ 磁盘使用率较高: ${DISK_USAGE}%"
else
echo "✅ 磁盘空间充足: ${DISK_USAGE}%"
fi
# 7. 安全建议
echo -e "\n7. 安全建议:"
if docker info 2>/dev/null | grep -q "User Namespaces: true"; then
echo "✅ 用户命名空间已启用"
else
echo "⚠️ 建议启用用户命名空间以增强安全性"
fi
echo -e "\n=== 检查完成 ==="
EOF
sudo chmod +x /usr/local/bin/docker-health-check
docker-health-check
六、日常运维与管理
6.1 自动化维护脚本
bash
#!/bin/bash
echo "设置自动化维护..."
# 创建每日维护脚本
sudo tee /etc/cron.daily/docker-maintenance << 'CRON'
#!/bin/bash
# Docker每日维护脚本
LOG_FILE="/var/log/docker-maintenance.log"
echo "=== Docker维护 $(date) ===" >> "$LOG_FILE"
# 1. 清理停止的容器
echo "清理停止的容器..." >> "$LOG_FILE"
docker container prune -f >> "$LOG_FILE" 2>&1
# 2. 清理悬空镜像
echo "清理悬空镜像..." >> "$LOG_FILE"
docker image prune -f >> "$LOG_FILE" 2>&1
# 3. 清理构建缓存
echo "清理构建缓存..." >> "$LOG_FILE"
docker builder prune -f >> "$LOG_FILE" 2>&1
# 4. 备份Docker配置
echo "备份Docker配置..." >> "$LOG_FILE"
tar czf /var/backup/docker-config-$(date +%Y%m%d).tar.gz /etc/docker/ >> "$LOG_FILE" 2>&1
# 5. 保留最近7天的备份
find /var/backup/ -name "docker-config-*.tar.gz" -mtime +7 -delete >> "$LOG_FILE" 2>&1
echo "维护完成" >> "$LOG_FILE"
CRON
sudo chmod +x /etc/cron.daily/docker-maintenance
sudo mkdir -p /var/backup
echo "✅ 自动化维护配置完成"
6.2 监控与日志
bash
#!/bin/bash
echo "配置监控与日志..."
# 创建日志收集配置
sudo tee /etc/docker/daemon.json << 'EOF'
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3",
"compress": "true",
"labels": "production",
"env": "os,customer"
},
"metrics-addr": "127.0.0.1:9323",
"experimental": true
}
EOF
# 创建日志轮转配置
sudo tee /etc/logrotate.d/docker << 'LOGROTATE'
/var/lib/docker/containers/*/*.log {
daily
rotate 7
compress
delaycompress
missingok
copytruncate
}
LOGROTATE
sudo systemctl restart docker
echo "✅ 监控与日志配置完成"
七、故障排除指南
7.1 常见问题解决
| 问题 | 症状 | 解决方案 |
|---|---|---|
| Docker服务无法启动 | systemctl status docker 显示失败 | 1. 检查日志: journalctl -u docker2. 检查存储驱动: docker info | grep Storage 3. 重置配置: rm -rf /var/lib/docker/* |
| 镜像拉取失败 | docker pull 超时或失败 | 1. 检查镜像加速器配置 2. 测试网络: curl -I https://docker.com 3. 更换镜像源 |
| 端口冲突 | docker run 提示端口被占用 | 1. 查看占用进程: ss -tlnp | grep :端口 2. 更改容器映射端口 3. 停止占用进程 |
| 磁盘空间不足 | docker: write ... no space left | 1. 清理资源: docker system prune -af 2. 检查大容器: docker ps -s 3. 迁移数据目录 |
| 权限被拒绝 | Got permission denied | 1. 添加用户到docker组 2. 检查socket权限: ls -la /var/run/docker.sock 3. 使用sudo或重新登录 |
7.2 诊断工具集
bash
#!/bin/bash
cat > /usr/local/bin/docker-diagnose << 'EOF'
#!/bin/bash
# Docker诊断工具
case "$1" in
"network")
echo "网络诊断:"
docker network inspect $(docker network ls -q)
;;
"volume")
echo "存储卷诊断:"
docker volume inspect $(docker volume ls -q) 2>/dev/null || echo "无存储卷"
;;
"logs")
shift
if [ -z "$1" ]; then
echo "用法: $0 logs <容器名>"
exit 1
fi
docker logs --tail 100 -f "$1"
;;
"performance")
echo "性能诊断:"
docker stats --no-stream
docker system df
;;
"security")
echo "安全检查:"
docker info --format '{{json .SecurityOptions}}' | python3 -m json.tool
;;
*)
echo "用法: $0 {network|volume|logs|performance|security}"
echo " network - 网络配置诊断"
echo " volume - 存储卷诊断"
echo " logs - 查看容器日志"
echo " performance - 性能诊断"
echo " security - 安全检查"
exit 1
;;
esac
EOF
sudo chmod +x /usr/local/bin/docker-diagnose
附录
A. 完整命令速查表
bash
# 系统管理
docker info # 系统信息
docker version # 版本信息
docker system df # 磁盘使用
docker system prune -af # 清理所有未使用资源
# 容器管理
docker ps -a # 所有容器
docker run [选项] 镜像 [命令] # 运行容器
docker exec -it 容器名 命令 # 执行命令
docker logs -f 容器名 # 查看日志
docker stop/start/restart # 停止/启动/重启
docker rm -f 容器名 # 删除容器
docker inspect 容器名 # 查看详情
# 镜像管理
docker images # 列出镜像
docker pull 镜像:标签 # 拉取镜像
docker rmi 镜像名 # 删除镜像
docker build -t 标签 . # 构建镜像
docker push 镜像名 # 推送镜像
# Compose管理
docker compose up -d # 启动服务
docker compose down # 停止服务
docker compose ps # 查看状态
docker compose logs -f # 查看日志
docker compose exec 服务 命令 # 执行命令
docker compose pull # 拉取镜像
docker compose build # 构建镜像
# 网络管理
docker network ls # 列出网络
docker network create 网络名 # 创建网络
docker network inspect 网络名 # 查看网络详情
docker network connect 网络 容器 # 连接网络
# 存储管理
docker volume ls # 列出存储卷
docker volume create 卷名 # 创建存储卷
docker volume inspect 卷名 # 查看卷详情
B. 目录结构参考
text
/var/lib/docker/ # Docker主目录
├── containers/ # 容器数据
├── image/ # 镜像存储
├── volumes/ # 数据卷
├── networks/ # 网络配置
└── buildkit/ # 构建缓存
/etc/docker/ # 配置文件
├── daemon.json # 主配置文件
├── key.json # TLS证书
└── certs.d/ # 镜像仓库证书
~/docker-projects/ # 用户项目目录
├── project1/ # 项目1
│ ├── compose/ # Compose文件
│ ├── config/ # 配置文件
│ ├── data/ # 持久化数据
│ ├── scripts/ # 管理脚本
│ └── backup/ # 备份文件
└── project2/ # 项目2
C. 环境变量参考
bash
# 常用环境变量
export DOCKER_HOST="tcp://localhost:2375" # Docker守护进程地址
export DOCKER_TLS_VERIFY="1" # 启用TLS验证
export DOCKER_CERT_PATH="/path/to/certs" # 证书路径
export COMPOSE_PROJECT_NAME="myproject" # Compose项目名
export COMPOSE_FILE="docker-compose.yml" # Compose文件
export COMPOSE_PROFILES="dev,debug" # 激活的profile
D. 联系与支持
- 包含组件: Docker Engine + Docker Compose + 管理工具
- 适用场景: 生产环境Docker完整部署
🎯 部署完成验证清单
运行以下命令验证完整部署:
bash
# 1. 验证核心组件
docker --version && \
docker compose version && \
echo "✅ 核心组件验证通过"
# 2. 验证服务状态
systemctl is-active docker && \
systemctl is-enabled docker && \
echo "✅ 服务状态验证通过"
# 3. 验证网络功能
docker run --rm alpine ping -c 2 8.8.8.8 && \
echo "✅ 网络功能验证通过"
# 4. 验证Compose功能
docker compose version && \
echo "✅ Compose功能验证通过"
# 5. 运行完整健康检查
docker-health-check
文档结束 – Docker及Docker Compose完整部署已完成!




