ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

docker之跨主机通信

2020-01-03 21:57:23  阅读:246  来源: 互联网

标签:主机 通信 网卡 macvlan ip docker root localhost


本地workstations虚拟机server1和server2环境为centOS7.7,安装软件为docker-ce,docker版本为19.03.05
docker安装就不介绍了,直接进主题。
一、准备工作
跨主机需要两个独立的网卡:
server1和server2添加网卡

docker之跨主机通信
docker之跨主机通信
docker之跨主机通信

[root@localhost ~]# ip addr show 查看网卡是否添加成功

docker之跨主机通信
添加成功。

macvlan本身是linxu kernel的模块,本质上是一种网卡虚拟化技术。其功能是允许在同一个物理网卡上虚拟出多个网卡,通过不同的MAC地址在数据链路层进行网络数据的转发,一块网卡上配置多个 MAC 地址(即多个 interface),每个interface可以配置自己的IP,Docker的macvlan网络实际上就是使用了Linux提供的macvlan驱 动。因为多个MAC地址的网络数据包都是从同一块网卡上传输,所以需要打开网卡的混杂模式ip link set eth1 promisc on。

打开server1和server2的ens37网卡的混杂模式,在server1和server2上运行以下命令:
[root@localhost ~]# ip link set ens37 promisc on
[root@localhost ~]# ip addr show ens37

docker之跨主机通信
注意:如果不开启混杂模式,会导致macvlan网络无法访问外界
具体在不使用vlan时,表现为无法ping通路由,无法ping通同一网络内其他主机
在两台主机上各创建macvlan网络
创建macvlan网络不同于桥接模式,需要指定网段和网关(因为要保证跨主机上网段和网关是相同的),并且都得是真实存在的
[root@localhost ~]# docker network create -d macvlan --subnet 172.16.36.0/24 --gateway 172.16.36.254 -o parent=ens37 macvlan #创建名为macvlan的网络
[root@localhost ~]# docker network ls #查看本地网络信息

docker之跨主机通信

创建docker容器
server1:
[root@localhost ~]# docker run -it --name vm01 --network=macvlan --ip=172.16.36.101 centos
[root@1f89fd5f37ff /]# ip addr

docker之跨主机通信

[root@1f89fd5f37ff /]# ping 172.16.36.100

docker之跨主机通信
server2:
[root@localhost ~]# docker run -it --name vm02 --network=macvlan --ip=172.16.36.100 centos
[root@e8da7e4ef2b3 /]# ip addr

docker之跨主机通信

[root@e8da7e4ef2b3 /]# ping 172.16.36.101

docker之跨主机通信

跨主机通信就这样配置完了。

标签:主机,通信,网卡,macvlan,ip,docker,root,localhost
来源: https://blog.51cto.com/3001441/2464181

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有