我有Dockerfile如下内容:
Dockerfile
FROM openjdk:8u151 # others here
我对基本图片有2个问题:
通常,我是从dockerhub获得的,也就是说openjdk:8u151,我可以从dockerhub的openjdk存储库中获得。
openjdk:8u151
如果我可以从任何本地docker命令获取所有标签,那么我不需要访问Web来获取标签,效率真的有点低吗?
我的意思是说我的基本形象是否一直存在?
查看上面的openjdk回购,这是一个官方回购。
我发现只有8u151剩下的可供我选择。但我认为应该有大量的jdk8释放过程中,所以应该也有很多的jdk8图像有,像8u101,8u163等等。
8u151
jdk8
8u101
8u163
因此,我可以猜测维护者将为此删除一些旧图像openjdk吗?那如果发生这种情况,我该如何Dockerfile工作?如果我的上游删除那里的形象,我应该总是改变我的基本形象?对我来说维持这种事情真是太糟糕了。
openjdk
即使openjdk真的只是生成一个发行版jdk8。我的难题仍然无法避免,因为dockerhub确实delete为用户提供了按钮。
dockerhub
delete
最佳做法是什么,请提出建议,谢谢。
如何获得标签?
请参阅“ 如何在远程注册表上列出Docker映像的所有标签?”。 API就足够了
例如,访问:
https://registry.hub.docker.com/v2/repositories/library/java/tags/?page_size=100&page=2
基本图像安全吗?
是的,只要您将自己构建的映像保存在注册表中(即通用的或自托管的),就可以:您将至少能够基于已完成的映像来构建新映像。 或者,即使基本映像消失了,您仍然可以在自己的映像中保留其图层,并且可以对其进行重新标记(前提是可用的构建缓存)。