0

我一直在阅读许多示例(包括此处以及各种博客和 virtualbox/vagrant 文档),此时我认为我应该能够做到这一点。

我最终想做的是与我的主机上的 docker 守护进程以及我任意启动的所有后续服务进行通信。

为了让它工作,我在我的主机上运行简单的 nginx 容器并确认它工作:

$ docker run --name some-nginx -d -p 8080:80 docker.io/library/nginx:1.17.9
$ curl localhost:8080
> Welcome to nginx!

在我的 Vagrantfile 中,我定义了我的主机专用网络:

config.vm.network "private_network", ip: "192.168.50.4",
  virtualbox__intnet: true

现在在我的guest vagrant box中,我希望我应该能够访问同一个端口:

$ curl localhost:8080
> curl: (7) Failed to connect to localhost port 8080: Connection refused

$ curl 127.0.0.1:8080
> curl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refused

$ curl 192.168.50.4:8080 # I hope not, but maybe this will work?
> curl: (7) Failed to connect to 192.168.50.4 port 8080: Connection refused
4

1 回答 1

0

如果您在 Vagrant 客户机“内部”,则 localhost 将是该机器的本地环回适配器,而不是您的主机的本地环回适配器。

在您使用的 VirtualBox 虚拟化中,您始终可以通过该10.0.2.2地址连接到在您的主机本地主机上运行的服务。见:https ://www.virtualbox.org/manual/ch06.html#network_nat

因此,在您的情况下,Web 服务器在主机上的端口 8080 上运行,使用

curl 10.0.2.2:8080

就意味着成功

于 2020-09-21T14:55:19.127 回答