使用 pve 作为 all in one 主机中的 docker 的容器,如何在 docker-compose 文件中指定静态 ip 和 dns?

226 天前
 codeself

一、现状

使用 cloudflare zero trust tunnel 跑了一个内网穿透服务,

但是因为 cloudflare 大陆没节点的原因,导致内网穿透的效果很慢。

于此同时,在局域网跑了个 openclash (见“二、网络拓扑图”)。

所以希望跑 cloudflare 的容器,使用指定静态 ip 和 dns 的形式,用上 openclash 中的代理。

这时候,docker-compose 文件中应该指定怎么静态 ip 和 dns ?

二、网络拓扑图

703 次点击
所在节点    Docker
8 条回复
CRUD
226 天前
cloudflare 容器要使用网关分配的网段中的 IP ,直接使用 docker 的桥接网络,然后容器配置 IP 和 DNS ,以下是一个配置示例,来自 ChatGPT:
```yml
version: '3'
services:
myservice:
image: myimage
dns:
- 192.168.50.2
- 223.5.5.5
networks:
my_custom_network:
ipv4_address: 192.168.50.希望分配给 cloudflare 的地址

networks:
my_custom_network:
driver: bridge
ipam:
config:
- subnet: 192.168.50.0/24

```
xem
226 天前
[proxy - 如何在 docker-compose 中使用本地代理设置 - IT 工具网]( https://www.coder.work/article/6700816)
看看这个方案,应该可以满足你的需求
totoro625
226 天前
出于简单易用的原则,我是把 cloudflare zero trust tunnel 打包放在 vm ,用一根虚拟网线接到 openwrt 的 lan
codeself
226 天前
@CRUD 用这个配置会出现问题,见我在 V2EX 里发的另一个帖子: https://v2ex.com/t/977320

@xem 😂虽然这是个内容农场,但是还算良心,指向了原帖地址: https://stackoverflow.com/questions/54218632/how-to-use-local-proxy-settings-in-docker-compose
codeself
226 天前
@totoro625 啊这,但是管理 vm 没 docker-compose 这么简便,不过,很对虚拟网线这个东西很感兴趣,能展开说说吗?
CRUD
225 天前
@codeself #4 看了你上个帖子,应该是 docker network 的网段配置不能与 LAN 的网段一样。

我原来给 docker 容器赋予独立 IP 用的是 macvlan 的方式,在宿主机上新建了一个 macvlan 网卡子接口,桥接到物理网口上。然后创建 macvlan 类型的 docker network ,指定一个不同于 LAN 的网段,需要独立 IP 的 docker 容器就使用这个 network 。

我用这种方式把独立 IP 的容器划分到了一个单独的网段中,不太确定对你的场景有没有帮助,你可以看一下 macvlan 这个关键字能不能搜索到一些有用的信息。
codeself
225 天前
@CRUD 目前是找到个这个教程打算折腾,不知道行不行😂
http://dockeradv.baoshu.red/advanced_network/macvlan.html
huazhaozhe
189 天前
不是有 pve 和 openwrt 嘛,直接弄个虚拟机装起,然后虚拟机接到 openwrt 上就可以了

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

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

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

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

© 2021 V2EX