1.查看虚拟机网络配置
可以看出用的是nat模式,子网网段为192.168.66.0-255,网关为192.168.66.2
2.查看虚拟机网关的接口
3.创建一个docker网桥(可以不创建,只是为了方便使用)
docker network create --driver bridge --subnet=172.18.12.0/16 --gateway=172.18.1.1 mynet
4.查看网络配置
其中docker0为默认docker网桥,br-378f232294ea为新创建的网桥
5 配置路由
方法一:
(1)配置windows机器到docker两个网桥(docker0和br-378f232294ea)的路由,下面的网关即为步骤2里的192.168.66.2网关对应的接口地址
#windows到docker0网桥(ip 172.17.0.1)的路由 route add 172.17.0.1 mask 255.255.255.255 192.168.66.1 #windows到br-378f232294ea网桥(ip 172.18.1.1)的路由 route add 172.18.1.1 mask 255.255.255.255 192.168.66.1 # 以上路由说明route add 网段/ip mask 子网掩码 网关
(2)配置docker容器的路由
#route add 网段/ip mask 子网掩码 网关为网桥ip #配置windows到docker0网桥对应容器的路由 route add 172.17.0.0 mask 255.255.0.0 172.17.0.1 #配置windows到br-378f232294ea网桥对应容器的路由 route add 172.18.0.0 mask 255.255.0.0 172.18.1.1
方法二:
#route add 网段/ip mask 子网掩码 虚机ip #添加到docker0网桥和docker0网桥下面所有容器的路由 route add 172.17.0.0 mask 255.255.0.0 192.168.66.36 #添加到br-378f232294ea网桥和br-378f232294ea网桥下面所有容器的路由 route add 172.18.0.0 mask 255.255.0.0 192.168.66.36
6.检查虚拟机是否开启路由转发功能
cat /proc/sys/net/ipv4/ip_forward
如果是1,表示已经开启,如果是0,表示没有开启,需要开启
vim /etc/sysctl.conf
将net.ipv4.ip_forward的值设置成1
net.ipv4.ip_forward=1