Docker容器将localhost从127.0.0.1重新映射到我的计算机';IP地址
我在8000端口后台运行Docker容器。我还在端口8000上运行Django应用程序。奇怪的是,这两个应用程序都可以运行——我可以访问Docker应用程序的Docker容器将localhost从127.0.0.1重新映射到我的计算机';IP地址,docker,networking,Docker,Networking,我在8000端口后台运行Docker容器。我还在端口8000上运行Django应用程序。奇怪的是,这两个应用程序都可以运行——我可以访问Docker应用程序的localhost:8000,以及Django应用程序的127.0.0.1:8000 我做了一些挖掘,我相信Docker以某种方式重新映射了localhost,以指向我的计算机的IP地址,而不是127.0.0.1的环回地址。这是确认的,因为我网络上的其他设备可以通过ip\u地址:8000访问我计算机上的Docker应用程序,当我杀死容器时,
localhost:8000
,以及Django应用程序的127.0.0.1:8000
我做了一些挖掘,我相信Docker以某种方式重新映射了localhost,以指向我的计算机的IP地址,而不是127.0.0.1
的环回地址。这是确认的,因为我网络上的其他设备可以通过ip\u地址:8000
访问我计算机上的Docker应用程序,当我杀死容器时,localhost:8000
恢复为我的Django应用程序提供服务
我的问题是,docker是如何做到这一点的?为什么?
更多信息:
- 运行
显示了docker ps
的端口映射,我相信这只是意味着我的计算机的端口8000映射到了容器的80000.0.0.0:8000->8000/tcp
- 没有我的
或/etc/hosts
文件可以解释这种行为/private/etc/hosts
- 当我的wifi打开时,
和localhost:8000
为容器提供服务,但当我断开互联网连接时,ip\u地址:8000
停止为容器提供服务。如果Docker正在重新映射localhost-->设备IP地址,ip\u地址:8000
是否也会停止工作localhost:8000
任何解释都将不胜感激。您在SO上有最好的用户名。您在SO上有最好的用户名。