首页 > 解决方案 > 更新 docker 服务镜像或 dockerfile 基础镜像有哪些好的策略

问题描述

一些 docker 镜像在更新时会重新标记相同的标签。

人们正在采用什么样的策略或方法来确保他们提取更新的基础镜像来提供他们的 DockerfileFROM语句或依赖于升级镜像的服务(但标签相同)

我知道 kubernetes 有pull_policy语句,但是对于 docker、swarm 或 docker-compose,什么是等效的软选项。

例如,我们使用tiangolo/uwsgi-nginx-flask:python3.6作为 Flask 应用程序的基础。这个镜像会不时升级,因此基础操作系统、python、nginx、flask 和其他依赖项都会收到更新,但我们总是使用相同的镜像标签。

docker-compose没有 内置方法来处理构建期间刷新基础镜像,因此我们只需在预构建脚本中执行以下操作以强制拉取新镜像:

find codebase -name "Dockerfile" | while read line; do cat $line | awk '/FROM/ {print $2}' | xargs docker pull

这没关系,但我们没有真正的方法来管理这个更新过程。

有没有更好的办法?

标签: dockerdocker-composedockerhub

解决方案


Docker compose 将使用本地镜像缓存中的当前镜像作为基础镜像,除非构建是使用docker-compose build --pull.

如果您有一天决定将构建和运行生命周期分开,docker build --pull提供相同的行为。


推荐阅读