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

时间:2016-06-23 01:48:51

标签: docker dockerfile

我正在关注如何在docker容器中启动基本nginx服务器的following tutorial。但是,示例的nginx docker容器在localhost(0.0.0.0)上运行,如下所示: nginx example image

同时,当我运行它时出于某种原因它运行在IP 10.0.75.2上: enter image description here

为什么会发生这种情况有什么特别的原因吗?有没有办法让它像在示例中那样在localhost上运行?

修改:我尝试使用--net=host,但没有结果: Result of --net=host

1 个答案:

答案 0 :(得分:5)

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

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

docker run --name nginx1 --net=host -d nginx

编辑:从你的评论和重读中我看到你也在询问10.0.75.2 ip地址的来源。这基于您启动docker守护程序的方式。将--ip标志传递给守护程序documentation here时,将分配该IP绑定。如果您在使用泊坞机的虚拟机中运行docker,我希望这是您的虚拟机的IP。

相关问题