能否在docker-compose.yml中配置容器重启前自动拉取镜像?
Docker Compose 是否原生支持镜像过时重启前自动拉取?
Docker Compose原生不支持你描述的这种“容器因镜像过时崩溃、重启前自动拉取最新镜像”的功能。
具体说明:
restart: always重启策略仅负责在容器退出后尝试重启,它不会检测镜像是否有新版本,也不会触发镜像拉取操作。- Compose 提供的
docker-compose up --pull always命令可以在启动容器前强制拉取最新镜像,但这是手动触发的操作,无法在容器崩溃重启的自动流程中自动执行。 - 如果是使用 Docker Swarm(而非独立运行的 Compose),Swarm 服务支持自动更新策略(比如基于镜像标签更新、滚动更新),但这属于 Swarm 集群的能力,并非 Compose 原生功能。
替代方案补充:
- 可以使用第三方工具(比如 Watchtower),它能自动监控容器关联的镜像,检测到更新后自动拉取并重启容器。
- 也可以通过系统服务(比如 systemd)定期执行
docker-compose pull && docker-compose up -d,实现定时更新的效果。
内容的提问来源于stack exchange,提问作者Pavel Niedoba
相关产品推荐
相关产品推荐

