我有一个Dockerfile:
FROM baseimage
RUN <do stuff>
我在本地有一个baseimage
,但它在Docker Hub上不可用。我使用上面的Dockerfile构建myimage
并将myimage
推送到Docker Hub。
我的问题是:myimage
包括baseimage
吗?
另外,让我们说其他用户拉myimage
。他本地没有baseimage
。他能成功地拉动myimage
跑吗?
我遇到的实际问题是拉myimage
对其他用户失败:
get https://registry-1.docker.io/v2/<BASEIMAGE>: unauthorized: incorrect username or password
尽管事先明确地运行,但这仍然存在
docker login -u <USER> https://registry-1.docker.io/
Password:
Login Succeeded
docker login https://registry-1.docker.io/v2/<ORG>/<BASEIMAGE>/manifests/<BASEIMAGE>
Authenticating with existing credentials...
Login Succeeded
我想私人图像所有图层,包括baseimage
都可以在myimage
上找到。
图像只是一堆图层。当您在dockerfile中有FROM
时,构建过程将通过在FROM
图像的图层顶部添加图层来启动新图像。
推送图像后,它会将此图像的所有图层都包含在基本图像中。
当您拉动图像时,它将下载本地不存在的所有图层以及解释如何堆叠它们的清单。