2014-08-28 138 views
12

官方仓库更新时如何更新Docker镜像?如何更新Docker镜像

当我更改DockerFile或者Dockerfile包含时间敏感信息时,如何更新自定义图像?

建立新图像还是重建现有图像是更好的做法吗?

什么是重建现有图像的最佳方式?

区分同一图像的多个版本的最佳方法是什么?

回答

10

官方信息库更新时如何更新Docker镜像?

如果您使用Docker Hub创建自动构建,那么您可以添加一个Repository Link,这将在链接回购更新时重建您的回购。

如果您想自己做构建,可以创建一个hacky解决方法,通过上面的链接获取通知并重建一个简单的repo,然后使用Web Hook来通知构建系统该更改。

当我更改DockerFile或者Dockerfile包含时间敏感信息时,如何更新自定义图像?

如果您使用Docker Hub进行自动构建,那么对BitBucket或GitHub源代码库的更改(包括Dockerfile更改)将触发新构建。

如果您是building images yourself,只需在您的Dockerfile所在的目录中键入docker build .即可。您可以使用--no-cache强制进行全新的重建

建立新图像还是重建现有图像是更好的做法吗?

这取决于谁在使用您的图像。当你build,结果总是一个新的形象,但你如何tag结果可以使它看起来像旧图像或新的东西的替代品。

区分同一图像的多个版本的最佳方法是什么?

使用:tag功能的名称,如

ubuntu:latest 
ubuntu:12.04 
ubuntu:14.04 
... 

看到https://registry.hub.docker.com/_/ubuntu/为所有的“Ubuntu的”图像上的变化的完整列表。请参阅tag文档以获取友好图像名称的完整格式。所有标签和名称都是规范映像名称的别名,当您运行docker images --no-trunc时,看起来很长的UUID字符串。

+0

非常感谢Andy,我写了这个问题试图想象一个关于码头图像维护的教程。你的回复非常好,超出了我最初的期望。我认为这属于官方的码头文件,因为我猜这对码头工新手来说是一个很常见的问题。 – Mascarpone 2014-08-28 21:31:47