宿主机网络中其它机器与Docker容器网络互通配置

前言

目前项目采用微服务架构进行开发,Nacos和其它服务部署到Docker中,Docker中容器采用的网络默认是桥接模式(Bridge),默认的子网码是172.17.0.1/16;宿主机是192.168.1.231;同宿主机其它网络也是192.168.1.39;同事提出本地机器想与Docker中容器互通,访问方式如下:
本地机器直接ping 容器IP(172.17.0.5)是访问不通的,因为处于不通的网段,在百度上查找了半天也没有找到合适的方法,自己通过摸索,采用macvlan+docker network connect进行连接。

1. docker的macvlan网络创建

在Docker 宿主机执行如下命令:

 docker network  create  -d macvlan \
    --subnet=192.168.1.0/16 \
    --gateway=192.168.1.1 \
    -o parent=eth33 macvlan10

通过以下命令查找docker网络命令如下:

docker network ls

可以看到macvlan10已经在该列表中,说明该命令已经成功

2. 把Docker中容器加入到macvlan10网络中

docker network connect macvlan10 容器ID/名称

3. 验证

在本机执行 ping 容器IP,可以看到已经互通

4. 总结

在完成以上操作之后,可以通过docker inspect 容器ID,可以看到在容器的网络配置中增加了macvlan10网关的配置,如下:

希望能够给大家帮助,如果还有更好的方法,还希望大家分享!
坚持写博客

以上配置之后,会出现macvlan模式容器与宿主机通信问题,可以通过如下配置进行设置
【Docker】macvlan网络模式下容器与宿主机互通
https://rehtt.com/index.php/archives/236/

posted @   sjkzy  阅读(1289)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示