OpenWrt Docker Macvlan连接网络

楔子

入手百里后就想着让其物尽其用,就在打算在上面跑些Docker,比如博客或者其它一些服务。但有些服务需要独立IP,以方便管理或使用。就按之前在群晖上创建Macvlan网络的方法,创建一个Docker Macvlan网络,再额外创建一个Macvlan类型的桥接网络让Macvlan网络上的容器能与宿主机通讯。但是创建后这招在OpenWrt上不灵了,Macvlan网络上的容器死活不能访问OpenWrt,不能访问OpenWrt也就不能访问互联网。

就在Google上搜索了一下也没有搜索到有用的信息,然后就在Docker论坛发帖咨询此事,到了深夜写这篇文章时Docker论坛也没有回帖。今晚闲着没事就又Google了一下,偶然发现了解决办法,这里记录下来以方便以后使用。

其实这里并不是使用Macvlan网络,而是使用的桥接的方式,所以标题和本篇文章解决方法根本不是一回事,只是为了方便大家通过搜索引擎找到我这篇文章,给大家解决此问题。

正文

首先在创建桥接网络。名称随意;驱动选择网桥设备;选项填写com.docker.network.bridge.name=br-lan,填写完后要点击后面的+号,就像我的图片一样。子网填写OpenWrt的网段加子网掩码,网关填写OpenWrt的IP。

然后在创建容器时选择网建创建的网络以及要分配给该容器的IP。

OpenWrtDockerMacvlan 2

然后运行该容器。可以看到容器可以ping通OpenWrt,当然能ping通OpenWrt也能ping通网络,这样该容器就可以访问网络了。

OpenWrtDockerMacvlan 3

如果你是使用的Portainer可以按照以下示例创建该类型网络。

OpenWrtDockerMacvlan 5

然后给容器分配网络和设置IP地址即可。

OpenWrtDockerMacvlan 4

或者如果你喜欢使用命令行:

				
					docker network create -d bridge \
--subnet=10.10.10.0/24 --gateway=10.10.10.1 \
-o "com.docker.network.bridge.name"="br-lan" vlan
				
			
0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论!x