背景:已经在 DSM 里面设置了代理。
Docker 的“注册表”功能,可以正常显示镜像列表,说明代理生效了。
双击注册表中的镜像名称,无法下载,查看日志,显示:Fail to pull [镜像名].
ssh 登录群晖,执行 docker pull 镜像名,无法正常下载
export 手动设置代理,再 docker pull 命令,还是无法正常下载。
1
hefish 2023-10-12 22:38:56 +08:00
这个肯定是不行的,
docker pull 并不是他自己去 pull ,是指挥后台的 dockerd 去 pull 。 所以要修改启动 dockerd 的参数。 |
2
itskingname 2023-10-13 09:58:22 +08:00
@hefish 群晖的 Docker 怎么更换 dockerd 的启动参数呢
|
3
alexhx 2023-10-13 10:06:43 +08:00
忘了之前咋设置的了,我的现在是只能用 docker pull 命令,Web 端不行
|
4
itskingname 2023-10-13 10:09:09 +08:00
@alexhx 我现在是 docker pull 命令都会超时
|
5
huhhz 2023-10-13 10:16:27 +08:00
好像可以这么用
docker pull --proxy=http://proxy.example.com:8080 <image> |
6
Huelse 2023-10-13 10:25:49 +08:00
qnap 就不需要自己设置代理,拉取很快
|
7
hefish 2023-10-13 11:57:33 +08:00
@itskingname 忘了,搜搜看吧。 我现在是临时搞个全局代理。 所以没设。
|
8
itskingname 2023-10-13 12:57:43 +08:00
@hefish 临时的全局代理我也测试过了,还是拉不动
|
9
itskingname 2023-10-13 12:58:50 +08:00
@huhhz 我看 docker 文档里面没有写这种方式
|
10
hefish 2023-10-13 12:59:59 +08:00
@itskingname 我的意思是透明的那种代理。 你等下,我来看看。
|
11
hefish 2023-10-13 13:02:15 +08:00 1
@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 |
12
huhhz 2023-10-13 14:10:27 +08:00
@huhhz
@itskingname 不好意思记错了 ,之前用过的是 build 的时候代理,记成 pull 了。。。。。 docker build --build-arg HTTP_PROXY="http://proxy.example.com:3128" . |
13
itskingname 2023-10-13 14:56:04 +08:00
@huhhz build 可以用,但是 pull 的时候没法
|
14
lvtuyukuai 2023-10-13 15:14:17 +08:00
「设置代理软件 - 使其能代理局域网其他设备」,因为拉取镜像不是经常性的动作,我目前是用这个方法处理的。
|
15
mianlaodie 2023-10-13 18:43:26 +08:00 via Android
群晖的那个出问题很久了,我现在是 SSH 过后切换 ROOT 用户拉取
|
16
mekingname OP @mianlaodie 我 ssh 上去用命令拉也超时
|
17
mekingname OP @hefish 在群晖里面没有 /var/packages/Docker 这个文件夹
|
18
hefish 2023-10-14 23:28:09 +08:00
@mekingname 我是 6.1 的黑裙。 你用 ps ax|grep dockerd 找找。
|
19
charley008 196 天前 4
@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 的话。自己找找相应的文件名 |
20
X-Force 168 天前
@charley008 #19 这样配置之后,是 docker 引擎和拉取镜像时使用代理,还是包括容器里的应用都会默认走代理?
|
21
liujl 168 天前 1
1.添加 /etc/docker/env 文件
export HTTP_PROXY=127.0.0.1:8899 2. 编辑 /etc/init/pkg-Docker-dockerd.conf 文件 将 exec /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json 改为 #exec /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json script source /etc/docker/env /var/packages/Docker/target/usr/bin/dockerd --config-file /var/packages/Docker/etc/dockerd.json end script 3. 然后,重启 docker 服务, 停止 docker /var/packages/Docker/scripts/start-stop-status stop 启动 docker /var/packages/Docker/scripts/start-stop-status start 接着,你就尽情的 pull 吧,速度拉满 黑群 6.2.3 验证可用, 群晖 7 不知道能不能用,如果有人验证了群晖 7 ,可以留言帮助其他人,谢谢! |
22
StarUDream 163 天前
和 #19 一样也可以直接修改 `/usr/local/lib/systemd/system/pkg-ContainerManager-dockerd.service` 这个文件添加环境变量。
|
23
happydanye 157 天前
@liujl 测试有效,感谢!
|
24
happydanye 157 天前
|
25
liujl 155 天前 via Android
@happydanye 您是群晖 7 成功了吗?
|
26
uclinch 142 天前
@charley008
我的系统版本是群晖 DSM 7.2.1 update5 亲测按你的步骤操作最后可用。 不过中间遇到了点问题,按你的步骤 touch /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf vim http-proxy.conf 然后重启 docker 不行,,没有环境变量 我直接 vim /etc/systemd/system/pkg-ContainerManager-dockerd.service.d/http-proxy.conf 修改内容 然后 systemctl daemon-reload systemctl restart pkg-ContainerManager-dockerd.service systemctl show --property=Environment pkg-ContainerManager-dockerd.service 验证 就可以了。 |
27
happydanye 126 天前
@liujl 黑裙 6.2
|