在 Ubuntu 上的 VirtualBox 上 运行 docker 时是否可以避免端口转发?
is it possible to avoid port forwarding when running docker on VirtualBox on Ubuntu?
我希望任何人都可以通过 [server-ip-address]:80 访问我的服务器,但在此之前我需要更新 VirtualBox 网络设置中的端口转发设置。 (因为docker-machine使用VirtualBox作为hypervisor)
有没有办法绕过这个?因为当我按照这里的 docker 教程时:
到最后,他们只是简单地使用localhost连接到docker-machine ip。我怎样才能做到这一点?
不使用端口转发就无法联系 docker。原因是,docker 基于 docker0(虚拟适配器)和网桥连接创建了自己的网络。 docker 的这种方法限制了此容器之外的任何应用程序与其通信,除非您公开任何端口(或使用其他机制)应用程序。
这是 docker 的一项安全功能,因为现在只能通过显式公开端口来访问应用程序。
回到您最初的问题,尝试在没有端口转发的情况下在本地主机外部公开 docker 应用程序不是一个好主意。虽然,docker 允许您创建覆盖网络以创建跨越多台机器的网络。您可能对 kubernetes 之类的东西感兴趣,以公开和扩展您的应用程序。
我希望任何人都可以通过 [server-ip-address]:80 访问我的服务器,但在此之前我需要更新 VirtualBox 网络设置中的端口转发设置。 (因为docker-machine使用VirtualBox作为hypervisor)
有没有办法绕过这个?因为当我按照这里的 docker 教程时:
到最后,他们只是简单地使用localhost连接到docker-machine ip。我怎样才能做到这一点?
不使用端口转发就无法联系 docker。原因是,docker 基于 docker0(虚拟适配器)和网桥连接创建了自己的网络。 docker 的这种方法限制了此容器之外的任何应用程序与其通信,除非您公开任何端口(或使用其他机制)应用程序。
这是 docker 的一项安全功能,因为现在只能通过显式公开端口来访问应用程序。
回到您最初的问题,尝试在没有端口转发的情况下在本地主机外部公开 docker 应用程序不是一个好主意。虽然,docker 允许您创建覆盖网络以创建跨越多台机器的网络。您可能对 kubernetes 之类的东西感兴趣,以公开和扩展您的应用程序。