01 macvlan 用于 Docker 网络
在 Docker 中,macvlan 是众多 Docker 网络模型中的一种,并且是一种跨主机的网络模型,作为一种驱动(driver)启用(-d 参数指定),Docker macvlan 只支持 bridge 模式。
下面我们做两个实验,分别验证相同 macvlan 网络和不同 macvlan 网络的连通性。
1.1 相同 macvlan 网络之间的通信
首先准备两个主机节点的 Docker 环境,搭建如下拓扑图示:
1 首先使用 docker network create
分别在两台主机上创建两个 macvlan 网络:
root@ubuntu:~# docker network create -d macvlan --subnet=172.16.10.0/24 --gateway=172.16.10.1 -o parent=enp0s8 mac1
这条命令中,
-
-d
指定 Docker 网络 driver -
--subnet
指定 macvlan 网络所在的网络 -
--gateway
指定网关 -
-o parent
指定用来分配 macvlan 网络的物理网卡
之后可以看到当前主机的网络环境,其中出现了 macvlan 网络:
root@ubuntu:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
128956db798a bridge bridge local
19fb1af129e6 host host local
2509b3717813 mac1 macvlan local
d5b0798e725e none null local
2 在 host1 运行容器 c1,并指定使用 macvlan 网络:
root@ubuntu:~# docker run -itd --name c1 --ip=172.16.10.2 --network mac1 busybox
这条命令中,
-
--ip
指定容器 c1 使用的 IP,这样做的目的是防止自动分配,造成 IP 冲突 -
--network
指定 macvlan 网络
同样在 host2 中运行容器 c2:
root@ubuntu:~# docker run -itd --name c2 --ip=172.16.10.3 --network mac1 busybox文章来源:https://www.toymoban.com/news/detail-454627.html
3 在 host1 c1 中 ping host2 c2:文章来源地址https://www.toymoban.com/news/detail-454627.html
root@ub
到了这里,关于Docker 网络模型之 macvlan 详解,图解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!