以下是我所拥有的:
- 物理计算机(1)
- 我已经在这台计算机上安装了虚拟机(虚拟盒,桥接网络,ubuntu 服务器,ip=192.168.1.80)
- 在这个虚拟机中我已经部署了docker容器(ip=172.17.0.2,gitlab(web应用程序))
我可以从虚拟机 (192.168.1.80) 访问 gitlab (172.17.0.2)。但我需要从物理计算机 (1) 访问它。我该如何获取它?
我是否需要在虚拟机 (192.168.1.80) 上安装 nginx 并将其配置为将 incode 请求路由到 docker 容器? 或者其他什么?
谢谢
更新:
带有选项 proxy_pass 的 Nginx 工作正常,但我想知道是否有更好的解决方案。
答案1
除了现在使用 nginx 作为代理的方式之外,您还可以设置防火墙以将虚拟机上的外部端口重定向到容器。
答案2
您可以将 Docker 容器的公开端口映射到主机端口。但是,如果您将容器映射到端口 80,那么当您想要主机上的另一个容器 Web 应用程序时会发生什么。我更喜欢使用 nginx 进行反向代理设置,甚至有一个容器。