找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 8|回复: 0

群辉 Docker 部署 zoffline

[复制链接]

69

主题

0

回帖

227

积分

管理员

积分
227
发表于 4 天前 | 显示全部楼层 |阅读模式
众所周知, 群辉默认占用了 80 端口, 443 端口. 而 zoffline 正好需要使用 80 和 443 端口, 如何解决呢?
其实我们可以通过自定义 docker 网络. 创建一个类型为 macvlan 的网络, 手动指定 ip 即可. 具体 ip 和网络需要结合内网实际情况进行尝试和修改.
内网环境
  • zoffline 内网网段: 192.168.0.1/24
  • zoffline 的容器 ip, 一般来说为了避免冲突, 需要在内网子网下, 内网 DHCP 之外. (冲突可能性不是很大, 这里重叠也无所谓…
  • 配置好 zoffline ip 之后, 在路由器 DHCP 页面看不到设备, 因为这属于静态 IP 指定.
确定群辉网卡名称
❯ ifconfig | grep "192.168.0.50" -B 2 #替换成实际的 ip

ovs_eth0  Link encap:Ethernet  HWaddr A8:B8:E0:01:E6:AD
          inet addr:192.168.0.50  Bcast:192.168.0.255  Mask:255.255.255.0



查看通过无线 / 有线连接的设备方法一
root@op:~# cat /proc/net/arp
IP address       HW type     Flags       HW address            Mask     Device
192.168.1.183    0x1         0x0         00:00:00:00:00:00     *        veth1
192.168.0.143    0x1         0x2         fa:a2:ba:82:3b:e4     *        br-lan
192.168.1.19     0x1         0x0         00:00:00:00:00:00     *        veth1
192.168.0.220    0x1         0x2         00:e0:4c:68:00:76     *        br-lan



  • Flags 标志可以表示是否在线状态,0x0 表示离线,标志 0x2 表示在线
  • Device 表示接口的名称
方法二
root@op:~# cat /tmp/dhcp.leases
1740534302 7a:c4:da:71:48:fa 192.168.0.109 * 01:7a:c4:da:71:48:fa
1740534269 b8:09:8a:50:c8:c7 192.168.0.238 IITII-HOME 01:b8:09:8a:50:c8:c7



  • 可以看到 mac 地址,IP,设备名等信息
部署创建 macvlan 类型网络
根据上面的排查, 结果如下
  • subnet 为 192.168.0.0/24
  • gateway 为 192.168.0.1(直接填路由器 ip 即可)
  • ip-range 指新创建的这个网络的子网范围, 这里设定为 192.168.0.220/31
  • parent 代表父网卡, 这里为 ovs_eth0
  • 最后的 zoffline 为 docker 网络名称
  • 上述数值根据实际情况按需修改
docker network create -d macvlan
--subnet 192.168.0.0/24
--gateway=192.168.0.1
--ip-range=192.168.0.220/31
-o parent=ovs_eth0 zoffline

❯ docker network ls
NETWORK ID     NAME                   DRIVER    SCOPE
66eadb788d79   bridge                 bridge    local
691ecfb35f7d   host                   host      local
c09e3197c443   none                   null      local
ae89de5a95e3   zoffline               macvlan   local



docker-compose.yml
# dc down && docker network rm zoffline
# dc up -d && docker exec -it zoffline sh

version: "3.3"
services:
   zoffline:
        image: zoffline/zoffline:latest
        container_name: zoffline
        networks:
         # 这里的 ip 地址 和 network 名称需要一致
          zoffline:
            ipv4_address: 192.168.0.220
        environment:
           - TZ=Asia/Shanghai
        volumes:
           - ./storage/:/usr/src/app/zwift-offline/storage
        ports:
           - 80:80
           - 443:443
           - 3024:3024/udp
           - 3025:3025
        restart: unless-stopped   
networks:
   # 这里的 ip 地址 和 network 名称需要一致
  zoffline:
    external: true



启动
  • 执行 dc up -d && docker exec -it zoffline sh 即可
  • 启动后访问对应 ip 即可
题外话: macvlan与host网络互通
  • 大体思路是: 多创建一个 macvlan 网络作为中转, 通过对 iptables 添加路由实现互通.
  • 不过因为我的容器 本来就是独立部署的, 所以不需要macvlan与host网络互通.
添加 bot 之后内存占用 1.5GB+
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|图拉丁吧社区

GMT+8, 2025-7-20 22:09 , Processed in 0.106891 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表