前端发布-docker
服务发布文档 - Docker部署流程
目录
- 需求背景
- 发布流程概览
- 详细操作步骤及命令解析
- 后续维护操作
一、需求背景
本次服务发布通过Docker容器化部署方式,完成前端服务(HVAC Optimization Frontend)的版本更新,主要目标为:
• 部署新版本前端服务(tag_*)
• 确保服务高可用性(--restart=unless-stopped)
• 绑定静态配置文件(global.js)实现动态配置管理
二、发布流程概览
- 拉取镜像 → 2. 保存镜像备份 → 3. 加载镜像到目标环境 → 4. 启动容器服务 → 5. 验证与维护
三、详细操作步骤及命令解析
- 拉取镜像
docker pull <REGISTRY_URL>/<NAMESPACE>/<IMAGE_NAME>:<TAG>
• 作用:从私有镜像仓库拉取指定版本的镜像。
- 保存镜像备份
docker save <REGISTRY_URL>/<NAMESPACE>/<IMAGE_NAME>:<TAG> | gzip > /tmp/<BACKUP_FILE>.tar.gz
• 作用:将镜像打包为压缩文件,用于备份或迁移。
• 参数解析:
• docker save:导出镜像为.tar文件
• gzip:压缩导出的文件以节省空间
• > /tmp/...:输出到指定路径
chown -R <USERNAME>:<GROUP> /tmp/<BACKUP_FILE>.tar.gz
• 作用:修改文件所有者,确保目标环境有权限访问备份文件。
• 参数解析:
• supper-user:supper-user:目标用户和用户组
• /tmp/...:备份文件路径
- 加载镜像到目标环境
docker load -i <BACKUP_FILE>.tar.gz
• 作用:将备份的镜像加载到本地Docker环境。
• 参数解析:
• -i:指定输入文件(.tar.gz压缩包)
- 启动容器服务
docker run -d --restart=unless-stopped -p <HOST_PORT>:<CONTAINER_PORT> --mount type=bind,source=<HOST_CONFIG_PATH>,target=<CONTAINER_CONFIG_PATH> <IMAGE_NAME>:<TAG>
• 作用:以守护进程模式启动容器,并绑定配置文件和端口。
• 参数解析:
• -d:后台运行容器(Detached Mode)
• --restart=unless-stopped:自动重启策略(除非手动停止)
• -p <HOST_PORT>:<CONTAINER_PORT>:端口映射(主机端口:容器端口)
• --mount type=bind,...:绑定宿主机文件到容器路径
◦ `source`:宿主机配置文件路径
◦ `target`:容器内目标路径
- 验证服务状态
docker ps
• 作用:查看当前运行的容器进程,确认服务已启动。
• 输出字段:
• CONTAINER ID:容器唯一标识
• IMAGE:使用的镜像
• STATUS:运行状态(Up表示正常)
四、后续维护操作
- 查看镜像列表
docker images
• 作用:列出本地所有Docker镜像,确认镜像已加载。
- 查看容器日志
docker logs -f <CONTAINER_ID>
• 作用:实时跟踪容器日志(-f表示Follow模式)。
• 典型场景:调试服务启动问题或监控运行状态。
- 进入容器终端
docker exec -it <CONTAINER_ID> /bin/bash
• 作用:进入容器内部执行命令(如修改配置或调试)。
• 参数解析:
• -it:交互式终端(Interactive + TTY)
- 重启服务
docker restart <CONTAINER_ID>
• 作用:重启指定容器(适用于配置更新后生效)。
五、注意事项
- 权限问题:确保
supper-user对备份文件有读写权限。 - 端口冲突:检查
8014端口是否已被占用。 - 配置文件更新:修改
/root/fe/wind/global.js后需重启容器生效。 - 镜像版本:注意镜像标签与文件名的一致性(如
20250428与20250430)。
附录:Docker命令汇总表
以下为本次服务发布过程中用到的所有命令及其详细说明:
| 命令 | 用途 | 参数说明 |
|---|---|---|
docker pull <REGISTRY_URL>/<NAMESPACE>/<IMAGE_NAME>:<TAG> |
从私有仓库拉取镜像 | - <REGISTRY_URL>: 私有仓库地址- <NAMESPACE>: 镜像名称及路径- <TAG>: 镜像版本标签 |
docker save <IMAGE_NAME> | gzip > /tmp/tag_...tar.gz |
导出镜像为压缩文件(备份) | - <IMAGE_NAME>: 完整镜像名称(需与pull命令一致)| gzip: 通过管道压缩文件> /tmp/...: 输出到指定路径 |
chown -R supper-user:supper-user /tmp/tag_...tar.gz |
修改备份文件权限(系统命令) | - -R: 递归修改目录权限- supper-user:supper-user: 目标用户及用户组 |
docker ps |
查看正在运行的容器进程 | - 无参数:默认显示当前运行容器 - 常用组合参数: -a: 显示所有容器(包括已停止的) |
docker load -i <BACKUP_FILE>.tar.gz |
从压缩文件加载镜像到本地环境 | - -i: 指定输入文件路径 |
docker run -d --restart=unless-stopped -p <HOST_PORT>:<CONTAINER_PORT> --mount type=bind,source=<HOST_CONFIG_PATH>,target=<CONTAINER_CONFIG_PATH> <IMAGE_NAME>:<TAG> |
启动容器并绑定端口、配置 | - -d: 后台运行- --restart=unless-stopped: 自动重启策略- -p 8014:8080: 端口映射(主机:容器)- --mount type=bind: 挂载宿主机文件到容器- source: 宿主机文件路径- target: 容器内目标路径<IMAGE_NAME>: 启动的镜像名称及标签 |
docker images |
列出本地所有镜像 | - 常用参数:-q: 仅显示镜像ID |
docker logs -f <CONTAINER_ID> |
实时查看容器日志 | - -f: 持续跟踪日志输出<CONTAINER_ID>: 容器ID或名称 |
docker exec -it <CONTAINER_ID> /bin/bash |
进入容器终端 | - -it: 启用交互式终端/bin/bash: 指定容器内Shell类型 |
docker restart <CONTAINER_ID> |
重启容器 | - <CONTAINER_ID>: 容器ID或名称 |
注意事项
-
变量替换:
通用标识符说明
占位符 实际值示例 <REGISTRY_URL>私有镜像仓库地址(如 harbor.example.com)<NAMESPACE>项目命名空间(如 project-team)<IMAGE_NAME>镜像名称(如 service-frontend)<TAG>镜像版本标签(如 v1.2.0或prod-20240501)<BACKUP_FILE>备份文件名(如 service-frontend-backup)<USERNAME>:<GROUP>系统用户及用户组(如 deploy-user:deploy-admin)<HOST_PORT>宿主机映射端口(如 8080)<CONTAINER_PORT>容器内服务端口(如 80)<HOST_CONFIG_PATH>宿主机配置文件路径(如 /data/configs/app-settings.json)<CONTAINER_CONFIG_PATH>容器内配置文件路径(如 /app/config/settings.json) -
权限问题:
• 若使用非root用户操作,需在命令前添加sudo。 -
路径一致性:
• 确保--mount中source路径在宿主机上真实存在。 -
日志调试:
• 若服务启动失败,优先通过docker logs -f检查报错信息。

浙公网安备 33010602011771号