执行docker build .时加载python:3.11元数据失败求助
解决Docker拉取python:3.11镜像时的403 Forbidden错误
问题重现
执行docker build .时触发以下错误:
(venv) PS D:\DESK\desktop\django code\Django_Docker_with_PostgreSql> docker build . [+] Building 1.0s (3/3) FINISHED docker:default => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 215B 0.0s => ERROR [internal] load metadata for docker.io/library/python:3.11 0.9s => [auth] library/python:pull token for registry-1.docker.io 0.0s ------ > [internal] load metadata for docker.io/library/python:3.11: ------ Dockerfile:1 -------------------- 1 | >>> FROM python:3.11 2 | 3 | ENV PYTHONDONTWRITEBYTECODE 1 -------------------- ERROR: failed to solve: python:3.11: failed to authorize: failed to fetch oauth token: unexpected status from POST request to https://auth.docker.io/token: 403 Forbidden
已尝试重启Docker、电脑,登出并重新登录Docker,问题仍未解决。
解决方案
手动拉取镜像测试:直接执行
docker pull python:3.11,如果仍报错,改用带固定哈希值的镜像标签(可在Docker Hub的python镜像页面找到3.11版本对应的哈希),比如:docker pull python@sha256:具体哈希值拉取成功后再执行
docker build .配置国内镜像源:打开Docker设置的
Docker Engine选项,在配置文件中添加国内镜像源:{ "registry-mirrors": [ "https://hub-mirror.c.163.com", "https://mirror.baidubce.com", "https://docker.mirrors.ustc.edu.cn" ] }应用配置并重启Docker后重新构建。
清理认证缓存:删除Windows系统下
C:\Users\<你的用户名>\.docker\config.json文件(建议先备份),然后执行docker login重新登录Docker Hub。检查代理设置:关闭系统代理,或在Docker设置中配置可正常访问
https://auth.docker.io的代理,重启Docker后再次尝试构建。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

