群晖的 Docker 无法使用系统代理拉取镜像

2023-10-12 22:27:50 +08:00
 mekingname

背景:已经在 DSM 里面设置了代理。

Docker 的“注册表”功能,可以正常显示镜像列表,说明代理生效了。

双击注册表中的镜像名称,无法下载,查看日志,显示:Fail to pull [镜像名].

ssh 登录群晖,执行 docker pull 镜像名,无法正常下载

export 手动设置代理,再 docker pull 命令,还是无法正常下载。

3299 次点击
所在节点    NAS
27 条回复
hefish
2023-10-12 22:38:56 +08:00
这个肯定是不行的,
docker pull 并不是他自己去 pull ,是指挥后台的 dockerd 去 pull 。
所以要修改启动 dockerd 的参数。
itskingname
2023-10-13 09:58:22 +08:00
@hefish 群晖的 Docker 怎么更换 dockerd 的启动参数呢
alexhx
2023-10-13 10:06:43 +08:00
忘了之前咋设置的了,我的现在是只能用 docker pull 命令,Web 端不行
itskingname
2023-10-13 10:09:09 +08:00
@alexhx 我现在是 docker pull 命令都会超时
huhhz
2023-10-13 10:16:27 +08:00
好像可以这么用
docker pull --proxy=http://proxy.example.com:8080 <image>
Huelse
2023-10-13 10:25:49 +08:00
qnap 就不需要自己设置代理,拉取很快
hefish
2023-10-13 11:57:33 +08:00
@itskingname 忘了,搜搜看吧。 我现在是临时搞个全局代理。 所以没设。
itskingname
2023-10-13 12:57:43 +08:00
@hefish 临时的全局代理我也测试过了,还是拉不动
itskingname
2023-10-13 12:58:50 +08:00
@huhhz 我看 docker 文档里面没有写这种方式
hefish
2023-10-13 12:59:59 +08:00
@itskingname 我的意思是透明的那种代理。 你等下,我来看看。
hefish
2023-10-13 13:02:15 +08:00
@itskingname 在 /var/packages/Docker/etc/dockerd.json 里。

"proxies": {
"default": {
"httpProxy": "http://proxy.example.com:3128",
"httpsProxy": "https://proxy.example.com:3129",
"noProxy": "*.test.example.com,.example.org,127.0.0.0/8"
}
}

改好了 重启 dockerd
huhhz
2023-10-13 14:10:27 +08:00
@huhhz
@itskingname 不好意思记错了 ,之前用过的是 build 的时候代理,记成 pull 了。。。。。
docker build --build-arg HTTP_PROXY="http://proxy.example.com:3128" .
itskingname
2023-10-13 14:56:04 +08:00
@huhhz build 可以用,但是 pull 的时候没法
lvtuyukuai
2023-10-13 15:14:17 +08:00
「设置代理软件 - 使其能代理局域网其他设备」,因为拉取镜像不是经常性的动作,我目前是用这个方法处理的。
mianlaodie
2023-10-13 18:43:26 +08:00
群晖的那个出问题很久了,我现在是 SSH 过后切换 ROOT 用户拉取
mekingname
2023-10-14 21:34:45 +08:00
@mianlaodie 我 ssh 上去用命令拉也超时
mekingname
2023-10-14 21:36:08 +08:00
@hefish 在群晖里面没有 /var/packages/Docker 这个文件夹
hefish
2023-10-14 23:28:09 +08:00
@mekingname 我是 6.1 的黑裙。 你用 ps ax|grep dockerd 找找。
charley008
193 天前
@mekingname
dsm7.2
docker 本身走代理
mkdir -p /etc/systemd/system/pkg-ContainerManager-dockerd.service.d
touch /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf
vim http-proxy.conf

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

systemctl daemon-reload
systemctl restart pkg-ContainerManager-dockerd.service
systemctl show --property=Environment pkg-ContainerManager-dockerd.service 验证

如果是其他版本的 dsm 的话。自己找找相应的文件名
X-Force
166 天前
@charley008 #19 这样配置之后,是 docker 引擎和拉取镜像时使用代理,还是包括容器里的应用都会默认走代理?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/981481

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX