Docker for windows 容器内网通过独立IP直接访问的方法

时间:2024-05-22 13:30:19

Docker官方推荐我们通过端口映射的方式把Docker容器的服务提供给宿主机或者局域网其他容器使用。一般过程是:

1、Docker进程通过监听宿主机的某个端口,将该端口的数据包发送给Docker容器

2、宿主机可以打开防火墙让局域网其他设备通过访问宿主机的端口进而访问docker的端口

但在实际使用中并不是很方便。

以下在win10环境中队DockerDocker容器通过独立IP暴露给局域网的方法进行记录。

Docker的默认启动方式中,会产生一块虚拟网卡,然后容器内自行分配单独的网卡和IP。可以在宿主机上通过ipconfig命令看到这个虚拟网卡。
Docker for windows 容器内网通过独立IP直接访问的方法

打开一个容器,可以看到容器ip地址为自动分配的。
Docker for windows 容器内网通过独立IP直接访问的方法

此时通过Windows宿主机是无法Ping通容器的
Docker for windows 容器内网通过独立IP直接访问的方法

通过配置路由表实现ip互通

Docker for windows 容器内网通过独立IP直接访问的方法
暴露给宿主机的为10.0.75.1

添加路由

route -p add 172.17.0.0 MASK 255.255.255.0 10.0.75.2
Docker for windows 容器内网通过独立IP直接访问的方法
重新ping容器地址,此时就可以Ping通了
Docker for windows 容器内网通过独立IP直接访问的方法