如果我已经有一个 x.x 图片的旧推送,我如何获得带有 x.x 标签的图片的最后一次推送?

How do I get the last push of an image with the x.x tag if I already have an old push of an x.x image?

2019年做了一个Python3.6的pull镜像。在那之后,我确定图像是自更新的(我没有主动使用它,我只是希望最新的推送本身是从存储库中拉取的或类似的东西),但是当我无意中注意到 download/creation日期是2019年。

Q: 图片拉取是如何工作的?是否有标志以便每次构建图像​​时检查层 hash/its 相关性*?也许有一种方法可以通过 docker 守护程序配置文件来设置此检查?还是我每次都必须删除基本图像才能获得新图像?

我想要的:这样每次我构建我的图像时,都会检查基础图像以获取 docker 中心中的最后一次推送(图像发布)存储库。

注意:我说的是带有相同标签的图像。另外,我不怕重建我的图像,没有保存它们的目的。

谢谢。

您需要明确 docker pull 图片才能获得更新。对于您的自定义图像,有 docker build --pulldocker-compose build --pull 选项可以拉取基本图像(尽管 docker-compose up --build 没有“拉取”选项)。

否则,Docker 将永远不会检查已有图像的更新。如果您的 Docker 文件以 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 版本。