我有一个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
映像中的层顶部添加层来启动新映像。
推送映像后,它会从基本映像推送此映像的所有图层(包括图层(。
当您拉取映像时,它将下载本地不存在的所有图层以及解释如何堆叠它们的清单。