使用WORKDIR构建的Docker使Docker无法在启用Containerd beta的情况下在本地找到镜像

juzqafwq  于 2023-05-16  发布在  Docker
关注(0)|答案(1)|浏览(127)

./Dockerfile中的最小Dockerfile:

# syntax=docker/dockerfile:1
FROM rockylinux:9

WORKDIR /opt/deploy

构建工作正常:

export DOCKER_BUILDKIT=1
docker build --platform linux/amd64 -t minimal:test -f Dockerfile .

运行不会:

export DOCKER_BUILDKIT=1
docker run --rm --platform linux/amd64 -it minimal:test

错误:

Unable to find image 'minimal:test' locally
docker: Error response from daemon: failed to resolve reference "docker.io/library/minimal:test": pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed.
See 'docker run --help'.

同时,我可以在docker image ls的输出中清楚地看到minimal:test,并且我可以成功地运行docker image rm minimal:test
更奇怪的是,如果我注解掉WORKDIR行,它工作得很好!
我做错了什么?
我在MacOS 12.4上使用Docker Desktop for Mac:

$ docker --version
Docker version 20.10.22, build 267d2e5

编辑:我在Docker Desktop中启用了containerd beta选项,结果发现这是问题所在。添加此选项是为了便于将来搜索此问题。

lnvxswe2

lnvxswe21#

根据经验,这是Docker Desktop中实验性的“Containerd”选项中的一个错误,可能与延迟加载图像有关。禁用该选项并重新启动Docker守护进程解决了这个问题。

相关问题