群晖 DSM 7.2 为 Docker 设置 HTTP/HTTPS/SOCKS5 代理

如果你使用的是群晖 NAS (本文在 DSM 7.2 版本测试通过),可能会遇到无法下载 Docker 镜像的情况。通过配置代理,你可以轻松绕过这些限制,顺利下载和更新镜像。本教程教你如何为 Docker 设置代理,让 Docker 本身的网络请求走你指定的 HTTP 或 SOCKS5 代理服务器。

如果你使用的是群晖 NAS (本文在 DSM 7.2 版本测试通过),可能会遇到无法下载 Docker 镜像的情况。通过配置代理,你可以轻松绕过这些限制,顺利下载和更新镜像。本教程教你如何为 Docker 设置代理,让 Docker 本身的网络请求走你指定的 HTTP 或 SOCKS5 代理服务器。

为什么需要代理?

国内目前网络环境可能会限制你访问 Docker 镜像库(例如 docker pull 等操作),尤其是官方的国外镜像库。配置 HTTP 或 SOCKS5 代理可以让你绕过这些限制,顺畅地拉取镜像。

操作步骤

接下来,我们一步一步操作,搞定代理设置。

1. 登录到群晖 NAS

首先,你需要通过 SSH 连接到你的群晖 NAS。在 DSM 中,进入 控制面板 > 终端机与 SNMP,启用 SSH 服务。然后打开命令行工具(Windows 用 PuTTY,Mac 或 Linux 用 Terminal),输入以下命令:(命令回车执行)

[CMD] Windows SSH 连接服务器教程(系统自带方式)

ssh <用户名>@<NAS_IP>

替换 <用户名> 为你的群晖管理员用户名,<NAS_IP> 为 NAS 的 IP 地址。接着切换到 root 权限(需要输入管理员密码):

sudo -i

2. 创建 Docker 服务配置目录

接下来,我们要为 Docker 创建一个配置文件夹。在 SSH 终端中执行以下命令:

mkdir -p /etc/systemd/system/pkg-ContainerManager-dockerd.service.d

3. 创建并编辑代理配置文件

现在我们要创建一个配置文件来存放代理信息。继续输入以下命令:

touch /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf

然后,用 vi 文本编辑器打开它:

vi /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf

进入插入模式:按下 i 键,这时你会看到底部出现 — INSERT — 的提示,表示可以开始编辑文本。

输入或粘贴内容: 在文件中添加以下内容,设置 HTTP 和 HTTPS 代理:(shift+insert可粘贴

[Service]
Environment="HTTP_PROXY=http://192.168.1.3:10808"
Environment="HTTPS_PROXY=http://192.168.1.3:10808"
Environment="NO_PROXY=localhost,127.0.0.1"

如果你使用的是 Socks5 代理,改为:

[Service]
Environment="HTTP_PROXY=socks5://192.168.1.3:10808"
Environment="HTTPS_PROXY=socks5://192.168.1.3:10808"
Environment="NO_PROXY=localhost,127.0.0.1"

如果需要认证,格式如下:

[Service]
Environment="HTTP_PROXY=socks5://用户名:密码@192.168.1.3:10808"
Environment="HTTPS_PROXY=socks5://用户名:密码@192.168.1.3:10808"
Environment="NO_PROXY=localhost,127.0.0.1"

注意:替换 192.168.1.3:10808 和 用户名:密码 为你自己的信息。

保存并退出:

▪ 按 Esc 键,退出插入模式。
▪ 输入 :wq 然后按 Enter 键,表示保存并退出。

如果在 vi 中不小心进入了错误模式,你可以按 Esc 键,然后输入 :q! 再按 Enter 退出而不保存任何更改。

4. 重新加载并重启 Docker 服务

完成配置后,我们需要重新加载一下 Docker 的服务配置,并重启它:

systemctl daemon-reload
systemctl restart pkg-ContainerManager-dockerd.service

5. 验证代理是否设置成功

接下来,我们验证一下代理设置是否生效。使用以下命令查看 Docker 的环境变量:

systemctl show --property=Environment pkg-ContainerManager-dockerd.service

如果显示的内容中有你刚刚设置的代理信息,说明配置成功:

Environment=HTTP_PROXY=http://192.168.1.3:10808
Environment=HTTPS_PROXY=http://192.168.1.3:10808
Environment=NO_PROXY=localhost,127.0.0.1

6. 测试 Docker 代理

最后,我们通过拉取镜像测试代理是否生效。运行以下命令:

docker pull busybox

如果镜像能正常下载,说明 Docker 已经通过代理成功连接网络。

另外如果要在 Docker 容器内通过代理访问网络,你可以在运行 Docker 容器时,设置环境变量来指定代理,例如:

docker run -e http_proxy=http://your-proxy:port \
           -e https_proxy=http://your-proxy:port \
           -e no_proxy=localhost,127.0.0.1 \
           your-image

恭喜!你已经成功为 Docker 设置了代理。在受限网络环境中,代理是非常有用的工具,帮助你顺利拉取镜像。按照本教程,你只需登录 NAS,创建并编辑配置文件,然后重启 Docker 服务,就能让 Docker 使用代理了。

转载作品,原作者:技术好学屋,文章来源:https://www.itblogcn.com/article/2620.html

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024-11-11 15:13
下一篇 2024-11-11 18:18

相关推荐

发表回复

登录后才能评论
分享本页
返回顶部