【问题标题】:How to forward port on running vagrant box如何在运行 vagrant box 上转发端口
【发布时间】:2016-10-21 13:24:09
【问题描述】:

我有多个 docker 容器在 vagrant box 中运行,暴露了各种端口,但我忘记在 Vagrantfile 中转发这些端口。是否可以在不重新启动机器的情况下转发必要的端口(初始化所有这些容器需要很长时间),如果不能,在这种情况下最快的方法是什么?

是否有一些有组织的方式来处理 vagrant 中的端口映射?事先知道所有需要的端口是很痛苦的。尤其是当您必须向 vagrant 中已经运行的 docker 网络添加新服务时,您将不得不停止一切以在 vagrant 主机上公开端口。以及如何处理docker从其主机中选择随机端口进行端口转发的情况?这只是在使用 vagrant 时被排除了吗?一切都感觉如此脆弱,哪怕是一点点改变。

【问题讨论】:

    标签: networking docker vagrant virtual-machine port


    【解决方案1】:

    是的,你可以。您需要直接从 VirtualBox 进行操作

    1. 打开 VirtualBox
    2. 编辑要更改的 VM 的设置
    3. 转到“网络”选项卡
    4. 转到高级然后转发规则(或端口转发,我得到了法语版本的 vbox,不知道确切的翻译是什么)
    5. 添加您的自定义规则
    6. 申请

    应用转发规则,您可以从主机连接到访客端口

    【讨论】:

    • 您有什么观点,在使用 vagrant 和 docker 时如何保持端口转发的组织性?如果使用 vagrant API 是管理 vm 的唯一选择,那么事先了解所有必要的端口真的是唯一的选择吗?
    • 在许多情况下,与 vagrant 一起工作时,我更喜欢使用具有静态 IP 的专用网络并使用 IP 调用它,因此我不需要处理端口转发。但是在我的许多情况下,如果您忘记了一个(添加新软件或其他东西时),在需要时是一团糟,尽管在需要时重新加载 VM 足够快
    【解决方案2】:

    另一种方法是打开终端选项卡并使用设置隧道所需的 ssh 选项运行 vagrant ssh。这只是暂时的,因此如果您希望它持续存在,您仍然需要将端口转发添加到您的Vagrantfile

    vagrant ssh -- -L 5000:localhost:5000
    

    这会将客户机上的端口 5000 转发到主机上的端口 5000。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-27
      • 2015-07-05
      • 2019-02-21
      • 1970-01-01
      相关资源
      最近更新 更多