You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

启用Containerd Beta后,含WORKDIR的Docker镜像本地无法找到

Docker Desktop for Mac(启用Containerd Beta)含WORKDIR的镜像构建后无法运行,提示找不到本地镜像

环境信息

  • macOS 12.4
  • Docker Desktop for Mac 20.10.22
  • 已启用Containerd Beta(Use containerd for pulling and storing images)选项

问题现象

编写包含WORKDIR指令的极简Dockerfile,执行构建命令后:

  • 构建流程成功完成
  • docker image ls可正常列出minimal:test镜像,也能通过docker rmi正常删除
  • 执行docker run命令时,系统提示找不到本地镜像,错误尝试拉取远程仓库的对应镜像

注释掉Dockerfile中的WORKDIR指令后,镜像可正常运行。经排查,问题根源为启用了Containerd Beta选项。

复现命令

构建命令

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'.

解决方案

临时修复:禁用Containerd Beta选项

  1. 打开Docker Desktop偏好设置
  2. 切换到Features in development标签页
  3. 取消勾选Use containerd for pulling and storing images
  4. 重启Docker Desktop后,重新构建并运行镜像即可正常工作

兼容Containerd的替代方案

如果需要保留Containerd Beta功能,可尝试以下两种方式:

  1. 升级Docker Desktop版本:后续版本(如20.10.23及以上)修复了部分Containerd与BuildKit、WORKDIR指令的兼容性问题,升级后可解决该问题。
  2. 显式指定本地命名空间:构建镜像时将标签改为localhost/minimal:test,明确指定镜像存储在本地命名空间,避免Docker尝试从远程仓库拉取:
    # 构建命令
    export DOCKER_BUILDKIT=1
    docker build --platform linux/amd64 -t localhost/minimal:test -f Dockerfile .
    # 运行命令
    export DOCKER_BUILDKIT=1
    docker run --rm --platform linux/amd64 -it localhost/minimal:test
    

内容的提问来源于stack exchange,提问作者shadowtalker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 14:02:39