Docker Macvlan 应用部署

Posted xiangsikai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker Macvlan 应用部署相关的知识,希望对你有一定的参考价值。

Docker Macvlan 应用部署

MacVLAN有两种桥接模式

  • Bridge模式:不创建子接口的情况下直接去桥接物理接口。直接桥接到与宿主级的同网段。
  • VLAN Bridge模式:创建子接口去桥接物理接口。可划分多个VLAN。

Macvlan Bridge模式 容器专属网络

1、节点1节点2操作:创建macvlan网络

docker network create -d macvlan --subnet=172.100.1.0/24 --gateway=172.100.1.1 -o parent=ens33 macvlan_net
技术分享图片
docker network create 创建网络
-d 指定网络驱动程序为macvlan
--subnet 指定一个子网段
--gateway 指定网关
-o parent=ens33 指定宿主接口
macvlan_net 自定义网络名称
命令解析
技术分享图片
命令:docker network ls
NETWORK ID          NAME                           DRIVER              SCOPE
0a48ab454840        macvlan_net                    macvlan             local
查看网络

注:如果需要访问外网,需要将网络设置为与宿主级相同网络下。

注:本地不可访问,因为桥接的本地网络。

注:单个网卡只能绑定一次如重复添加会报如下错误。

技术分享图片
# ens33网卡已被绑定,不多次绑定。
Error response from daemon: network dm-0a48ab454840 is already using parent interface ens33

# 删除绑定网卡网络集
docker network rm ID号
报错

2、测试通信

macvlan-01# docker run -it --net macvlan_net --ip=172.100.1.10 busybox
macvlan-02# docker run -it --net macvlan_net --ip=172.100.1.11 busybox ping 172.100.1.10
docker run -it --net macvlan_net --ip=172.100.1.11 busybox ping 172.100.1.10
PING 172.100.1.10 (172.100.1.10): 56 data bytes
64 bytes from 172.100.1.10: seq=0 ttl=64 time=0.949 ms
64 bytes from 172.100.1.10: seq=1 ttl=64 time=0.316 ms
64 bytes from 172.100.1.10: seq=2 ttl=64 time=0.317 ms
64 bytes from 172.100.1.10: seq=3 ttl=64 time=0.310 ms

Macvlan VLAN Bridge模式 容器专属网络

1、节点1节点2操作:创建一个VLAN,VLAN ID 50

# ip link add link 宿主网卡 name 宿主网卡名字.子网卡名称id type vlan id 50
ip link add link ens33 name ens33.50 type vlan id 50
# 重启docker激活网卡
systemctl restart docker

2、节点1节点2操作:创建Macvlan网络

docker network create -d macvlan --subnet=172.99.0.0/24 --gateway=172.99.0.1 -o parent=ens33.50 macvlan_net99
技术分享图片
docker network create 创建网络
-d 指定网络驱动程序为macvlan
--subnet 指定一个子网段
--gateway 指定网关
-o parent=ens33 指定宿主接口
macvlan_net99 自定义网络名称
命令解析
技术分享图片
命令:docker network ls
NETWORK ID          NAME                           DRIVER              SCOPE
f3b3b084f580        macvlan_net99                  macvlan   
查看网络

3、测试互通

macvlan-01# docker run -it --net macvlan_net99 --ip=172.99.0.10 busybox
macvlan-02# docker run -it --net macvlan_net99 --ip=172.99.0.11 busybox ping 172.99.010

注:像这样创建多个子网卡,来实现划分多个VLAN环境。

 

以上是关于Docker Macvlan 应用部署的主要内容,如果未能解决你的问题,请参考以下文章

docker部署Macvlan实现跨主机网络通信

docker中macvlan网络模式

Docker容器跨主机多网段通信解决方案

docker从零开始网络Macvlan

Docker的bridge和macvlan两种网络模式

macvlan 网络隔离和连通 - 每天5分钟玩转 Docker 容器技术(57)