docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker pull/build失败设置国内镜像源

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

作者:吃肉夹馍不要夹馍

这篇文章主要介绍了docker pull/build失败设置国内镜像源的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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

在写完一个服务构建时候写完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了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文