在本教程中,我们将探讨如何为 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 环境免受潜在的安全威胁。