containerd 配置代理

说明:该方法仅对 docker 程序本身拉取镜像的时候有效,对命令行无效。

1.systemd unit file

为 containerd 服务创建一个 systemd 插入目录

mkdir  /etc/systemd/system/containerd.service.d/

创建名为 /etc/systemd/system/containerd.service.d/http-proxy.conf 的文件
添加 HTTP_PROXY 环境变量

[Service]
Environment="HTTP_PROXY=http://10.96.6.214:7890"

如果您位于 HTTPS 代理服务器后面,请设置 HTTPS_PROXY 环境变量

[Service]
Environment="HTTPS_PROXY=http://10.96.6.214:7890"

可以设置多个环境变量;设置非 HTTPS 和 HTTPS 代理

[Service]
Environment="HTTP_PROXY=http://10.96.6.214:7890"
Environment="HTTPS_PROXY=http://10.96.6.214:7890"

⚠️警告:代理值中的特殊字符(例如 #?!()[]{} )必须使用 %% 进行双重转义。例如

[Service]
Environment="HTTP_PROXY=http://domain%%5Cuser:complex%%[email protected]:3128/"

如果您有需要在没有代理的情况下联系的内部 Docker 注册表,则可以通过 NO_PROXY 环境变量指定它们。

NO_PROXY 变​​量指定一个字符串,该字符串包含应从代理中排除的主机的逗号分隔值。您可以指定以下选项来排除主机:
IP 地址前缀 ( 1.2.3.4 )

域名或特殊 DNS 标签 ( * )

域名与该名称及其所有子域名匹配。带有 前导“.”仅匹配子域名。例如,给定域名 foo.example.comexample.com
example.comexample.comfoo.example.com 匹配,并且
.example.com 仅匹配 foo.example.com

单个星号( * )表示不需要进行代理

IP 地址前缀( 1.2.3.4:80 )和域名( foo.example.com:80 )接受文字端口号

例子:

[Service]
Environment="HTTP_PROXY=http://10.96.6.214:7890"
Environment="HTTPS_PROXY=http://10.96.6.214:7890"
Environment="NO_PROXY=uhub.service.ucloud.cn,localhost,127.0.0.1,10.0.0.0/8"

刷新更改并重新启动 containerd

sudo systemctl daemon-reload
sudo systemctl restart containerd

验证配置是否已加载并与您所做的更改相匹配,例如

sudo systemctl show --property=Environment containerd
Environment=HTTP_PROXY=http://10.96.6.214:7890 HTTPS_PROXY=http://10.96.6.214:7890 NO_PROXY=uhub.se>
lines 1-1/1 (END)

你可能感兴趣的:(containerd,容器)