OpenWRT 中创建docker Openwrt和其他宿主机中的docker容器通信

OpenWRT 中使用创建docker Openwrt和其他宿主机中的docker容器通信

网络拓扑

首先网络得支持多拨,否则没有意义,之所以这么折腾,是因为直接OpenWRT多拨的情况下,网心云从原先的映射公网型变成全锥型
在这里插入图片描述

openwrt主路由,
cpu:Intel® Celeron® CPU J1900 @ 1.99GHz
内存:4G
网口:6口intel I211 千兆网口
原先计划是PVE,然后跑4个OpenWRT虚拟机,然而带不动,基本一天死机一回

后面改成现在这种模式:
局域网上网只用了0口和1口,有多余的网口用于docker openwrt
pve虚拟机跑docker 网心云
局域网划分了4个网段
192.168.1.0/25 网关192.168.1.126
192.168.1.160/27 网关192.168.1.190
192.168.1.192/27 网关192.168.1.222
192.168.1.224/27 网关192.168.1.254

一、准备

1、openwrt镜像,

可以根据下面这个去扩容,原始镜像的软件空间太小了,版本自己下载最新的
https://blog.csdn.net/yuanmingming521/article/details/126741073

2、安装pve

网上超多教程,这里就不写了
替换国内的源

 vi /etc/apt/sources.list
 #把其余的注释掉
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free 
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free 
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

删除PVE企业源

vi /etc/apt/sources.list.d/pve-enterprise.list
#注释掉
#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise

安装docker

apt update
apt install docker.io

二、PVE配置

1、网络配置

登录pve
https://ip:8006
创建linux bridge
在这里插入图片描述

2、创建docker network

登录PVE后台,创建macvlan

docker network create -d macvlan --subnet=192.168.1.160/27 --gateway=192.168.1.190 -o parent=vmbr1 -o macvlan_mode=bridge net190


root@:~# docker network ls
NETWORK ID     NAME      DRIVER    SCOPE
110ea0f854dc   bridge    bridge    local
74e0f19ab3a1   host      host      local
dc7b6ee9f6c1   net190    macvlan   local
3078d2dcba7c   net222    macvlan   local
0cf90f04cffa   net254    macvlan   local
4de979658c7e   netlan    macvlan   local
3f03cc1590b4   netwan    macvlan   local
d861ece9492e   none      null      local
root@:~# 

三、OpenWRT配置

1、登录openwrt,在网络–>接口–>设备,添加设备配置

设备类型:选择maclan
基设备:选择对应的物理网口
模式:桥接(允许mac vlan间直接通信)
其余默认
在这里插入图片描述

2、配置接口ip

网络–>接口–>添加新接口
名称:br2(方便记忆,第二个网口)
协议:静态IP或者不配置协议,我这里选择的静态ip
注意地址不要配置成网段的第一个可用ip,包括后面建立容器也一样,不要使用第一个可用的ip
设备:选择对应的接口
在这里插入图片描述

点击创建接口,配置相应网段的空闲ip,wan口的macvlan 不配置ip

在这里插入图片描述
最后保存并应用

根据上面的步骤创建其余的接口

3、创建docker network

登录openwrt后台,创建网络

docker network create -d macvlan --subnet=192.168.1.160/27 --gateway=192.168.1.190 -o parent=eth2mac0 -o macvlan_mode=bridge net190
#下面这个网段随便配置的
docker network create -d macvlan --subnet=192.168.100.0/24 --gateway=192.168.100.254 -o parent=eth1mac0 -o macvlan_mode=bridge netwan

eth2mac0 这个是连接pve的网口
eth1mac0 这是连接光猫的网口

4、创建docker OpenWRT

docker run --name op190 -d --network net190  --restart=always --privileged garethwang/openwrt-22.03.2-x86-64  /sbin/init

docker network connect netwan op190

5、修改OpenWRT的配置

5.1、修改docker openwrt的lan口ip
docker exec -it op190 sh

vi /etc/config/network

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.190' 
        option netmask '255.255.255.224'
        option ip6assign '60'

ctrl+d 

docker restart op190
5.2、登录docker op190 配置网络和安装软件

docker和宿主机是可以ping通的,但是电脑和docker在不同网段,ping不通,用xshell或者securecrt 登录到openwrt主路由后,再跳转,
在这里插入图片描述
网页输入 127.0.0.1:2555,密码是password
在这里插入图片描述
配置pppoe拨号上网
在这里插入图片描述

5.3、安装必要的软件

修改opkg 源
在这里插入图片描述
将上面位置的配置替换成如下的配置

src/gz openwrt_core https://mirrors.aliyun.com//openwrt/releases/22.03.2/targets/x86/64/packages/
src/gz openwrt_base  https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/base/  
src/gz openwrt_luci https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/luci/
src/gz openwrt_packages https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/packages/
src/gz openwrt_routing https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/routing/
src/gz openwrt_telephony https://mirrors.aliyun.com/openwrt/releases/22.03.2/packages/x86_64/telephony

然后安装luci-i18n-base-zh-cn和luci-i18n-upnp-zh-cn,其他也不需要了

四、测试

在pve主机中创建容器

docker run -dit --name=wxy162 --net=net190 --ip=192.168.1.162 --privileged=true --tmpfs /run --tmpfs /tmp -v /mnt/wxy4/wxy4:/storage:rw     registry.hub.docker.com/onething1/wxedge

进入docker openwrt 去pingpve中的容器地址

root@OPHOME:~# docker exec -it op190 sh


BusyBox v1.35.0 (2022-10-14 22:44:41 UTC) built-in shell (ash)

/ # ping 192.168.1.162
PING 192.168.1.162 (192.168.20.162): 56 data bytes
64 bytes from 192.168.1.162: seq=0 ttl=64 time=0.571 ms
64 bytes from 192.168.1.162: seq=1 ttl=64 time=0.450 ms
64 bytes from 192.168.1.162: seq=2 ttl=64 time=0.449 ms
64 bytes from 192.168.1.162: seq=3 ttl=64 time=0.680 ms
^C
--- 192.168.1.162 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.449/0.537/0.680 ms
/ # 

五、最终结果

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值