【自力更生】如何为 Docker 配置 SOCKS5 代理或替换镜像源

3,358 阅读2分钟

在本教程中,我们将探讨如何为 Docker 配置 SOCKS5 代理以及如何安全地设置和使用镜像源。自 Docker Engine 23.0 版本起,Docker 支持使用 SOCKS5 代理连接到 Docker Hub 和其他必要服务,这有助于防止流量截取和镜像替换的风险。我们还将详细介绍如何配置 Docker 镜像源,强调使用安全的镜像源的重要性,并展示通过指定的镜像源下载镜像的方法。

1 配置 SOCKS5 代理

从 Docker Engine 23.0 版本开始,Docker 支持通过 SOCKS5 代理连接到 Docker Hub 和其他服务。这种方法可以有效避免流量截取和镜像替换的风险,确保您直接从原始源获取数据,同时进行 SSL 证书检查,将安全风险降至最低。

限制

  • 代理仅适用于 registry-1.docker.io 和其他 Docker Hub 运行所需的服务器。
  • 对于访问其他资源(如 ghcr.io),请在 no-proxy 参数中指定它们的地址。

配置示例

在 Docker 的配置文件中(通常位于 /etc/docker/daemon.json),添加以下内容:

{
  "proxies": {
    "https-proxy": "socks5://proxy.huecker.io:443",
    "no-proxy": "huecker.io,ghcr.io,*.test.example.com,.example.org,127.0.0.0/8"
  }
}

注意:  如果您之前配置了 registry-mirrors,请从配置中删除该参数。

  • 推荐使用域名而非 IP 地址(例如:proxy.huecker.io),因为 IP 地址的持久性不保证。

重启 Docker

要使配置生效,请重启 Docker 服务:

$ systemctl restart docker

2 配置 docker.io 镜像源

使用镜像时,安全至关重要。不安全的镜像源可能会导致第三方替换镜像并截获所有流量,包括敏感信息如登录名和密码。

配置示例

在 Docker 配置文件中指定安全的镜像源:

{
  "registry-mirrors": ["https://huecker.io"]
}

重启 Docker

更改配置后,同样需要重启 Docker 服务:

$ systemctl restart docker

现在,当尝试下载镜像时,Docker 会首先尝试使用您指定的镜像源。

3. 明确指定镜像源地址

在某些情况下,您可能需要直接从特定源下载镜像。这可以通过在 docker pull 命令中明确指定镜像源地址来实现:

$ docker pull huecker.io/library/alpine:latest
$ docker pull huecker.io/n8nio/n8n:latest

这种方法确保了您直接从指定的镜像源下载镜像,进一步增强了安全性。

通过遵循上述步骤,您可以有效地为 Docker 配置 SOCKS5 代理,并确保使用安全的镜像源,从而保护您的 Docker 环境免受潜在的安全威胁。

原文:huecker.io/use.html#un…