猫盘群晖支持 Docker bridge 模式(完整功能),这样 arm 版的官方群晖也都可以完美支持 Docker 了

2021-11-12 16:35:19 +08:00
 huluhulu
之前发过一个帖子是让猫盘群晖支持 Docker ,但是存在缺陷只能用 host 模式。这个模式的缺点是没有端口映射,就是不能修改 container 的端口,不同 container 都是用真实的 host 的端口,会造成端口冲突。 详见 https://www.v2ex.com/t/611090

今天抽空,终于完美解决了 bridge 的问题。
猫盘群晖完美支持端口映射功能,理论上所有 arm 架构的官方群晖都可以使用正常功能的 docker 了,不用再眼馋 X86 群晖了。

再次鄙视群晖官方,故意删减功能,限制 ARM 版本的 docker 。

先发个图,后续补个教程

https://imgur.com/Y3X9eox
2444 次点击
所在节点    分享发现
9 条回复
HashV2
2021-11-12 16:49:51 +08:00
都能 host 了 为什么不能 bridge
xingso
2021-11-12 16:55:07 +08:00
蹲一个后续
hanmiao
2021-11-12 23:12:32 +08:00
我更在意的是人脸识别
Qetesh
2021-11-22 09:13:59 +08:00
蹲个后续
tbc0309
2022-03-25 10:47:39 +08:00
后续呢?来个解决方法
huluhulu
2022-03-26 17:10:02 +08:00
@tbc0309 没有后续了。我整了个闻上云的,直接刷了 x86 的群晖,就没折腾猫盘了…
huluhulu
2022-05-04 15:17:23 +08:00
增加了后续,自动化脚本已经上传了。https://github.com/ourcubk/catdriver ,完美支持 docker 端口映射和 bridge 功能,不再是以前的 host 阉割模式!

支持 猫盘 DSM 6.2.3 25426 版本的群晖。理论上 6.2.x 都应该支持的,各位需要话可以自己测一下。

修改点:
1. 编译了猫盘群晖 bridge 所需的.ko 驱动,安装的时候复制到 /opt/lib64/目录
2. 在每次启动 Docker 前,会执行 insmod 加载这些驱动,同时执行 iptables -P FORWARD ACCEPT 打开 docker 需要的转发功能
3. 增加 docker 自启动

新装只需要下载 catdsm-docker.tgz 和 install-docker.sh ,然后执行 install-docker.sh 即可。

如果以前有自己的 docker ,只是想增加 bridge 功能,可以解压出 catdsm-docker.tgz 里面的.ko 驱动,计划任务里面添加任务按顺序 insmod 一下这些.ko 驱动,然后 iptables -P FORWARD ACCEPT 打开一下转发即可。记得修改自己 dockerd 的启动服务,把 host 模式去掉。
//按此先后顺序加载
insmod /opt/lib64/veth.ko
insmod /opt/lib64/stp.ko
insmod /opt/lib64/tun.ko
insmod /opt/lib64/nf_defrag_ipv4.ko
insmod /opt/lib64/nf_conntrack.ko
insmod /opt/lib64/x_tables.ko
insmod /opt/lib64/xt_TCPMSS.ko
insmod /opt/lib64/xt_recent.ko
insmod /opt/lib64/xt_NFQUEUE.ko
insmod /opt/lib64/xt_mark.ko
insmod /opt/lib64/xt_mac.ko
insmod /opt/lib64/xt_limit.ko
insmod /opt/lib64/xt_iprange.ko
insmod /opt/lib64/xt_geoip.ko
insmod /opt/lib64/xt_addrtype.ko
insmod /opt/lib64/xt_conntrack.ko
insmod /opt/lib64/xt_LOG.ko
insmod /opt/lib64/bridge.ko
insmod /opt/lib64/xt_state.ko
insmod /opt/lib64/xt_tcpudp.ko
insmod /opt/lib64/xt_multiport.ko
insmod /opt/lib64/nf_nat.ko
insmod /opt/lib64/nf_conntrack_ipv4.ko
insmod /opt/lib64/ip_tables.ko
insmod /opt/lib64/nf_nat_redirect.ko
insmod /opt/lib64/xt_REDIRECT.ko
insmod /opt/lib64/xt_nat.ko
insmod /opt/lib64/nf_nat_ipv4.ko
insmod /opt/lib64/nf_nat_masquerade_ipv4.ko
insmod /opt/lib64/ipt_MASQUERADE.ko
insmod /opt/lib64/iptable_filter.ko
insmod /opt/lib64/iptable_nat.ko
huluhulu
2022-05-04 15:18:34 +08:00
derekxxzzyy
2022-05-15 14:39:14 +08:00
@huluhulu 能帮忙编译一个 kernel 是 4.4.180+的 bridge 驱动吗 dsm7 把内核更新了

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

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

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

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

© 2021 V2EX