我正在关注如何在docker容器中启动基本nginx服务器的following tutorial。但是,示例的nginx docker容器在localhost(0.0.0.0)上运行,如下所示:
同时,当我运行它时出于某种原因它运行在IP 10.0.75.2上:
为什么会发生这种情况有什么特别的原因吗?有没有办法让它像在示例中那样在localhost上运行?
答案 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。