写在前面

在windows wsl2的docker下可能会出现拉取失败的问题,以下是如何配置windows wsl2下的docker代理,主机使用的代理是clash

背景

在部署DVWA环境时,第一次使用wsl2下的docker,不知道该如何设置代理环境

核心内容

一、首先要确认docker中访问主机的IP地址

1
sudo nano /etc/resolv.conf

找到如下内容:

1
nameserver 172.25.16.1

二、修改Docker配置文件

1
sudo nano /etc/docker/daemon.json

将内容修改为(IP替换为自己的主机IP和代理端口):

1
2
3
4
5
6
7
{
"proxies": {
"https-proxy": "socks5://172.25.16.1:7890",
"no-proxy": "127.0.0.1,localhost,ghcr.io"
}
}

三、下载

修改完成后重启docker即可正常拉取

1
sudo systemctl restart docker

踩坑记录

ChatGPT一开始给出的是让改系统的网络配置文件,但那个只能改http代理,修改后会出现EOF错误,不能使用:

1
2
3
4
5
6
7
8
9
10
11
12
#先是创建文件
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf
#修改内容为
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
#重启相关服务
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl restart docker

小结

docker的代理直接修改/etc/docker/daemon.json文件,添加对应的代理规则即可