docker自从对国内限制以后,每次的镜像问题就要调试很久,这次从新在windows中使用wsl装了一个服务器环境
常见的就是配置加速镜像
镜像思路
其中我的镜像源配置
{
"max-concurrent-downloads": 10,
"max-concurrent-uploads": 5,
"default-shm-size": "1G",
"debug": true,
"experimental": false,
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://x9r52uz5.mirror.aliyuncs.com",
"https://dockerhub.icu",
"https://docker.chenby.cn",
"https://docker.1panel.live",
"https://docker.awsl9527.cn",
"https://docker.anyhub.us.kg",
"https://dhub.kubesre.xyz"
]
}
然后我百度一个一个内容尝试了半天,最后发现日志中有一个代理 问题https://index.docker.io/v1/searchq=关键字,网页可以点开,说明get请求可以打到
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),这个请求也可以点开
解决思路2 代理问题
遇到 “Error response from daemon: Get ‘https://index.docker.io/v1/search?q=mysql&n=25’: dial tcp 154.92.16.97:443: i/o timeout” 这样的错误通常意味着 Docker 守护进程在尝试连接到 Docker Hub 时遇到了网络问题。这可能是由于网络配置、防火墙设置、代理服务器配置或Docker守护进程本身的配置问题导致的
一般使用科学上网工具或者其梯子大部分都是走代理
1. 创建或编辑配置文件
首先,确保目录 /etc/systemd/system/docker.service.d/
存在。如果不存在,您需要创建它:
sudo mkdir -p /etc/systemd/system/docker.service.d
然后,使用带有 sudo
的文本编辑器打开或创建 http-proxy.conf
文件。例如,使用 nano
编辑器:
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
或者如果您偏好使用 vim
:
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
2. 添加您的代理设置
代理服务设置查看
在打开的文件中输入您的代理设置:
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890/"
Environment="HTTPS_PROXY=http://127.0.0.1:7890/" ; 注意这里应为您的代理服务器支持 HTTPS 的地址,如果是 HTTP 则保持不变
Environment="NO_PROXY=192.168.*,172.31.*,172.30.*,172.29.*,172.28.*,172.27.*,172.26.*,172.25.*,172.24.*,172.23.*,172.22.*,172.21.*,172.20.*,172.19.*,172.18.*,172.17.*,172.16.*,10.*,127.*,localhost"
请根据您的实际情况调整这些值。特别是 HTTPS_PROXY
设置,如果您的代理服务器支持 HTTPS,则需要相应地更新协议部分。
3. 重新加载 systemd 并重启 Docker
保存并关闭文件后,运行以下命令重新加载 systemd 配置,并重启 Docker 服务以应用更改:
sudo systemctl daemon-reload
sudo systemctl restart docker
重新拉取和下载