当前位置: 首页 > 面试题库 >

从同样位于boot2docker vm内的Docker容器以本地主机访问主机

茅秦斩
2023-03-14
问题内容

假设我有一台服务器在OSX的8000端口上运行。我的Docker容器如何通过访问它localhost:8000?由于容器中的应用程序不在我的控制范围内,因此我也无法更改主机名。

我已经阅读了前面有关使用--net="host"容器访问主机网络的讨论。但是,我在OSX上,并且Docker在VM内运行,因此Docker容器中的
localhost--net="host"转到了VM,而不是我的真实机器。

然后,我尝试像这样的端口转发解决方法VBoxManage modifyvm "boot2docker-vm" --natpf1 "tcp-port8000,tcp,,8000,,8000";无济于事。

任何建议将不胜感激。


问题答案:

感谢palimpestor的回答,我弄清楚了:

代替--net="host",使用--add-host="localhost:10.0.2.2"

确实:

  • 10.0.2.2是在NAT模式下为来宾网络接口定义的默认网关(参考)。
    阅读: 这是您的主机,从boot2docker看到。

  • --add-host...``localhost 10.0.2.2在/ etc / hosts中添加(参考)

注意:您需要在boot2docker VM VirtualBox设置中设置NAT适配器(我是通过GUI完成的,不知道CLI)。



 类似资料:
  • 我有一个docker应用程序,我使用以下docker compose。yml运行它: 我有一个没有docker化的服务器在我的机器上运行,我可以通过访问它。我希望我的服务能够访问它。 我发现有人建议在我的服务配置中添加以下内容: 但是当我添加这个时,并尝试,我得到。当我尝试<code>curl时,也会出现同样的错误http://host.docker.internal:3000。 我拼命地尝试将端

  • 以下图片: 当我运行这个命令时,我可以在http://localhost:4444/上看到Selenium 任何帮助让这两种方式中的任何一种有效。

  • 问题内容: 我是Docker的新手。 我运行了一个10节点的图像,并在运行的容器中克隆了一个存储库,运行了使用文件监视程序启动服务器的应用程序。我需要访问容器内的代码库,并在Windows主机上运行的IDE中打开它。如果完成了,那么我还希望当我在IDE中更改文件时,这些更改会在容器中引起文件监视程序。 任何帮助表示赞赏。谢谢, 问题答案: 您正在寻找的概念称为卷。您需要启动一个容器并在其中安装主机

  • 我有两个docker容器在我的Mac主机上运行-容器1是docker Hub的Jenkins,容器2是docker Hub的SonarQube。我有两个容器成功运行。我可以通过从我的主机访问Jenkins,我可以通过访问我的SonarQube。 詹金斯容器是这样启动的: SonarQube容器是这样启动的: 难道我不应该能够从我的主机通过它们的内部IP地址访问每个容器吗? 我如何测试一个容器(例如

  • 我在本地机器(Mac)上工作,其中有一个名为sqlvm的遗留虚拟机(这意味着我可以通过http://sqlvm:从本地主机访问这个虚拟机)。现在,我在应该连接到vm的同一个本地主机(我的Mac)中设置了几个docker容器(使用docker-compose)。< code>pymysql会引发一个异常: 如何将外部的“sqlvm”公开给内部 Docker 网络? 编辑:我尝试在yml文件中为相关容