如何解决如果我已经有一个 x.x 图像的旧推送,我如何获得带有 x.x 标签的图像的最后一次推送?
2019 年,我制作了 Python 3.6 的 pull 镜像。在那之后,我确定图像是自我更新的(我没有主动使用它,我只是希望自己从存储库中拉出最新的推送或类似的东西),但是当我不小心注意到下载时我很惊讶/创建日期为 2019 年。
问:图片拉取是如何工作的?是否有标志以便在每次构建图像时检查层哈希/其相关性*?也许有一种方法可以通过 docker daemon 配置文件设置此检查?还是我每次都必须删除基础图像才能获得新图像?
我想要的:这样每次我构建我的镜像时,都会在 docker hub 存储库中检查基础镜像是否有最后一次推送(镜像发布)。
注意:我指的是具有相同标签的图像。另外,我不怕重新构建我的图像,没有任何目的可以保留它们。
谢谢。
解决方法
您需要明确 docker pull
图像以获取更新。对于您的自定义映像,有 docker build --pull
和 docker-compose build --pull
选项可以拉取基本映像(尽管 docker-compose up --build
没有“拉取”选项)。
没有这个,Docker 将永远不会检查它已经拥有的图像的更新。如果您的 Dockerfile 以 FROM python:3.6
开头,并且您已经拥有具有该名称和标签的本地映像,则 Docker 只需使用它而无需联系 Docker Hub。如果您没有它,那么 Docker 会拉取一次,然后您将在本地拥有它。
需要注意的另一件事是更新最终会停止。如果您查看 Docker Hub python
image page,您会注意到 Python 3.5 不再有重建。如果您固定到一个非常特定的补丁版本,自动构建通常只会为每个支持的次要版本构建最新的补丁版本;如果您的映像是 FROM python:3.6.11
,它将永远不会得到更新,因为 3.6.12 是最新的 3.6.x 版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。