命令是干什么的
docker compose pull 按编排文件里声明的镜像批量拉取,docker compose push 则把本地标签批量推送到远端仓库。部署前先 pull 能确保拿到远端最新镜像,本地构建完成后 push 可以把产物推回仓库。两者都支持指定服务名做局部操作,避免无关镜像来回传输。
基本信息
| 用途 | 按 compose 文件批量流转镜像 |
|---|---|
| 语法 | docker compose pull / push [服务…] |
| pull 常用参数 | --ignore-pull-failures、--policy missing |
| 配套动作 | 拉取后需要 up -d 才会用新镜像重建容器 |
| push 前提 | 本地已存在完整的目标标签 |
典型使用场景
- 部署前统一拉取全部服务镜像
- 只更新个别服务:指定服务名做局部拉取
- 本地构建完成后批量推送多服务镜像
- 离线环境预先 pull,再分发到内网
- 回滚前拉取指定版本标签
批量拉取与推送
批量拉取与推送
docker compose pull # 拉取全部服务镜像
docker compose pull --policy missing web # 仅在本地缺失时拉取
docker compose pull --ignore-pull-failures # 个别镜像失败不中断其余
docker compose push api worker # 只推送指定服务的镜像
docker compose up -d # 拉取后重建容器,新镜像才生效命令与参数
| 命令 / 参数 | 作用 | 注意 |
|---|---|---|
| compose pull | 批量拉取镜像 | 按文件中声明的标签拉取 |
| --policy missing | 仅在本地缺失时拉取 | 减少重复传输 |
| --ignore-pull-failures | 忽略个别失败项 | 失败项需要单独复核 |
| compose push 服务… | 批量推送本地镜像 | 标签必须包含完整仓库地址 |
pull 之后还需要 up -d 才会用新镜像重建容器;只拉取不重建,运行中的容器仍在跑旧镜像。
push 依赖本地已经存在对应标签,标签命名不完整时会被推到错误的仓库路径,推送前先用 docker image ls 核对。
常见配合方式
- 部署脚本:先拉取再重建容器,两步都要判断退出码
- 内网隔离环境:在可联网的机器上拉取,再用私有仓库转发
- 多服务仓库:构建与推送只针对变更的服务名,减少传输量
- 发布核对:推送后用镜像检查命令比对远端标签与摘要
把拉取与重建放在同一条流水线步骤里,可以避免「只拉了镜像却忘了重建容器」这类常见的漏步骤问题。