如何在localhost上通过默认IP运行docker容器?

sga*_*dev 4 docker dockerfile

我正在按照以下教程介绍如何在docker容器中启动基本的nginx服务器.但是,示例的nginx docker容器在localhost(0.0.0.0)上运行,如下所示: nginx示例图像

同时,当我运行它时出于某种原因它运行在IP 10.0.75.2上: 在此输入图像描述

这有什么特别的原因吗?有没有办法让它像在示例中一样在localhost上运行?


编辑:我尝试使用--net=host但没有结果: --net = host的结果

BMi*_*tch 6

默认网络已桥接.由于该选项,0.0.0.0:49166->443显示了容器中的公开端口到主机上的高级端口的端口映射-P.您可以通过将该标志更改为-p 8080:80 -p 443:443将主机映射上的端口8080和443 更改为容器来手动映射特定端口.

您还可以根据要求将默认网络更改为主机网络.这消除了容器提供的一些隔离和保护,并限制了您在容器之间配置集成的能力,这就是它不是默认选项的原因.那个语法是:

docker run --name nginx1 --net=host -d nginx
Run Code Online (Sandbox Code Playgroud)

编辑:从你的评论和重读我看到你也在询问10.0.75.2 ip地址的来源.这基于您启动docker守护程序的方式.在此处--ip标志传递给守护程序文档时,将分配该IP绑定.如果你在带有docker-machine的虚拟机中运行docker,我希望这是你的vm的IP.

  • 你不能ping端口.它看起来像是有效的.尝试使用telnet或netstat检查端口8080 (2认同)