【教程】docker源镜像和代理

备注

2024/12/12 星期四
dockerhub访问不上每次用每次查很麻烦,自己记录一下

一、概述

我们在使用docker pull的拉取docker hub镜像的时候经常遇到网络错误,最常见的解决方法有两种换国内源镜像和开启代理服务器访问的方式。

二、源镜像

使用镜像一直是一个很好的方式,但是互联网公司和高校的镜像失效现在只能选择一些不太知名的小镜像来用,使用的时候总是很不安心,但是可以作为一种有效的解决方法

sudo vim /etc/docker/daemon.json
# 写入以下内容
{
    "registry-mirrors": [
    	"https://docker.mirrors.ustc.edu.cn",
    	"https://docker.nju.edu.cn",
    	"https://mirror.ccs.tencentyun.com",
    	"http://hub-mirror.c.163.com"
    ]
}

当然现在上面这些镜像都已经不能用了,需要自己找一些不太知名的小镜像站,比如:

"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://hub.uuuadc.top",
"https://docker.anyhub.us.kg",
"https://dockerhub.jobcher.com",
"https://dockerhub.icu",
"https://docker.ckyl.me",
"https://docker.awsl9527.cn"

还有一个方法是注册华为云、阿里云,在控制台中找一个属于自己账号的镜像地址,
华为云:https://[账号独有地址].mirror.swr.myhuaweicloud.com
阿里云:https://[账号独有地址].mirror.aliyuncs.com

三、代理

docker代理要注意是分为两种的dockerd和client
docker pull命令是由dockerd进行的,可以修改daemon.json(如果Linux系统开启了系统代理dockerd也会走系统代理)

sudo vim /etc/docker/daemon.json

#写入以下内容
{
  "proxies": {
    "http-proxy": "http://proxy.example.com:3128",
    "https-proxy": "http://proxy.example.com:3129",
    "no-proxy": "*.test.example.com,.example.org,127.0.0.0/8"
  }
}

# 重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker

docker 如果作为系统服务安装则受systemd管控的。可以直接在/etc/systemd目录下创建docker.service.d目录,再在docker.service.d目录下创建http-proxy.conf文件,写入:

sudo vim /etc/systemd/docker.service.d/http-proxy.conf

#写入以下内容
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:3128"
Environment="HTTPS_PROXY=http://proxy.example.com:3129"
Environment="NO_PROXY=localhost,127.0.0.1,docker-registry.example.com,.corp"

# 重启服务
sudo systemctl daemon-reload
sudo systemctl restart docker

docker cli是运行的容器需要代理,

client一般就是desktop这种图形化软件,用的很少就不赘述了

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐