在Windows 10/11上使用WSL2的Ubuntu时,配置代理以获取Docker镜像可以提高网络稳定性和下载速度。以下是详细步骤和配置说明。

一、前提条件

  1. 确保WSL2已安装并配置好

    • 安装WSL2和Ubuntu,可以通过Microsoft Store下载安装Ubuntu。
    • 确保已经安装并启动Docker Desktop for Windows,并配置为与WSL2集成。
  2. 准备代理服务器

    • 确保有一个可用的HTTP/HTTPS代理服务器。

二、配置WSL2的代理

1. 配置环境变量

在WSL2的Ubuntu中,设置环境变量以使用代理服务器。

编辑 ~/.bashrc~/.profile文件,添加以下内容:

export http_proxy="http://your-proxy-server:port"
export https_proxy="http://your-proxy-server:port"
export no_proxy="localhost,127.0.0.1,::1"

your-proxy-server:port替换为你的代理服务器地址和端口。

使配置生效:

source ~/.bashrc

2. 验证环境变量

使用 env命令查看环境变量,确认代理配置正确:

env | grep -i proxy

输出应包含设置的 http_proxyhttps_proxy变量。

三、配置Docker代理

Docker需要单独配置代理以便能够通过代理服务器拉取镜像。

1. 配置Docker CLI代理

在WSL2的Ubuntu中,创建或编辑 ~/.docker/config.json文件,添加代理配置:

{
  "proxies": {
    "default": {
      "httpProxy": "http://your-proxy-server:port",
      "httpsProxy": "http://your-proxy-server:port",
      "noProxy": "localhost,127.0.0.1,::1"
    }
  }
}

2. 配置Docker Daemon代理

在Windows上配置Docker Daemon使用代理。打开Docker Desktop,进入设置界面:

  • 点击 Settings > Docker Engine
  • 添加或修改配置如下:
{
  "proxies": {
    "default": {
      "httpProxy": "http://your-proxy-server:port",
      "httpsProxy": "http://your-proxy-server:port",
      "noProxy": "localhost,127.0.0.1,::1"
    }
  }
}

点击 Apply & Restart使配置生效。

四、测试配置

  1. 测试网络连接

在WSL2的Ubuntu中,测试网络连接以确认代理配置成功:

curl -I http://www.google.com

应返回HTTP响应头,确认可以通过代理访问外网。

  1. 拉取Docker镜像

拉取一个Docker镜像,验证Docker代理配置是否成功:

docker pull hello-world

应成功拉取 hello-world镜像,显示下载进度。

五、配置持久化

1. 使代理配置持久化

确保上述环境变量配置在每次启动WSL2时都能生效,建议将代理配置写入 ~/.bashrc~/.profile文件中。

2. 配置系统代理

若需要在整个系统中使用代理,可以配置系统级代理:

sudo touch /etc/systemd/system/docker.service.d/http-proxy.conf
sudo touch /etc/systemd/system/docker.service.d/https-proxy.conf

编辑 http-proxy.confhttps-proxy.conf文件,添加以下内容:

[Service]
Environment="HTTP_PROXY=http://your-proxy-server:port"
Environment="HTTPS_PROXY=http://your-proxy-server:port"

重启Docker服务:

sudo systemctl daemon-reload
sudo systemctl restart docker

六、总结

通过上述步骤,我们可以在WSL2的Ubuntu中成功配置代理以获取Docker镜像。此过程涉及配置环境变量、Docker CLI和Daemon代理,以及测试配置的有效性。通过合理的代理配置,可以显著提高网络稳定性和下载速度。


思维导图:WSL2 Ubuntu Docker代理配置流程

graph TD;
    A[WSL2 Ubuntu配置代理] --> B[前提条件]
    B --> B1[安装WSL2和Ubuntu]
    B --> B2[安装Docker Desktop]
    B --> B3[准备代理服务器]
    A --> C[配置WSL2的代理]
    C --> C1[设置环境变量]
    C --> C2[验证环境变量]
    A --> D[配置Docker代理]
    D --> D1[Docker CLI代理配置]
    D --> D2[Docker Daemon代理配置]
    A --> E[测试配置]
    E --> E1[测试网络连接]
    E --> E2[拉取Docker镜像]
    A --> F[配置持久化]
    F --> F1[代理配置持久化]
    F --> F2[配置系统代理]
    A --> G[总结]

通过以上配置和测试步骤,可以确保在WSL2的Ubuntu环境中成功使用代理服务器下载Docker镜像,实现高效稳定的网络连接。