关于Docker端口映射中0.0.0.0含义的技术咨询
关于Docker端口映射中
0.0.0.0的疑问解答 你理解的没错,0.0.0.0:5000里的0.0.0.0确实指代主机的所有网络接口,这里的“网络接口”可以简单理解为主机上用来连接不同网络的“通道”,常见类型包括:
- 物理网络接口:比如主机连接有线局域网的以太网接口(通常命名为
eth0、enp0s3这类),或者连接WiFi的无线接口(wlan0等) - 回环接口:也就是
127.0.0.1,是主机内部自己访问自己的专属接口 - 虚拟网络接口:比如Docker自动创建的虚拟网桥接口、虚拟机生成的接口,或者VPN连接后出现的虚拟接口
当Docker把端口映射设置为0.0.0.0:5000->5000/tcp时,效果是:
不管请求是从主机自身发起(通过127.0.0.1:5000)、同一局域网内的其他设备发起(通过主机的局域网IP地址+5000端口),甚至是外网能访问到主机的情况下(通过主机的公网IP+5000端口),只要请求命中主机的5000端口,都会被转发到容器内部的5000端口。
举个对比例子:
如果映射时指定了特定IP,比如127.0.0.1:5000->5000/tcp,那只有主机自己能通过127.0.0.1:5000访问容器服务;如果指定的是主机的局域网IP(比如192.168.1.100:5000->5000/tcp),那只有同一局域网内的设备能通过这个IP访问,主机自身用127.0.0.1都无法访问。
内容的提问来源于stack exchange,提问作者user842225
相关产品推荐
相关产品推荐

