docker pull/build 失败 设置国内镜像源

参考 : docker 错误 Error response from daemon,request canceled while waiting for connection

在写完一个服务构建时候写完docker 执行build 报错:ERROR: failed to solve: golang:1.21-alpine: failed to resolve source metadata for docker.io/library/golang:1.21-alpine: unexpected status from HEAD request to https://xx4bwyg2.mirror.aliyuncs.com/v2/library/golang/manifests/1.21-alpine?ns=docker.io: 403 Forbidden

在这里插入图片描述

有点搞, 第一行就报错了

看错误应该是网络问题,拉取镜像时候就报错了

为了验证猜想,在命令行随便执行一个pull命令docker pull mysql 拉取一个MySQL镜像试一试

果不其然出错了:

在这里插入图片描述

Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

尝试了一下找到解决方案:

解决方案

1. 添加DNS解析地址:(可选,经尝试这一步不加也行)

sudo vim /etc/resolv.conf

添加:nameserver 114.114.114.114

在这里插入图片描述

2. 设置docker 国内镜像源

sudo vim daemon.json

在 镜像仓库中添加镜像源:(可以不必要这么多,这里只是列出了几个国内镜像源)

   "registry-mirrors": [
    "https://docker.m.daocloud.io",
    "https://dockerproxy.com",
    "https://docker.nju.edu.cn",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "http://mirrors.ustc.edu.cn",
    "https://dockerhub.icu"
  ]

3. 重启docker

sudo systemctl daemon-reload
sudo systemctl restart docker

通过docker info 看到添加的镜像源就说明成功了

在这里插入图片描述

4. 再执行docker pull mysql 发现可以pull了, 这下也能build了

### 配置Docker使用中国境内加速镜像源 为了提高 Docker 在 Windows 上的拉取速度,可以配置 Docker 使用中国大陆的镜像加速器。以下是具体方法: #### 方法一:通过修改daemon.json文件来设置镜像加速地址 找到并编辑 `C:\ProgramData\Docker\config\daemon.json` 文件,在该文件中加入如下内容以指定国内镜像源[^1]。 ```json { "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"] } ``` 如果上述路径不存在,则创建相应目录结构及文件,并写入以上 JSON 片段即可。 #### 方法二:利用命令行工具临时更改 也可以不改变全局配置而是在每次启动容器之前通过环境变量的方式设定镜像仓库的位置。打开 PowerShell 或者 CMD 输入下面指令: ```powershell $env:DOCKER_BUILDKIT=0; docker build --pull --rm -f "Dockerfile" -t myimage . ``` 这里假设读者已经替换了默认的构建套件为经典模式(`buildkit=0`)以便支持更多的选项参数;同时指定了 `-f` 参数指向自定义的 Docker 构建脚本位置以及目标标签名 (`myimage`). 不过这种方式只适用于当前会话期间有效,重启计算机之后就需要重新设置了[^2]. #### 方法三:图形界面操作 对于那些更倾向于GUI方式管理软件应用的人来说,还可以直接进入 Docker Desktop 的 Settings 页面下的 Daemon Tab 来完成同样的工作——只需勾选 Use the WSL 2 based engine 和 Add Mirrors 即可轻松实现对官方索引站点列表之外其他可信来源的支持[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吃肉夹馍不要夹馍

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值