安装OpenSlides时拉取python:3.7-slim-bullseye镜像失败,如何解决?
解决Docker拉取python:3.7-slim-bullseye镜像超时失败问题
问题现象
安装OpenSlides时,镜像构建阶段出现以下错误:
Building openslides/openslides-server:latest... [+] Building 6.8s (3/3) FINISHED docker:default => [internal] load build definition from Dockerfile 0.4s => => transferring dockerfile: 1.98kB 0.1s => [internal] load .dockerignore 0.5s => => transferring context: 142B 0.0s => ERROR [internal] load metadata for docker.io/library/python:3.7-slim-bullseye 5.6s ------ > [internal] load metadata for docker.io/library/python:3.7-slim-bullseye: ------ Dockerfile:1 -------------------- 1 | >>> FROM python:3.7-slim-bullseye AS base 2 | 3 | ENV DEBIAN_FRONTEND noninteractive -------------------- ERROR: failed to solve: python:3.7-slim-bullseye: failed to do request: Head "https://registry-1.docker.io/v2/library/python/manifests/3.7-slim-bullseye": EOF
手动执行docker pull python:3.7-slim-bullseye时,同样超时失败:
Error response from daemon: Head "https://registry-1.docker.io/v2/library/python/manifests/3.7-slim-bullseye": Get "https://auth.docker.io/token?scope=repository%3Alibrary%2Fpython%3Apull&service=registry.docker.io": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
解决方案
1. 排查网络连通性
- 测试Docker Hub的网络可达性:
如果出现丢包、连接超时或无法获取响应,说明当前网络无法正常访问Docker Hub。可尝试切换网络(如手机热点),或检查本地防火墙、代理是否限制了Docker的网络请求。ping registry-1.docker.io curl -I https://registry-1.docker.io/v2/
2. 配置Docker镜像加速器
国内访问Docker Hub普遍存在速度慢或超时问题,配置国内镜像源可有效解决:
- Linux系统:
- 编辑Docker配置文件:
sudo vi /etc/docker/daemon.json - 添加镜像加速器配置(示例使用网易云镜像):
{ "registry-mirrors": ["https://hub-mirror.c.163.com"] } - 重启Docker服务:
sudo systemctl daemon-reload sudo systemctl restart docker
- 编辑Docker配置文件:
- Windows/macOS(Docker Desktop):
- 打开Docker Desktop设置,进入
Docker Engine选项卡。 - 在配置文件中添加上述
registry-mirrors内容,点击Apply & Restart保存并重启。
- 打开Docker Desktop设置,进入
3. 确认镜像标签有效性
Python 3.7已停止维护,部分旧版本的镜像标签可能已被移除。可改用同版本的其他稳定标签,例如python:3.7-slim-buster:
- 找到OpenSlides项目中的Dockerfile,将第一行的
FROM python:3.7-slim-bullseye AS base修改为FROM python:3.7-slim-buster AS base,然后重新执行构建命令。
4. 手动导入镜像
如果上述方法仍无法拉取镜像,可尝试从国内镜像站下载镜像文件(如.tar格式),然后通过以下命令导入本地Docker:
docker load -i python_3.7-slim-bullseye.tar
导入完成后,重新执行OpenSlides的构建命令即可。
内容的提问来源于stack exchange,提问作者Conrad Reichel
相关产品推荐
相关产品推荐

