我将提取一个码头映像(将以python 3为例)
docker pull python:3.6然后我启动一个码头集装箱
docker run -it -p 127.0.0.1:8000:8000 python:3.6 bash(请注意,在这里,127.0.0.1中的127.0.0.1:8000:8000允许指定目的地,主机IP,而不是源)
因此,如果我在容器内以0.0.0.0启动服务器:
python -m http.server 8000 --bind 0.0.0.0然后,通过访问主机上的http://127.0.0.1:8000,我可以从主机访问容器的服务器,而不会出现任何问题。
但是,如果我的停靠服务器绑定到127.0.0.1,而不是0.0.0.0:
python -m http.server 8000 --bind 127.0.0.1然后从主机访问http://127.0.0.1:8000不起作用。
将容器的回送127.0.0.1绑定到主机回送的正确方法是什么?
发布于 2018-06-21 19:57:31
将容器的回送127.0.0.1绑定到主机回送的正确方法是什么?
你不能这么做。容器中的loopback接口意味着“只有这个容器”,就像主机上的意思是“只有这个主机”。如果一个服务绑定到127.0.0.1,那么就没有办法--从您的主机或从另一个容器--到达该服务。
做你想做的事的唯一方法是:
eth0 ),或localhost地址。发布于 2019-08-09 01:43:46
将容器的回送127.0.0.1绑定到主机回送的正确方法是什么?
在Linux上,可以通过配置Docker容器来使用主机网络命名空间,即:
docker run --network=host这只在Linux上工作,因为在Linux上,您的机器是主机,容器作为容器在您的机器操作系统中运行。在Windows/OSX上,Docker主机作为虚拟机运行,容器在虚拟机中运行,因此它们无法共享计算机网络命名空间。
https://stackoverflow.com/questions/50976362
复制相似问题