前言
最近遇到 Docker Desktop 构建 node 项目时,由于网络问题导致的构建失败问题,本文将介绍两个给 Docker Desktop 设置网络代理的方法。
修改 WSL2 配置
为了测试代理的效果,这里创建一个go服务,代码很简单,就是访问 https://www.google.com/
并返回结果。如果能正常访问,说明代理设置成功。
package main
import "net/http"
func main() {
resp, err := http.Get("https://www.google.com/")
if err != nil {
panic(err)
}
defer resp.Body.Close()
println(resp.Status)
}
第一种方法是修改 WSL2 的配置,在 windows C:\Users<your_username> 目录下创建 .wslconfig 文件,输入以下内容:
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
然后重启 WSL: wsl --shutdown
networkingMode 为mirrored 表示网络模式使用镜像模式,会镜像宿主机的网络设置,能更好的集成宿主机和WSL的网络。
autoProxy 开启了自动代理的功能,意味 WSL 自动配置代理设置。
配置好,我们构建 Docker 镜像,运行:
可以看到代理成功生效,可以正常访问。
接下来介绍通过修改 Docker Desktop 的配置文件,设置代理。
修改 Docker Desktop 配置
打开 Docker Desktop 的设置,找到 Resources Proxies 选项,设置代理。
运行 Docker 镜像,可以看到代理成功生效,可以正常访问。
小结
本文介绍了两种给 Docker Desktop 设置网络代理的方法,分别是修改 WSL2 配置和修改 Docker Desktop 配置。