我的情况是我有两张具有相同标签的图像(哈希不同),一个在本地,另一个在注册表。当我构建dockerfile时,docker总是比较两个映像的哈希值,发现它们不相等,然后将注册表取一。
我知道k8s中有一个imagePullPolicy
。我的问题是docker是否有类似imagePullPolicy
的设置?
非常感谢。
答案 0 :(得分:1)
Docker工具大体上假设您将要手动拉取图像,或者提供一个--pull
选项将其与其他命令集成。例如:
docker build
具有--pull
选项,以尝试检索FROM
图像的较新版本docker run
不;它会始终重复使用您已有的图像,如果没有,则拉出一幅docker-compose
和docker-compose up
都没有--pull
选项,但是有一个docker-compose pull
命令可以提取docker-compose.yml
文件中列出的所有图像docker-compose build
确实有一个--pull
选项核心Docker总是尝试拉取映像(如果不存在);没有与imagePullPolicy: Never
等价的东西。相反,它从不尝试在显式的“拉”操作之外与映像注册表进行通信。您也无法使docker run
的行为像imagePullPolicy: Always
。
在Kubernetes中,优良作法是在每个构建中使用唯一的标记,因此您可以指定一个显式构建,而不必担心imagePullPolicy
。如果这样做的话,在普通Docker中,隐式的“丢失时将其拉出”也将为您提供正确的行为。