dockerfile维护的最佳做法是什么?

时间:2018-03-17 10:27:22

标签: docker dockerfile

我有Dockerfile之类的内容如下:

FROM openjdk:8u151

# others here

我对基本图像有2个问题:

1。如何获得标签?

通常情况下,我从dockerhub获取它,让我们说openjdk:8u151,我可以从dockerhub's openjdk repository获取它。

如果我可以从任何本地docker命令获取所有标签,那么我不需要访问web来获取标签,效率真的有点低吗?

2。基本图像会安全吗?

我的意思是如果我的基本图像总是存在吗?

看看上面的openjdk回购,这是一个官方回购。

我发现只有8u151供我选择。但我认为在此过程中应该有很多jdk8版本,因此还应该有很多jdk8图像,例如8u1018u163等。

那么我猜维护者会删除openjdk的一些旧图像吗? 如果发生这种情况,我的Dockerfile如何工作?如果我的上游删除那里的图像,我应该总是改变我的基本图像?我真的很难保持这样的事情。

即使openjdk真的只生成jdk8的一个版本。我的谜题仍无法避免,因为dockerhub真的为用户提供了delete按钮。

最佳做法是什么,请建议,谢谢。

1 个答案:

答案 0 :(得分:3)

  

如何获取标签?

请参阅“How to list all tags for a Docker image on a remote registry?” API足够

例如,访问:

https://registry.hub.docker.com/v2/repositories/library/java/tags/?page_size=100&page=2

  

基本图像会安全吗?

只要您将自己构建的图像保存在注册表中(通过公共图像或自托管图像),是的:您将能够至少根据您已完成的图像构建新图像。 /> 或者,即使基本图像消失,您仍然可以在自己的图像中使用其图层,并且可以重新标记它(如果构建缓存可用)。
例如,请参阅“Is there a way to tag a previous layer in a docker image or revert a commit?” 请参阅“can I run an intermediate layer of docker image?”中的警告。