1
Heisenbery 2023-05-01 13:12:03 +08:00 via iPhone 1
我的使用习惯是 qbittorent 、tailscale 这些下载类或者对 IPV6 或网络有强需求的 docker 使用 host ,其他的都用 bridge 。
对我而言,两者最大的区别就是 host 不需要手动一个个映射端口 |
2
lovelylain 2023-05-01 16:28:34 +08:00 via Android 1
需要反向代理访问其他服务的服务走 host ,例如 nginx ,其他服务非必要的话用 bridge ,用 nginx 反代
|
3
julyclyde 2023-05-02 10:41:50 +08:00 1
host 比较方便
要不然就会带一堆 iptables 规则,很烦 |
4
lovelylain 2023-05-02 15:20:27 +08:00 via Android 1
“缺点:反代端口配置麻烦,以前在同一个 docker 网络,反代时只要输入容器名字+端口号即可。现在需要先暴露容器的端口,各端口还不能冲突,nginx 上还要再新开一个端口去反代容器的端口,也不能使用容器名字只能用 localhost...”
自己搞错了方案不能怪到 host 模式上呀,不需要给其他容器暴露端口的,只要自定义网络并固定容器 ip ,就可以在 host 的 nginx 内通过容器 ip:容器端口反代的。 |
5
hyperbin 2023-05-02 20:02:20 +08:00 via Android 1
新建个 docker network ,把 nginx 和一堆服务都加入,做反代后对外只需要暴露一个 80/443 ,本地再配上各服务的域名就行了
|
6
qq565425677 OP @lovelylain #4 多谢老哥的方案,这样确实比开端口方便的多,就是指定 ip 还是不如原来在一个网路下直接打容器名字方便,不过这样已经很可以接受了
|
7
qq565425677 OP @hyperbin #5 这样确实是最方便的,就是 ipv6 支持的不好,只能通过 ipv6 访问,但是看到的 ip 是从 V6 转到 v4 的
|
8
lovelylain 2023-05-03 12:24:18 +08:00 1
@qq565425677 不固定 ip 也可以的,在容器网络里跑一个 dns 服务或者反代 dns 的容器,在 nginx 里改 /etc/resolve.conf 或者用 resolver 使用该 dns 容器,就可以在 nginx 里用容器名去反代了,但是对于个人使用来说,显然还是固定 ip 更省事。
|
9
qq565425677 OP @lovelylain #8 666 啊,很棒的思路
|