运行docker-compose up拉取公开GHCR镜像遭权限拒绝问题求助
问题:拉取公开GHCR镜像时提示未授权错误
环境与操作
尝试运行docker-compose up启动服务,环境变量定义在.env文件中,使用的docker-compose.yml配置如下:
version: "3.4" services: ib-gateway: image: ghcr.io/unusualalpha/ib-gateway:latest restart: always environment: TWS_USERID: ${TWS_USERID} TWS_PASSWORD: ${TWS_PASSWORD} TRADING_MODE: ${TRADING_MODE:-live} VNC_SERVER_PASSWORD: ${VNC_SERVER_PASSWORD:-} ports: - "127.0.0.1:4001:4001" - "127.0.0.1:4002:4002" - "127.0.0.1:5900:5900"
相关镜像的代码仓库为UnusualAlpha/ib-gateway-docker。
遇到的错误
执行命令后出现如下错误:
PS C:\Users\rapha\Documents\Github\ib-gateway-docker> docker-compose up Running 0/1 ib-gateway Error 0.5s Error response from daemon: Head "https://ghcr.io/v2/unusualalpha/ib-gateway/manifests/latest": denied: denied
直接访问上述URL返回:
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required"}]}
困惑点
- 另一台机器执行完全相同的操作却能正常运行
- 该仓库是公开的,理论上无需登录即可拉取
可能的原因
- Docker残留的GHCR认证信息:本地Docker客户端之前登录过GHCR,当前认证状态异常(比如token过期),导致拉取公开镜像时也被要求认证。执行
docker logout ghcr.io清除认证后再尝试拉取。 - 网络环境限制:当前机器的代理、防火墙或内网规则拦截了GHCR请求,或者代理配置导致请求被识别为需要认证。可以切换到无代理网络(如手机热点)测试,或检查代理的镜像仓库访问规则。
- 镜像标签/仓库权限临时异常:尽管仓库是公开的,但
latest标签对应的镜像可能被临时设置为私有,或者仓库权限出现短暂波动。可以尝试指定具体版本标签(查看仓库的发布版本)替代latest。 - Docker版本兼容性问题:本地Docker或docker-compose版本过旧,对GHCR的API协议支持不完善。升级到最新稳定版后再测试。
- DNS解析异常:本地DNS缓存错误导致请求被导向错误服务器,触发认证提示。刷新本地DNS缓存,或更换公共DNS服务器(如8.8.8.8)重试。
内容的提问来源于stack exchange,提问作者rcardinaux
相关产品推荐
相关产品推荐

