1
isbase 2022-08-23 13:51:55 +08:00
局域网内网关直接翻墙,或者加个旁路由,将群晖的网关改成旁路由
|
2
isbase 2022-08-23 13:53:04 +08:00
一些关键字:R2S 软路由、OpenWRT 、Surge 网关模式
|
3
hsfzxjy 2022-08-23 14:11:59 +08:00
改 docker daemon 的启动参数
|
4
kaedeair 2022-08-23 14:16:15 +08:00 1
你的问题是拉取镜像慢还是让 docker 走代理?
如果是让 docker 走代理可以: 1.通过 iptables 设置转发规则,从 docker 出来的流量转发到 clash 上 2.启动 docker 时加载环境变量 关键字:群晖 docker daemon http proxy 配置 3.比较暴力的方法就是楼上提到的,交给路由器处理 如果是拉取镜像慢可以: 1.更改 docker hub 使其指向访问快镜像源 2.在另一台电脑下好镜像,再到群辉上导入 |
5
ltkun 2022-08-23 14:21:28 +08:00 via Android
直接配置国内 docker 源
|
6
DefoliationM 2022-08-23 14:28:35 +08:00
换用 podman,
```bash http_proxy=http://xxxx:8080 https_proxy=http://xxxx:8080 podman pull docker.io/xxx:latest ``` |
7
2022study 2022-08-23 14:31:20 +08:00
建议命令行操作 ,直接用 export all_proxy=socks5:地址:port 设置命令行代理,然后 docker pull 镜像,取消用 unset all_proxy
|
8
zliea 2022-08-23 15:05:45 +08:00
如果是 docker desktop: https://docs.docker.com/network/proxy/
如果是 docker engine: https://docs.docker.com/config/daemon/systemd/#httphttps-proxy |
9
cloudsigma2022 2022-08-23 15:11:56 +08:00
别的不清楚,如果你用的是 tcp 透明代理。加一条 output
``` # us for output iptables -t nat -I GFW -d yourvpsip -j RETURN iptables -t nat -I OUTPUT -p tcp -m multiport --dports 80,443 -j GFW ``` |
10
cloudsigma2022 2022-08-23 15:12:45 +08:00
你的宿主 output 走 gfw ,那么 docker 就会默认也走 gfw
|
11
littlewing 2022-08-23 15:14:33 +08:00
代理方式:docker 运行 clash
说明你是用的旁路透明网关的方式,那不应该不走代理啊 |
12
chenjiangui998 2022-08-23 15:39:33 +08:00
clash tun 模式就行
|
13
n3yKZn7vykSRL0xz 2022-08-23 15:40:39 +08:00 via Android 1
|
14
dxppp 2022-08-23 16:12:30 +08:00
IU 引起了我的注意
|
15
lamesbond 2022-08-23 16:39:14 +08:00
如果是拉取镜像走代理的话,https://blog.csdn.net/styshoo/article/details/55657714
地址配成代理的地址,我是用 windows 上装的 netch 挂梯子 |
16
40EaE5uJO3Xt1VVa 2022-08-23 16:59:43 +08:00
编译一份 ProxyChains ,编辑一下默认配置文件
prxychains docker xxx |
17
BugCry 2022-08-23 17:00:55 +08:00 3
拖个镜像没那么复杂
docker pull ghcr.io/github/super-linter:latest 替换为 docker pull ghcr.nju.edu.cn/github/super-linter:latest |
18
40EaE5uJO3Xt1VVa 2022-08-23 17:01:04 +08:00
刚留意是 docker 运行的代理,代理 是不是映射到外面的端口上了,
这样套娃我还没试过,楼主试试给个反馈 |
19
zunceng 2022-08-23 17:29:17 +08:00
|
20
fitme 2022-08-23 18:18:51 +08:00
方式有点多
|
21
tengxunkuku OP 总结:
原代理方式,docker 运行 clash ,暴露端口,群晖设置系统代理 127.0.0.1:7890 ,终端可以直接代理,但不知道为什么 docker 没走代理。 折腾了一下午,尝试了以下几种方式,由于种种原因失败 1.群晖安装 openwrt ,更改网关后无法 ping 通百度 2.docker daemon 配置文件,DSM 与通用 linux 不同,不知道在哪 3.iptables+redsocks 流量转发,需要安装编译环境和相关工具,我不想把群晖里装太多东西 4.群晖开的 windows 虚拟机,CFW 无法作为网关。 5.群晖创建 tun ,映射到 docker clash 作为透明代理,按教程走了一遍,失败 临时解决办法,更改 ClashX Pro 作为网关。许多在 linux 里很简单的方法到了 DSM 就会很复杂,先这样,以后有时间了再研究,感谢大家的回复。 |
22
TMaize 2022-08-23 20:17:09 +08:00 1
可以试下这个 https://dockerproxy.com/docs 。我有时候 pull 不来下会用这个替换下源地址,然后再改下 tag
|
23
shelken 2022-08-23 22:57:50 +08:00 via iPhone
群晖的网络设置可以设置代理的,这里的代理设置可以对群晖的 docker 管理端生效(就是 web 页面 docker )。如果你是 ssh 连接直接命令的话,直接 export http proxy 或者 socks5 。
|
24
xwchenhui 2022-08-23 23:02:20 +08:00
分享一个比较完美的方案,不过比较复杂:
1 、要有个能 passwall 的旁路 2 、群晖开双网口,一个接主路由(默认网关),一个接旁路由 3 、docker 创建 macvlan 网络,一个网关用主路由的,一个网关用旁路的 4 、需要 passwall 的容器指定旁路的 macvlan 网络 这样基本上就比较灵活了,哪些要直接出去的(比如下载工具),哪些要走旁路的可以自己搭配 |
25
YamatoRyou 2022-08-24 10:33:33 +08:00
分享一个我目前正在用的群晖 Docker 容器使用代理的方案:
1. 要走代理的容器添加环境变量: HTTP_PROXY=http://127.0.0.1:**** HTTPS_PROXY=http://127.0.0.1:**** 2. 另起一个 Privoxy 容器 (网络模式设置为 hosts), 配置文件注明要开放的端口及要经过代理访问的域名. 接着让上一个容器连接到 Privoxy 指定的端口. 这个方案我用来让 Synapse 容器连接推送网关, 存在一个缺点: http:// 开头的地址始终不能经过代理, https:// 开头的正常. 原因不明. |
26
YamatoRyou 2022-08-24 10:36:59 +08:00
@YamatoRyou 看走眼了, 以为是楼主要让容器走代理. 请无视.
|
27
mu2er 2022-08-24 11:33:14 +08:00 via iPhone
我是群晖虚拟机上安装 openwrt ,运行 clash ,作为旁路由使用,需要科学上网的 Apple TV 等设备按需设置网关跟 dns 地址到旁路由。
试过群晖控制面板里设置 http 代理,好像这么直接设置 docker 容器并不能走代理连接。 可以在群晖的网络设置里修改网关地址跟 dns 为旁路由,这么整整个群晖都可以科学上网了。 |
28
tengxunkuku OP 简单方法:为 systemd 设置环境变量,DSM 中 dockerd 的父进程为 /sbin/init ,而 init 为 systemd 的一个符号链接,因此为 systemd 设置环境变量依然对 docker 起作用。参考 https://cloud.tencent.com/developer/article/1627708 。
|
29
horizon 2023-02-01 19:03:27 +08:00
我也遇到了这个问题。。蛋疼。
|
30
horizon 2023-02-01 19:09:34 +08:00
@tengxunkuku 老哥,我发现没有 docker.service 这个,你怎么解决的
|
31
temberature 2023-11-06 18:12:24 +08:00
群晖 Nas 中为单个 Docker 实例提供 Http Proxy – 1024.ee
https://1024.ee/2020/05/07/%E7%BE%A4%E6%99%96nas%E4%B8%AD%E4%B8%BA%E5%8D%95%E4%B8%AAdocker%E5%AE%9E%E4%BE%8B%E6%8F%90%E4%BE%9Bhttp-proxy/ |
32
Apol1oBelvedere 222 天前
@BugCry 如果某个 image 在 hub.docker.com 里存在而不在 https://repo.nju.edu.cn/#browse/browse:docker-hub 里面那该怎么快速拖下来呢?
|
33
charley008 202 天前 2
@horizon
@tengxunkuku 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 验证 |
34
horizon 202 天前
|
35
liujl 174 天前
黑群 6.2.3 测试有效
https://www.v2ex.com/t/981481?p=1#r_14833577 |
36
xiaotianhu 144 天前
我是群晖 7.1 ,没有 ContainerManager ,Mac 上开 clash 允许 Lan 访问,配置下代理:
目录:/usr/local/lib/systemd/system vim pkg-Docker-dockerd.service systemctl daemon-reload systemctl restart pkg-Docker-dockerd ``` [Service] Environment="HTTP_PROXY=http://192.168.1.10:7890" Environment="HTTPS_PROXY=http://192.168.1.10:7890" Environment="NO_PROXY=localhost,127.0.0.1" ``` 测试成功 |
37
hjx900 136 天前
@xiaotianhu 感谢你的分享,试了好多其他版本的都不对,你这个就一次成功了
|
38
sugarlovestudy 131 天前
@xiaotianhu pkg-Docker-dockerd.service 文件里面只需要放下面的代码就可以了吗? 为什么我的一直报错欸.
pkg-Docker-docker.service lacks both ExecStart= and ExecStop= setting. Refusing. |
39
sugarlovestudy 131 天前
@hjx900 你好,请问你是怎么操作的呀。 我的报错了,service 启动不起来
|
40
sugarlovestudy 130 天前 1
我的群晖版本是 DSM 7.1.1-42962 Update 6. 根据本帖和 https://www.v2ex.com/t/981481?p=1#r_14833577 大佬们的方法, 尝试均失败, 因此摸索出了针对我这个版本的方法. 失败的原因应该是群晖不同版本`docker.service`的名字以及路径都不一样.
1. 「设置代理软件 - 使其能代理局域网其他设备」 2. `/usr/local/lib/systemd/system`, 修改`pkg-Docker-dockerd.service` 添加如下内容 ``` [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" ``` 3. 接着重启 docker. 停止 docker :` /var/packages/Docker/scripts/start-stop-status stop ` 启动 docker :` /var/packages/Docker/scripts/start-stop-status start` 测试该方法设置之后,在群晖的网页管理界面和 ssh 端都可以正常的拉取镜像. 谢谢各位大佬的分享 |
41
hjx900 128 天前
@sugarlovestudy 对的,就是版本不同文件名字路径不同。。也不知道为啥群晖要这么设置。。
|