Docker 企业级容器化平台构建与应用自动化部署
企业级 Docker 容器化平台搭建的标准化操作指南,涵盖环境部署、镜像构建、私有仓库、服务编排、监控运维全流程,适用于 Nginx、Tomcat、JumpServer 等应用的容器化迁移,可经过精细化调整后直接用于生产环境落地实施。
一、环境准备
1.硬件要求

2. 依赖检查与安装
# 关闭防火墙(生产环境可配置安全组替代)
systemctl stop firewalld
systemctl disable firewalld
# 关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 安装基础依赖工具
yum install -y curl wget gcc gcc-c++ make pcre pcre-devel openssl-devel
二、Docker 环境部署
1. Docker 安装
# 1. 配置阿里云 Docker YUM 源
curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 2. 安装 Docker CE 稳定版
yum install -y docker-ce
# 3. 启动 Docker 服务并设置开机自启
systemctl start docker
systemctl enable docker
# 4. 验证 Docker 安装成功(显示版本信息即正常)
docker version
2. Docker 核心配置(加速 + 私有仓库信任)
# 1. 创建/修改 Docker 配置文件
cat > /etc/docker/daemon.json << EOF
{
"registry-mirrors": [
"https://6kx4zyno.mirror.aliyuncs.com",
"https://registry.docker-cn.com"
],
"insecure-registries": ["192.168.56.104"],
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
EOF
# 2. 重启 Docker 使配置生效
systemctl restart docker
# 3. 验证配置(查看镜像源和私有仓库配置)
docker system info | grep -E "Registry Mirrors|Insecure Registries|Mirrors|Insecure" -A 10
三、Harbor 私有仓库搭建
1. 安装前提(Docker Compose 已预装)
# 验证 Docker Compose 安装
docker-compose --version
# 若未安装,执行以下命令
yum install -y docker-compose
2. Harbor 安装与配置
# 1. 下载并解压 Harbor 安装包(离线包更稳定) 如果无法下载离线包暂时用在线包!
wget https://github.com/goharbor/harbor/releases/download/v1.8.0/harbor-offline-installer-v1.8.0.tgz
tar xf harbor-offline-installer-v1.8.0.tgz -C /usr/local/
# 2. 配置 Harbor 核心参数
cd /usr/local/harbor
cp harbor.yml.tmpl harbor.yml
cat > harbor.yml << EOF
hostname: 192.168.56.104
harbor_admin_password: 123456
http:
port: 80
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
EOF
# 3. 执行安装脚本
./install.sh
# 4. 验证 Harbor 启动成功(查看容器状态)
docker-compose ps
# 预期输出:harbor-core、harbor-db、harbor-portal 等容器状态为 Up
# 1. 下载并解压 Harbor 安装包(离线包更稳定)
wget https://github.com/goharbor/harbor/releases/download/v1.8.0/harbor-offline-installer-v1.8.0.tgz
tar xf harbor-offline-installer-v1.8.0.tgz -C /usr/local/
# 2. 配置 Harbor 核心参数
cd /usr/local/harbor
cp harbor.yml.tmpl harbor.yml
#修改harbor.yml以下内容:
vim harbor.yml
hostname: 192.168.56.104
harbor_admin_password: 123456
http:
port: 80
log:
level: info
local:
rotate_count: 50
rotate_size: 200M
location: /var/log/harbor
# 3. 执行安装脚本
./install.sh
# 4. 验证 Harbor 启动成功(查看容器状态)
docker-compose ps
# 预期输出:harbor-core、harbor-db、harbor-portal 等容器状态为 Up
注意:测试时可以关闭HTTPS 协议,也可以配置自签证书,我这里为了测试项目,因此没有配置
# https:
# port: 443
# certificate: /your/cert/path
# private_key: /your/key/path
安装完成

3. Harbor 初始化操作(web界面)
- 访问地址:
http://192.168.30.13- 登录账号:admin/123456
- 创建项目:
- 项目名称:chenyun(自定义,需与后续镜像标签一致)
- 访问级别:私有(仅授权用户可拉取,安全管控)
- 权限配置:创建普通用户并分配项目权限(避免使用 admin 账号直接操作)

创建项目

创建账号

给项目分配管理员

验证:普通用户登录并使用项目
退出登录并且重新进去项目进行验证

4.设置 Harbor 开机自启(通过 systemd 实现)
Docker Compose 本身不支持开机自启,但可以通过系统的
systemd服务管理工具配置自动启动脚本。
步骤 1:创建 systemd 服务文件
# 创建 Harbor 服务文件
vim /etc/systemd/system/harbor.service
[Unit]
Description=Harbor Docker Registry Service
After=docker.service # 确保 Docker 服务启动后再启动 Harbor
Requires=docker.service
[Service]
Type=oneshot
ExecStart=/usr/bin/docker-compose -f /usr/local/harbor/docker-compose.yml up -d # 启动命令
ExecStop=/usr/bin/docker-compose -f /usr/local/harbor/docker-compose.yml down # 停止命令
RemainAfterExit=yes # 服务启动后保持运行状态
[Install]
WantedBy=multi-user.target # 多用户模式下开机自启
步骤 2:启用并启动服务
# 重新加载 systemd 配置
systemctl daemon-reload
# 启用开机自启
systemctl enable harbor.service
# 手动启动一次(验证服务是否正常)
systemctl start harbor.service
步骤 3:验证开机自启配置
# 查看服务状态(确保 Active: active (exited),表示启动成功)
systemctl status harbor.service
# 重启主机后验证(可选,测试实际效果)
reboot
# 重启后查看 Harbor 容器是否自动启动
docker-compose -f /usr/local/harbor/docker-compose.yml ps

四、标准化镜像构建
1. 镜像构建规范
- 基础镜像选择:优先使用精简镜像(如 centos:6.8 而非完整版)
- 多阶段构建:分离编译和运行阶段,剔除无用依赖
- 权限最小化:创建专用运行用户,避免使用 root
- 标签标准化:格式为
私有仓库地址/项目名/镜像名:版本(如 192.168.30.13/shanwaiyun/nginx:v1)
2. Nginx 镜像构建
(1)准备构建文件
# 创建工作目录
mkdir -p /opt/docker-build/nginx && cd /opt/docker-build/nginx
# 下载 Nginx 源码包
wget http://nginx.org/download/nginx-1.18.0.tar.gz
(2)编写 Dockerfile
# 新建 Dockerfile 文件
cat > Dockerfile << EOF
# 构建阶段
FROM centos:6.8 AS build
RUN rm -f /etc/yum.repos.d/*.repo && \
echo "[base]" > /etc/yum.repos.d/CentOS-Base.repo && \
echo "name=CentOS-6 - Base - mirrors.aliyun.com" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "baseurl=https://mirrors.aliyun.com/centos-vault/6.8/os/x86_64/" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "gpgcheck=1" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "[updates]" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "name=CentOS-6 - Updates - mirrors.aliyun.com" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "baseurl=https://mirrors.aliyun.com/centos-vault/6.8/updates/x86_64/" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "gpgcheck=1" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "[extras]" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "name=CentOS-6 - Extras - mirrors.aliyun.com" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "baseurl=https://mirrors.aliyun.com/centos-vault/6.8/extras/x86_64/" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "gpgcheck=1" >> /etc/yum.repos.d/CentOS-Base.repo && \
echo "gpgkey=https://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6" >> /etc/yum.repos.d/CentOS-Base.repo && \
yum clean all && yum makecache # 清理缓存并生成新源缓存
RUN yum install -y wget gcc gcc-c++ openssl-devel make pcre pcre-devel && \
useradd -s /sbin/nologin -M nginx
ADD nginx-1.18.0.tar.gz /usr/local/src/
WORKDIR /usr/local/src/nginx-1.18.0
RUN ./configure --prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_ssl_module \
--with-http_stub_status_module && \
make && make install && \
echo "daemon off;" >> /usr/local/nginx/conf/nginx.conf
# 运行阶段
FROM centos:6.8
COPY --from=build /usr/local/nginx /usr/local/nginx
COPY --from=build /etc/passwd /etc/passwd
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
CMD ["nginx"]
EOF
(3)构建并推送镜像
# 1. 构建镜像
docker build -t 192.168.30.13/chenyun/nginx:v1 .
# 2. 登录 Harbor 私有仓库
docker login 192.168.30.13 -u admin -p 123456
# 3. 推送镜像到私有仓库
docker push 192.168.30.13/chenyun/nginx:v1
# 4. 验证镜像(从仓库拉取测试)
docker rmi 192.168.30.13/chenyun/nginx:v1
docker pull 192.168.30.13/chenyun/nginx:v1
登录Harbor镜像和推送到私有仓库演示


验证镜像(从仓库拉取测试)

通过web界面可以发现,下载数发生改变

3. Tomcat 镜像构建
(1)准备构建文件
# 1. 准备工作目录和依赖包
mkdir -p /opt/docker-build/tomcat && cd /opt/docker-build/tomcat
# 上传 jdk-8u45-linux-x64.tar.gz 和 apache-tomcat-8.5.56.tar.gz 到该目录
# 也可以通过wget下载
(2)编写 Dockerfile
# 2. 编写 Dockerfile
cat > Dockerfile << EOF
FROM centos:6.8
ADD jdk-8u151-linux-i586.tar.gz /usr/local
ADD apache-tomcat-8.5.56.tar.gz /usr/local/
# 2. 清理压缩包 + 创建用户 + 权限配置
RUN rm -f /usr/local/*.tar.gz && \
useradd -s /sbin/nologin -M tomcat && \
chown -R tomcat:tomcat /usr/local/apache-tomcat-8.5.56
ENV JAVA_HOME /usr/local/jdk1.8.0_45
ENV CATALINA_HOME /usr/local/apache-tomcat-8.5.56
ENV PATH $JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH
WORKDIR $CATALINA_HOME
EXPOSE 8080
ENTRYPOINT ["./bin/catalina.sh", "run"]
EOF
(3)构建并推送
# 3. 构建并推送
docker build -t 192.168.30.13/chenyun/tomcat:v1 .
docker push 192.168.30.13/chenyun/tomcat:v1
构建并推送成功


4.从官方拉取 MySQL 5.7 镜像进行推送
docker pull mysql:5.7
# 打标签(匹配 Harbor 项目路径 chenyun)
docker tag mysql:5.7 192.168.30.13/chenyun/mysql:5.7
# 推送到 Harbor
docker push 192.168.30.13/chenyun/mysql:5.7
5.从官方拉取Redis 最新镜像进行推送
docker pull redis:latest
# 打标签
docker tag redis:latest 192.168.30.13/chenyun/redis:latest
# 推送到 Harbor
docker push 192.168.30.13/chenyun/redis:latest
6.从官方拉取拉取 Jumpserver 镜像进行推送
docker pull jumpserver/jms_all:v2.1.2 #给镜像打标签(匹配你原配置的 Harbor 路径) docker tag jumpserver/jms_all:v2.1.2 192.168.30.13/chenyun/jumpserver/jms_all:v2.1.2 # 推送jumpserver镜像到私有仓库 docker push 192.168.30.13/chenyun/jumpserver/jms_all:v2.1.2
五、Docker Compose 多服务编排部署
重启策略说明(选哪种?)
Docker 提供 4 种重启策略,推荐使用
always或unless-stopped:
--restart=always:最常用,无论容器如何退出(正常 / 异常),Docker 服务启动时都会自动启动容器。--restart=unless-stopped:容器退出后,除非手动执行docker stop停止,否则 Docker 服务启动时会自动启动(适合需要偶尔手动停止的场景)。--restart=on-failure:仅在容器异常退出(退出码非 0)时自动重启(适合对稳定性要求不高的临时任务)。--restart=no:默认策略,主机重启后不会自动启动(不推荐用于生产环境的监控组件)。所有docker服务可以添加重启策略,
也可以在后期统一用docker update --restart=always 容器名:
# 示例:创建 mysqld:5.7 时直接配置自动重启 docker run -d \ --name=mysqld-exporter \ --restart=always \ # 关键:设置自动重启策略 -e DATA_SOURCE_NAME="root:你的密码@(192.168.30.13:3306)/" \ -p 9104:9104 \ prom/mysqld:5.7
2. JumpServer 堡垒机编排部署
(1)编写 docker-compose.yml
# 创建编排目录
mkdir -p /opt/docker-compose/jumpserver && cd /opt/docker-compose/jumpserver
# 创建数据卷挂载
mkdir -p /opt/jumpserver/data
# 临时777权限,部署完成后需要精细化配置
chmod 777 /opt/jumpserver/data
# 编写编排文件
cat > docker-compose.yml << EOF
version: '3.8'
services:
mysql:
image: 192.168.30.13/chenyun/mysql:5.7
container_name: jumpserver-mysql
restart: always
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql
environment:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
- MYSQL_DATABASE=jumpserver
- MYSQL_USER=jumpserver
- MYSQL_PASSWORD=123456
networks:
- jumpserver-net
redis:
image: 192.168.30.13/chenyun/redis:latest
container_name: jumpserver-redis
restart: always
ports:
- "6379:6379"
environment:
- REDIS_PASSWORD=123456
command: redis-server --requirepass 123456
networks:
- jumpserver-net
jms_all:
image: 192.168.30.13/chenyun/jumpserver/jms_all:v2.10.0
container_name: jumpserver-core
restart: always
ports:
- "8080:80"
- "2222:2222"
volumes:
- /opt/jumpserver/data:/opt/jumpserver/data
environment:
- SECRET_KEY=8!t550ob(mh3ab^!wwritk33&gn*^u8h
- BOOTSTRAP_TOKEN=nOK2IOJKaogjocaq
- DB_HOST=mysql
- DB_PORT=3306
- DB_USER=jumpserver
- DB_PASSWORD=123456
- DB_NAME=jumpserver
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_PASSWORD=123456
depends_on:
- mysql
- redis
networks:
- jumpserver-net
volumes:
mysql_data:
networks:
jumpserver-net:
driver: bridge
EOF
(2)一键部署与验证
# 1. 启动所有服务(后台运行)
docker-compose up -d
# 2. 查看服务启动状态
docker-compose ps
# 3. 查看日志(排查启动故障)
docker-compose logs -f jms_all
# 4. 访问验证
# 访问地址:http://192.168.30.13:8080
# 登录账号:admin/admin(首次登录需修改密码)
访问web堡垒机

修改密码

重新登录

六、监控运维体系搭建
1. 监控架构说明
- 数据采集:cAdvisor(容器指标)+ Node Exporter(宿主机指标)
- 数据存储:Prometheus(时序数据存储)
- 可视化:Grafana(图表展示 + 告警)
- 告警方式:支持邮件、钉钉、短信等(需额外配置:该项目后续再配置)
2. 组件部署步骤
(1)部署 cAdvisor(容器指标采集)
docker run -d \
--name=cadvisor \
--privileged=true \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--volume=/dev/disk/:/dev/disk:ro \
--publish=8082:8080 \
google/cadvisor:latest
# 宿主机端口 8082 映射到容器内 8080 端 ,因为堡垒机已经使用了8080端口
# 验证:访问 http://192.168.30.13:8082/metrics 能看到指标数据即正常

(2)部署 Node Exporter(宿主机指标采集)
docker run -d \
--name=node-exporter \
--net="host" \
--pid="host" \
--volume="/proc:/host/proc:ro" \
--volume="/sys:/host/sys:ro" \
--volume="/:/rootfs:ro" \
--publish=9100:9100 \
prom/node-exporter \
--path.procfs=/host/proc \
--path.sysfs=/host/sys \
--collector.filesystem.ignored-mount-points="^/(sys|proc|dev|host|etc)($|/)"
# 验证:访问 http://192.168.30.13:9100/metrics 能看到宿主机指标即正常

(3)部署 Prometheus(指标存储)
# 1. 创建配置文件目录
mkdir -p /opt/prometheus && cd /opt/prometheus
# 2. 编写配置文件
cat > prometheus.yml << EOF
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['192.168.30.13:9090']
labels:
instance: 'prometheus-server'
- job_name: 'docker-containers'
static_configs:
- targets: ['192.168.30.13:8082']
labels:
instance: 'docker-node-1'
- job_name: 'host-resources'
static_configs:
- targets: ['192.168.30.13:9100']
labels:
instance: 'docker-node-1'
EOF
# job_name解释一下:
# job_name: 'prometheus' 采集 Prometheus 自身的运行指标(监控监控系统本身)
# job_name: 'docker-containers' 采集 Docker 容器的运行指标(如容器的 CPU、内存、网络 IO 等)。
# job_name: 'host-resources' 采集宿主机(物理机 / 虚拟机)的硬件和系统资源指标。
# 3. 启动 Prometheus
docker run -d \
--name=prometheus \
--publish=9090:9090 \
--volume=/opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml \
prom/prometheus
# 验证:访问 http://192.168.30.13:9090 ,进入 Status -> Targets ,所有目标状态为 UP 即正常
访问 http://192.168.30.13:9090 ,进入 Status -> Targets ,所有目标状态为 UP 即正常

(4)部署 Grafana(可视化 + 告警)
# 创建宿主机挂载目录 /opt/grafana/data
mkdir -p /opt/grafana/data
# 将目录所有者改为容器内的 grafana 用户(UID 472)
chown -R 472:472 /opt/grafana/data
# 验证权限(一般不需要)
ls -ld /opt/grafana/data
# 1.启动 Grafana
docker run -d \
--name=grafana \
--publish=3000:3000 \
--volume=/opt/grafana/data:/var/lib/grafana \
--restart=always \
grafana/grafana
2. 初始化配置(界面操作)
访问地址:http://192.168.30.13:3000
登录账号:admin/admin(首次登录需修改密码)



3. 添加 Prometheus 数据源
步骤:Configuration -> Data Sources -> Add data source -> 选择 Prometheus
配置:
- Name: Prometheus- URL: http://192.168.30.13:9090
- Access: Server
点击 Save & Test ,显示 Data source is working 即成功

在这里面可以设置很多参数,本项目是容器化部署项目,因此许多服务没有进行精细化管理与配置!



4. 导入监控模板
宿主机监控模板:导入 ID 8919(Node Exporter 中文模板)
Docker 容器监控模板:导入 ID 12781(Docker 全方位监控)导入模板步骤(以宿主机模板 8919 为例):
进入导入页面点击页面中间的 + Create dashboard 按钮(或左侧菜单 Dashboards → New → Import)。
输入模板 ID在弹出的 “Import” 页面中,找到 “Import via grafana.com” 输入框,输入宿主机模板 ID 8919,然后点击 Load(Grafana 会自动从官方模板库拉取该模板)。
配置模板关联的数据源加载完成后,页面会显示模板详情,在 “Prometheus” 下拉框中,选择你之前添加的 Prometheus 数据源(默认名称可能是 “Prometheus”)。
完成导入点击页面底部的 Import 按钮,稍等片刻,模板会自动生成包含宿主机监控指标(CPU、内存、磁盘、网络等)的仪表板。
(1)宿主机监控模板:导入 ID 8919(Node Exporter 中文模板)



(2)Docker 容器监控模板:导入 ID 12781(Docker 全方位监控)


5. 配置告警规则(这里是示例,步骤我就不做了,但是在生产环境必须配置!!!)
步骤:Alerting -> Alert rules -> Create alert rule
规则1:CPU 使用率 > 80%(持续 1 分钟)
规则2:内存使用率 > 90%(持续 1 分钟)
规则3:磁盘可用空间 < 10%(持续 5 分钟)
配置告警渠道:Alerting -> Notification channels(支持邮件、钉钉等)
七、日常运维与故障应急
1. 常用运维命令
| 操作目的 | 命令 |
|---|---|
| 查看运行中容器 | docker ps |
| 查看所有容器 | docker ps -a |
| 查看容器日志 | docker logs -f 容器 ID / 名称 |
| 查看容器资源占用 | docker stats |
| 启动 / 停止 / 重启容器 | docker start/stop/restart 容器 ID / 名称 |
| 构建镜像 | docker build -t 镜像名:版本 . |
| 推送镜像 | docker push 镜像名:版本 |
| 拉取镜像 | docker pull 镜像名:版本 |
| 清理未使用镜像 | docker image prune -a -f |
| 清理停止的容器 | docker container prune -f |
| 查看数据卷 | docker volume ls |
| 查看网络 | docker network ls |
2. 故障应急流程
(1)容器无法启动
- 执行
docker logs -f 容器ID查看日志,定位错误原因- 常见问题及解决:
- 端口占用:更换端口或停止占用端口的服务
- 依赖服务未启动:检查
depends_on配置,确保依赖服务正常运行- 数据卷权限:执行
chmod 777 -R 宿主机目录临时授权(生产环境需精细化配置)(2)服务访问异常
- 检查容器状态:
docker ps确认容器是否运行- 检查端口映射:
docker port 容器ID确认端口映射正确- 检查网络连通性:
docker exec -it 容器ID ping 目标IP- 检查应用日志:进入容器查看应用日志(如 Nginx 日志:/usr/local/nginx/logs/error.log)
(3)数据丢失应急
- 利用数据卷备份恢复:
docker run --rm -v 目标数据卷:/target -v /backup:/backup alpine tar -xzf /backup/备份文件名.tar.gz -C /target- 利用镜像备份恢复:
docker load -i 镜像备份.tar(4)资源瓶颈处理
- 通过 Grafana 监控面板识别瓶颈(CPU / 内存 / 磁盘)
- 临时处理:重启相关服务
docker-compose restart 服务名- 长期处理:扩容宿主机资源或优化应用配置
八、安全加固建议
- 镜像安全:
- 仅从信任的仓库拉取镜像,避免使用未知镜像
- 镜像构建完成后扫描漏洞(使用 Trivy 工具:
trivy image 镜像名:版本)- 容器安全:
- 禁止容器使用 root 用户运行,创建专用运行用户
- 限制容器资源配额(在 docker-compose 中配置
deploy.resources)- 禁用容器特权模式(避免
--privileged=true)- 仓库安全:
- Harbor 启用 HTTPS(生产环境必须配置)
- 定期更换 Harbor 管理员密码,分配最小权限
- 数据安全:
- 定期备份数据卷和镜像,备份文件异地存储
- 敏感配置(如密码)通过环境变量或配置文件挂载,避免硬编码
九、项目验收标准(参考)
- 功能验收:
- Harbor 私有仓库可正常上传 / 下载镜像
- 所有应用(Nginx/Tomcat/JumpServer)可通过 Docker Compose 一键部署
- 监控系统可实时展示容器和宿主机指标,告警功能正常
- 性能验收:
- 镜像构建时间≤8 分钟(相比优化前 30 分钟缩短 73%)
- 镜像体积较优化前缩减 40% 以上
- 应用部署效率提升 80%(相比传统部署方式)
- 运维验收:
- 容器异常响应时间≤5 分钟
- 故障自动恢复(容器重启后数据不丢失)
- 运维人力成本降低 50%(相比传统运维方式)
更多推荐
所有评论(0)