Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker容器将localhost从127.0.0.1重新映射到我的计算机';IP地址_Docker_Networking - Fatal编程技术网

Docker容器将localhost从127.0.0.1重新映射到我的计算机';IP地址

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应用程序,当我杀死容器时,

我在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应用程序提供服务

我的问题是,docker是如何做到这一点的?为什么?

更多信息:

  • 运行
    docker ps
    显示了
    0.0.0.0:8000->8000/tcp
    的端口映射,我相信这只是意味着我的计算机的端口8000映射到了容器的8000
  • 没有我的
    /etc/hosts
    /private/etc/hosts
    文件可以解释这种行为
  • 当我的wifi打开时,
    localhost:8000
    ip\u地址:8000
    为容器提供服务,但当我断开互联网连接时,
    ip\u地址:8000
    停止为容器提供服务。如果Docker正在重新映射localhost-->设备IP地址,
    localhost:8000
    是否也会停止工作

任何解释都将不胜感激。

您在SO上有最好的用户名。您在SO上有最好的用户名。