一尘不染

Dockerfile维护的最佳实践?

docker

我有Dockerfile如下内容:

FROM openjdk:8u151

# others here

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

1.如何获取标签?

通常,我是从dockerhub获得的,也就是说openjdk:8u151,我可以从dockerhub的openjdk存储库中获得

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

2.基本图像安全吗?

我的意思是说我的基本形象是否一直存在?

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

我发现只有8u151剩下的可供我选择。但我认为应该有大量的jdk8释放过程中,所以应该也有很多的jdk8图像有,像8u1018u163等等。

因此,我可以猜测维护者将为此删除一些旧图像openjdk吗?那如果发生这种情况,我该如何Dockerfile工作?如果我的上游删除那里的形象,我应该总是改变我的基本形象?对我来说维持这种事情真是太糟糕了。

即使openjdk真的只是生成一个发行版jdk8。我的难题仍然无法避免,因为dockerhub确实delete为用户提供了按钮。

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


阅读 248

收藏
2020-06-17

共1个答案

一尘不染

如何获得标签?

请参阅“ 如何在远程注册表上列出Docker映像的所有标签?”。 API就足够了

例如,访问:

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

基本图像安全吗?

是的,只要您将自己构建的映像保存在注册表中(即通用的或自托管的),就可以:您将至少能够基于已完成的映像来构建新映像。
或者,即使基本映像消失了,您仍然可以在自己的映像中保留其图层,并且可以对其进行重新标记(前提是可用的构建缓存)。

2020-06-17