我有一个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
上使用。
答案 0 :(得分:0)
图像只是一叠图层。当您在dockerfile中包含FROM
时,构建过程将通过在FROM
映像的层之上添加一个层来启动新映像。
一旦推送图像,它将推送该图像的所有层,包括基础图像中的层。
拉动图像时,它将下载本地不存在的所有图层以及说明如何堆叠它们的清单。