docker-compose - VirtualBox - 虚拟机、主机和互联网之间的连接,以及对在虚拟机内运行的容器化服务的访问
问题描述
我有三个运行不同系统的 VirtualBox VM。我需要所有虚拟机在它们之间进行通信并可以访问 Internet。
现在,我为每个 VM 配置了两个网络适配器。第一个网络适配器配置了 NAT 和 DHCP,用于 Internet 访问。第二个网络适配器配置为“仅主机”,具有静态 IP。虚拟机之间的通信正常,但我需要访问在其中一个虚拟机内运行的一些容器化服务。这些服务正在运行docker-compose
。
由于我无法为“仅主机”适配器配置端口转发,因此我正在寻找处理此问题的最佳方法。我在 Internet 上找到的大多数结果都表明我已经做了:NAT + host-only。那么,对于使用静态 IP、相互通信和 Internet 通信并允许访问在其上运行的容器化服务的 VBox VM 的最佳配置是什么?
解决方案
在寻找解决方案一天后,我认为问题可能出在 VBox 网络配置上,我发现 docker-compose 文件将访问限制为仅对 localhost:
ports
- 127.0.0.1:8500:8500
为了解决我的问题,我只是将所有这些信息更改为:
ports
- 8500:8500
现在,我成功访问了在 VBox VM 内的容器中运行的服务。我尝试使用我的第一个配置进行访问,即第一个适配器的 NAT 和第二个适配器的静态 IP 仅主机,并使用桥接配置。我两个都成功了。
推荐阅读
- mysql - SugarCRM 数据库表时间段
- c++ - 错误:没有匹配函数调用 'sf::RenderWindow::draw(
)' SFML C++ - c++ - 有没有一种紧凑的方法来制作 std::optional
::value_or 处理 T 的成员变量 - encryption - OpenSSL 和 Windows CNG 生成的密文对于 AES-128-CFB 是不同的
- javascript - 预期响应代码 250,但得到代码“530”,消息“530-5.7.0 需要身份验证”
- docker - docker image etag、digest、manifest 和 blob 有什么区别?
- c# - 如何在 c# 中实现 (WaitUntilEvent)?
- php - 如何从 laravel 中的远程服务器下载视频文件?
- nginx - 将 Nginx 配置为转发所有请求的反向代理
- python - 将函数应用于带有一些参数的 pandas grouby