解决Docker macvlan网络与宿主机通讯问题

您所在的位置:网站首页 主机线控通讯故障怎么解决 解决Docker macvlan网络与宿主机通讯问题

解决Docker macvlan网络与宿主机通讯问题

2024-03-16 15:56| 来源: 网络整理| 查看: 265

Docker macvlan网络与宿主机通讯

图片引用自:macvlan模式容器与宿主机通信

默认情况下各个macvlan之间可以通讯,但是不能与宿主机进行通讯!! 出现这种情况的原因是为了安全而禁止互通,如宿主机ping容器的ip,尽管他们属于同一网段,但是也是ping不通的,反过来也是。

图片来源网络

解决方案:

可以在宿主机上建立一个macvlan链接,这样就可以通过宿主机上的macvlan与容器内部的macvlan进行连接,从而解决了宿主机与macvlan容器之间不能通讯的问题。

创建容器macvlan示例:

#!/bin/bash #docker 创建macvlan #macvlan_ipv4 docker network create -d macvlan \ --subnet=192.168.123.0/24(你的网络子网号) \ --gateway=192.168.123.1(你的网关) \ -o parent=ovs_eth0(你的父网卡) \ macvlan(新的网络名称) #macvlan_ipv6 docker network create -d macvlan --ipv6 \ --subnet=192.168.123.0/24 --gateway=192.168.123.1 \ --subnet=240e::/60 --gateway=240e::1 \ -o parent=ovs_eth0 \ -o macvlan_mode=bridge \ macvlan(新的网络名称) ——————————————————————————————————————————————————-———————————————————— #docker容器运行macvlan模式 docker run -d \ --name=xxxx \ --network macvlan(你的macvlan网络名称) \ --ip=192.168.0.39(指定macvlan ip地址) \ --dns=192.168.0.29(指定容器dns) \ --restart=always \ --name=movie-robot \ ......其他docker运行参数 _________________________________________________________________________ #配置宿主机和容器通讯 #宿主机创建一个macvlan ip link add macvlan2(一个网络名称) link ovs_eth0(你的物理网卡) type macvlan mode bridge #设置macvlan ip 并启用 ip addr add 192.168.123.240 dev macvlan2 ip link set macvlan2 up #启用新建网络 @增加路由表 ip route add 目的ip(需要建立通讯的macvlan容器 ip) dev macvlan(刚宿主机建立的macvlan) ————————————————————————————————设置完毕————————————————————————————————————


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3