Windows访问Linux虚拟机里面的Docker容器

声明

通过Windows来访问Docker容器的IP
在这里插入图片描述

查看IP并测试

1)、查看Linux的IP地址,以及查看Docker默认IP
在这里插入图片描述

2)、查看Docker 容器IP

1
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称

在这里插入图片描述

3)、测试
》》》ping测试
在这里插入图片描述

》》》浏览器服务测试,此时访问172.17.0.3失败
在这里插入图片描述

解决并测试

1)、给Windows添加路由
在这里插入图片描述

2)、测试
》》》ping测试
在这里插入图片描述

》》》浏览器服务测试,此时访问172.17.0.3成功了
在这里插入图片描述

声明&疑问

0)、已经可以通过Linux访问了,为什么还要去访问Docker容器呢?我为什么要这样做?
答:我使用Docker 安装了Seata容器,但不能不知道为什么默认访问的是172.17.0.4,是这个Seata容器的IP
在这里插入图片描述
在这里插入图片描述

1)、需要注意的地方
、首先,Windows要和Linux互ping通。可以参考虚拟机网络设置
、第二,容器要是启动状态,容器要不启动的话,我们肯定浏览器是访问失败的
、第三,要确认Windows,Linux,Docker容器,三个的IP地址。

2)、一些说明
、这里的172.17.0.0是Docker的子网IP,16是掩码,对应255.255.0.0,也就是说172.17.0.0这个子网下面可以建立(2的16次方-1=65535)个IP地址,为什么-1,因为子网172.17.0.0自己也占一个
、查看Docker子网IP
在这里插入图片描述
、再说明:docker run --network 网络名称 ...如果不指定,默认网络名称就是bridge。

3)、一些疑问?
、为什么可以ping通网关172.17.0.1,却不能ping通172.17.0.3呢?
、但却能浏览器进行访问,也可以说访问是没问题的,却ping不通。
、猜测:Windows访问172.17.0.0/16 这个网段下的所有都经过网关进行中间件过滤,使我们可以达到正常访问的效果。