架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1813|回复: 3

【实战】Docker 使用 Macvlan 给容器设置独立 IP 地址

[复制链接]
发表于 2022-11-19 12:01:56 | 显示全部楼层 |阅读模式
需求:想通过路由器的 DHCP 服务给 Docker 容器分配独立的局域网 IP 地址,这样就可以将开发的 ASP.NET Core 应用部署到多台服务器上面(需要将应用部署到多台服务器,实现高可用),然后都可以互相调通。
一些应用程序,尤其是遗留应用程序或监控网络流量的应用程序,期望直接连接到物理网络。在这种情况下,您可以使用macvlan网络驱动程序为每个容器的虚拟网络接口分配一个 MAC 地址,使其看起来像是一个直接连接到物理网络的物理网络接口。在这种情况下,您需要在您的 Docker 主机上指定一个物理接口用于macvlan. 以及 . 的子网和网关macvlan。您甚至可以macvlan使用不同的物理网络接口隔离您的网络。


【转】网卡也能虚拟化?网卡虚拟化技术 macvlan 详解
https://www.itsvse.com/thread-10388-1-1.html
首先,需要将宿主机的物理网卡设置允许“混杂模式”模式,以 ESXI 为例,设置虚拟交换机如下:

QQ截图20221119105159.jpg

系统环境如下:

CentOS Linux release 7.9.2009 (Core)
Docker version 20.10.20, build 9fdeb9c


在 CentOS 7 宿主机安装 Docker 服务。(略)



设置 net.ipv4.ip_forward = 1,通过 sysctl -a 可以查看当前配置,如果不是 1,请修改成 1,教程略。主要是目的是当 linux 主机有多个网卡时一个网卡收到的信息是否能够传递给其他的网卡,如果设置成 1 的话,可以进行数据包转发。

当安装完 Docker 服务后,创建一个 macvlan 网络,命令如下:

--ip-range:决定将 subset 分配给 Docker 192.168.50.192/27,它是从 192.168.50.192 开始到 192.168.50.223 结束的 32 个地址范围。
--gateway:设置网关地址,一般是路由器 ip 地址,请根据自己实际情况设置
-o parent:父接口,也就是主机物理网卡名称,根据实际情况设置,通过 ip a 可以查看。


创建完成后,可以通过如下命令查看:

QQ截图20221119114127.jpg

尝试启动一个 busybox 容器并设置使用新建的 macvlan 网络,命令如下:

提示:如果需要给容器设置 ip 地址,请使用 --ip 参数,示例:--ip=192.168.50.210

查看容器的 ip 地址,可以通过如下命令:

QQ截图20221119114438.jpg

当然,也可以进入容器内部查看,命令如下:

QQ截图20221119114656.jpg

我们使用局域网的其它机器,尝试 ping 容器的 ip 地址,可以发现可以 ping 通,如下图:

QQ截图20221119114913.jpg

查看路由器的 IP与MAC映射表,可以看到 docker 容器的 mac/ip 地址和路由器上面的一致,如下图:

QQ截图20221119115106.jpg

再尝试启动一个 redis 容器并设置使用新建的 macvlan 网络,命令如下:

CentOS 宿主机本身也有一个 redis 应用在运行,并且也使用的是 6379 端口,我们新建一个 redis 容器应用也使用 6379 端口,也就是同一个宿主机 6379 端口被两个不同的 ip 监听,试一下能否正常工作。

测试结果都是可以正常工作的,如下图:

QQ截图20221119115843.jpg

QQ截图20221119115937.jpg

参考资料

https://docs.docker.com/network/macvlan/




上一篇:【转】网卡也能虚拟化?网卡虚拟化技术 macvlan 详解
下一篇:【实战】使用 FRP 内网穿透实现远程桌面连接
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2022-11-28 19:30:39 | 显示全部楼层
学习学习。。。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-3-12 09:18:32 | 显示全部楼层
学习学习
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2023-4-22 15:45:19 | 显示全部楼层
感谢大佬分享。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-4-19 15:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表