V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
codeself
V2EX  ›  Docker

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

  •  
  •   codeself · 2023-11-13 11:27:20 +08:00 · 935 次点击
    这是一个创建于 384 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一、现状

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

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

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

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

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

    二、网络拓扑图

    网络拓扑图

    8 条回复    2023-12-20 07:30:35 +08:00
    CRUD
        1
    CRUD  
       2023-11-13 12:16:09 +08:00
    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
        2
    xem  
       2023-11-13 15:12:55 +08:00
    [proxy - 如何在 docker-compose 中使用本地代理设置 - IT 工具网]( https://www.coder.work/article/6700816)
    看看这个方案,应该可以满足你的需求
    totoro625
        3
    totoro625  
       2023-11-13 15:23:43 +08:00
    出于简单易用的原则,我是把 cloudflare zero trust tunnel 打包放在 vm ,用一根虚拟网线接到 openwrt 的 lan
    codeself
        4
    codeself  
    OP
       2023-11-13 15:24:22 +08:00
    @CRUD 用这个配置会出现问题,见我在 V2EX 里发的另一个帖子: https://v2ex.com/t/977320

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

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

    我用这种方式把独立 IP 的容器划分到了一个单独的网段中,不太确定对你的场景有没有帮助,你可以看一下 macvlan 这个关键字能不能搜索到一些有用的信息。
    codeself
        7
    codeself  
    OP
       2023-11-13 18:04:43 +08:00
    @CRUD 目前是找到个这个教程打算折腾,不知道行不行😂
    http://dockeradv.baoshu.red/advanced_network/macvlan.html
    huazhaozhe
        8
    huazhaozhe  
       347 天前
    不是有 pve 和 openwrt 嘛,直接弄个虚拟机装起,然后虚拟机接到 openwrt 上就可以了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2594 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 06:52 · PVG 14:52 · LAX 22:52 · JFK 01:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.