快速结论:该报错通常不是镜像不存在或需要登录,而是 Docker 客户端正在向 ghcr.io 发送过期的凭据,导致匿名拉取被拒绝。优先执行 docker logout ghcr.io 后重新拉取镜像。
适用环境:macOS,Open WebUI main 分支,Docker 安装方式,镜像 ghcr.io/open-webui/open-webui:main。
最快修复方案:在终端执行 docker logout ghcr.io,然后重新运行 docker pull ghcr.io/open-webui/open-webui:main。该方案已在 Issue 中得到验证。
注意事项:docker logout ghcr.io 会清除本地存储的 ghcr.io 凭据,后续如需推送镜像到 ghcr.io 需重新登录。若此方法无效,需检查 ~/.docker/config.json 中是否配置了 credsStore 或 registry-mirror 拦截拉取请求。
问题场景
用户从 Open WebUI 官网复制 Docker 启动示例(Docker tab),在 macOS 终端执行 docker run ghcr.io/open-webui/open-webui:main 时报错。用户最初贴出的是 docker pull ghcr.io/open-webui 命令(缺少镜像名称),随后更正为官网的完整命令,报错依旧。
报错原文
docker pull ghcr.io/open-webui/open-webui:main
Error response from daemon: error from registry: denied
原因分析
可能原因:Docker 客户端在拉取 ghcr.io 镜像时发送了本地存储的过期或已撤销的凭据。ghcr.io 对不存在的仓库返回 denied 而不是 not found,但本项目维护者在无凭据状态下已验证 ghcr.io/open-webui/open-webui:main 可以匿名拉取。因此,若完整命令仍报 denied,说明 Docker 向注册表发送了凭据而非匿名请求——过期的 ghcr.io token 会被拒绝,而没有 token 时反而可以匿名读取。
环境排查
- 确认本地 Docker 版本(macOS 上建议 Docker Desktop 最新版)。
- 检查是否已登录 ghcr.io:
docker info或cat ~/.docker/config.json查看auths字段。 - 确认
~/.docker/config.json中是否设置了credsStore或registry-mirror指向 ghcr.io。 - 确认拉取的是完整镜像引用
ghcr.io/open-webui/open-webui:main,不要遗漏镜像名称。
解决步骤
- 退出 ghcr.io 登录状态:
docker logout ghcr.io。 - 重新拉取镜像:
docker pull ghcr.io/open-webui/open-webui:main。 - 若仍失败,检查
~/.docker/config.json中是否有ghcr.io条目、credsStore或registry-mirror配置干扰拉取,可临时备份该文件后移除相关配置再重试。 - 若问题依旧,请贴出完整报错输出以供进一步排查。
验证方法
执行 docker pull ghcr.io/open-webui/open-webui:main 后能正常拉取镜像,无 denied 报错。随后可继续按官网示例运行 docker run 启动 Open WebUI,容器正常启动即表示问题解决。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


![[SYCL] Misc. bug: test-backend-ops -b SYCL0 assertion: ggml_sycl_op_concat dst: q4_0](https://www.chat-gpts.plus/wp-content/uploads/2026/08/26936-11981dc2-768x403.jpg)