docker内容器与宿主机相同网段互通的解决方案
这几天配docker,解决容器和宿主机处于同一网段且互通的问题,找遍全网,没有看到合适的解决方案,大部分都是粘贴,从个别同学那得到了一些启示
终于完美解决
现记录下来,给日后需要的同学一个完整的借鉴,让大家少走弯路(老实说,很不喜欢操作配置,浪费时间。。。。)
配置情况:
windows上vmware,装centos7, docker运行在centos7上
几个关键点如下:
1)centos7网卡(ens33)设置混杂模式
ip link set ens33 promisc on //注意:此处ens33为我的centos下的网卡名称,您的网卡名称需要具体查询一下,命令:ip addr
第二步:创建macvlan网络
docker network create -d macvlan --subnet=192.168.1.0/24 --ip-range=192.168.1.0/24 -o macvlan_mode=bridge -o parent=ens33 macvlan
创建成功,可以查询,命令:docker network ps
图内第三行,macvlan就是刚创建的(其他三个为 docker预定义的,不可删除,也删不掉)
第三步:创建容器并启动 docker run -itd --network=mymacvlan --ip=192.168.1.44 --name=test20centos1013 centos
第四步:进入容器,验证
docker exec -it test20centos1013 /bin/bash
1.5为我的windows ip
windows端测试:
小坑注意:如果第4步Ping不通,可以去查一下window主机的防火墙(关闭)。
对于集中测试就方便多了。
完美。