docker配置国内源

py 复制代码
(repoexe) tzg@root:~/project/efficiency-code/RepoExec/execution-code-eval$ docker build -t codeeval-runner -f Dockerfile --platform linux/amd64 .
[+] Building 30.2s (2/2) FINISHED                                                                                                      docker:default
 => [internal] load build definition from Dockerfile                                                                                             0.0s
 => => transferring dockerfile: 3.19kB                                                                                                           0.0s
 => WARN: MaintainerDeprecated: Maintainer instruction is deprecated in favor of using label (line 15)                                           0.0s
 => ERROR [internal] load metadata for docker.io/library/python:3.10.2-slim-bullseye                                                            30.2s
------
 > [internal] load metadata for docker.io/library/python:3.10.2-slim-bullseye:
------

 1 warning found (use docker --debug to expand):
 - MaintainerDeprecated: Maintainer instruction is deprecated in favor of using label (line 15)
Dockerfile:37
--------------------
  35 |     
  36 |     # Execution stage for Pynguin
  37 | >>> FROM python:3.10.2-slim-bullseye AS execute
  38 |     
  39 |     # Set environment variables
--------------------
ERROR: failed to solve: python:3.10.2-slim-bullseye: failed to resolve source metadata for docker.io/library/python:3.10.2-slim-bullseye: failed to do request: Head "https://mirror.ccs.tencentyun.com/v2/library/python/manifests/3.10.2-slim-bullseye?ns=docker.io": dial tcp: lookup mirror.ccs.tencentyun.com on 127.0.0.53:53: no such host

错误诊断

  • 报错信息: lookup mirror.ccs.tencentyun.com ... no such host
  • 含义: 你现在的配置文件里填的是腾讯云的镜像源,但这个地址通常只能在腾讯云的服务器(内网)里访问,外网访问不通,或者已经失效了。

现在的状况是:你一直在尝试各种国内镜像源,但它们最近非常不稳定,导致你一直卡在"找不到网站"这一步。


解决方法 A:使用目前存活率最高的镜像源配置

请再次修改 /etc/docker/daemon.json,把里面的内容全部替换为下面这组目前公认比较坚挺的第三方代理源。

  1. 编辑文件:
bash 复制代码
sudo vim /etc/docker/daemon.json
  1. 清空原内容,填入以下内容:
json 复制代码
{
  "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://huecker.io",
    "https://dockerhub.timeweb.cloud",
    "https://noohub.ru"
  ]
}
  1. 保存退出 (:wq)。
  2. 重启服务(关键):
bash 复制代码
sudo systemctl restart docker
  1. 再次尝试构建:
bash 复制代码
docker build -t codeeval-runner -f Dockerfile --platform linux/amd64 .

解决方法 B:手动导入(一劳永逸,不再受网络气)

如果你试了上面的配置还是报错(比如报 i/o timeout 或者又是 no such host),说明你那里的网络环境把这些代理也都封了。

请不要再纠结配置文件了,直接用你的本地电脑(笔记本)帮服务器下载!

这是绝对能成功的路径:

  1. 在你的笔记本上(或者任何能科学上网的电脑上):
bash 复制代码
# 1. 下载基础镜像
docker pull --platform linux/amd64 python:3.10.2-slim-bullseye

# 2. 把镜像存成一个文件
docker save -o python_base.tar python:3.10.2-slim-bullseye

# 3. 把文件传到服务器 (替换 IP)
scp python_base.tar tzg@zkyd:~/project/efficiency-code/RepoExec/execution-code-eval/
  1. 回到服务器(zkyd)上:
bash 复制代码
# 4. 加载这个文件
docker load -i python_base.tar

# 5. 再次构建 (这时候 Docker 会直接发现镜像已存在,不再联网下载)
docker build -t codeeval-runner -f Dockerfile --platform linux/amd64 .

建议: 先试一下 方法 A ,如果 1 分钟内还不行,果断转 方法 B

相关推荐
~黄夫人~4 小时前
Linux 权限管理:用户组 + 特殊权限 + ACL 解析
linux·运维·计算机·学习笔记·权限管理
2501_907136824 小时前
手搓仓库管理系统Senbar-1.0.4(附带财务管理板块)
运维·服务器·软件需求
盟接之桥6 小时前
盟接之桥EDI软件:API数据采集模块深度解析,打造企业数据协同新引擎
java·运维·服务器·网络·数据库·人工智能·制造
时空潮汐6 小时前
神卓N600 NAS身份核验功能深度解析
linux·运维·网络·神卓nas·神卓n600 pro·家庭轻nas
小李独爱秋6 小时前
模拟面试:用自己的话解释一下lvs的工作原理
linux·运维·面试·职场和发展·操作系统·lvs
百锦再6 小时前
Jenkins 全面精通指南:从入门到脚本大师
运维·后端·python·servlet·django·flask·jenkins
隔壁老王的代码6 小时前
Jenkins的流水线详解
运维·servlet·jenkins
珹洺7 小时前
Java-servlet(五)手把手教你利用Servlet配置HTML请求与相应
java·运维·服务器·前端·servlet·html·maven
一路往蓝-Anbo7 小时前
第 8 章:M33 领航——引导 A35 加载 U-Boot 与 Linux 内核
linux·运维·服务器·stm32·单片机·嵌入式硬件·网络协议
何中应7 小时前
从零搭建JumpServer
运维·堡垒机·jumpserver