win+wsl+系统代理环境下 docker pull 问题处理

背景和需求

  • 背景:win11 安装了 wsl2,并运行了 ubuntu,ubuntu 中安装了 docker。
  • 需求:可以正常运行 docker pull 镜像(不依靠第三方镜像站,安全/合规存疑)。
  • 现状:docker pull 报错超时。
sh 复制代码
➜  ~ docker pull hello-world
Using default tag: latest
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.设置 win 系统代理、终端代理

这里不赘述,自行设置。有条件的可以走公司合规的专线。

验证 :win powershell 可以正常 curl https://hub.docker.com/

2.设置 wsl 可以使用 win 系统代理

  1. 在文件夹地址栏,输入 %UserProfile%,创建 .wslconfig 文件。
  2. 在.wslconfig 中写入以下内容。
text 复制代码
[wsl2]
networkingMode=mirrored
dnsTunneling=true
autoProxy=true

[experimental]
# requires dnsTunneling but are also OPTIONAL
bestEffortDnsParsing=true

这段配置主要是 让 WSL2 内的网络和 Windows 镜像,这样 wsl 网络就和 win 完全一致了。

验证 :WSL2 终端可以正常 curl https://hub.docker.com/

参考:

3.设置 wsl 中 docker 可以使用系统代理

此时虽然 wsl 可以使用系统代理,但是 docker 为守护进程,还需要手动设置代理。

  1. 创建目录。
sh 复制代码
 sudo mkdir -p /etc/systemd/system/docker.service.d 
  1. 在docker.service.d目录下写文件。
sh 复制代码
vim proxy.conf 
  1. 文件中写入以下内容。
sh 复制代码
# 这个端口设成你自己的代理端口
[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"

表示docker 使用以上端口进行代理。

  1. 重启docker
sh 复制代码
sudo systemctl restart docker

验证:得到的结果和你配置的端口一样。

sh 复制代码
➜  ~ systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://127.0.0.1:7890 HTTPS_PROXY=http://127.0.0.1:7890 NO_PROXY=localhost,127.0.0.1

4.大公告成

docker pull hello-world 正常。

注意,虽然实现了系统代理,但是没法 ping,所以不要用 ping 做测试,ping 走的是 ICMP 协议,系统代理仅代理了 HTTP/HTTPS 应用层协议。

相关推荐
分布式存储与RustFS3 天前
MinIO 官方 Docker 镜像被移除:依赖它的项目该怎么办
docker·云原生·devops·对象存储·minio·分布式存储
玉&心3 天前
通过Arthas在线诊断K8S中的内存及JVM等使用情况
docker·k8s·arthas
xing-xing3 天前
Docker容器中Nginx站点根目录网页配置访问
nginx·docker
guo_wen_qiang3 天前
上传本地镜像到harbor中
docker·容器·持续部署
羑悻的小杀马特3 天前
Dockerfile 全景指南:从入门编写dockerfile到生产环境镜像优化实战,一步步带你从啃透制作指令到镜像制作落地!
docker·dockerfile·镜像制作
BianHuanShiZhe3 天前
docker常见命令
docker
正经教主3 天前
【FDE系列】阶段2:Day 43:Docker Compose — 多容器一键编排
人工智能·docker·fde
忆~遂愿3 天前
本地片库怎么在外面打开?Plex + cpolar 搭一套可远程访问的私人影音库
docker·容器
Zhu7583 天前
docker环境,vLLM 部署 Qwen3.8-27B
docker·qwen·vllm
溜达的大象3 天前
多台服务器不想上重型监控?用 Beszel 搭一套轻量主机与 Docker 看板
docker