我的图像中是否包含FROM图像层

时间:2019-03-22 20:12:39

标签: docker dockerhub docker-image docker-build

我有一个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上使用。

1 个答案:

答案 0 :(得分:0)

图像只是一叠图层。当您在dockerfile中包含FROM时,构建过程将通过在FROM映像的层之上添加一个层来启动新映像。

一旦推送图像,它将推送该图像的所有层,包括基础图像中的层。

拉动图像时,它将下载本地不存在的所有图层以及说明如何堆叠它们的清单。