docker - 更新 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
这没关系,但我们没有真正的方法来管理这个更新过程。
有没有更好的办法?
解决方案
Docker compose 将使用本地镜像缓存中的当前镜像作为基础镜像,除非构建是使用docker-compose build --pull
.
如果您有一天决定将构建和运行生命周期分开,docker build --pull
提供相同的行为。
推荐阅读
- javascript - 在图像上添加产品列表
- ios - Alamofire 不发出 GET 请求,而是使用 Success 调用完成处理程序
- mocking - 如何在没有嵌入式服务器或新集群的情况下模拟 couchbase 以进行验收测试?
- angular-material - 单个模板中的材料角多表数据源 + 材料角多表“找不到具有 id 的列”
- go - Go 变量初始化语法
- java - 如何将多个 Spring Boot 应用程序合并为一个?
- java - 如何验证非必需的 RequestParam 不为空?
- javascript - 输入中的格式化数字反应
- sql - 选择中的条件语句
- reactjs - 使用 AsyncStorage 在 React Native 中执行 CRUD 操作