Как перенаправить порт при запущенном vagrant box

#networking #docker #vagrant #virtual-machine #port

#создание сетей #docker #vagrant #виртуальная машина #порт #сеть

Вопрос:

У меня есть несколько контейнеров docker, запущенных в vagrant box, предоставляющих различные порты, но я забыл перенаправить эти порты в Vagrantfile. Возможно ли перенаправить необходимые порты без перезагрузки компьютера (инициализация всех этих контейнеров заняла бы много времени), и если нет, то какой самый быстрый метод в этом случае?

Существует ли какой-либо организованный способ обработки сопоставлений портов в vagrant? Сложно заранее знать все необходимые порты. Особенно, когда вы должны добавить новую службу к уже запущенной сети docker внутри vagrant, вам пришлось бы остановить все, чтобы просто предоставить порт на хосте vagrant. И как справиться с ситуацией, когда docker выбирает случайный порт со своего хоста для переадресации портов? Это просто исключено при использовании vagrant? Все кажется таким хрупким даже при небольших изменениях.

Ответ №1:

Да, вы можете. вам нужно будет сделать это непосредственно из VirtualBox

  1. Откройте VirtualBox
  2. Отредактируйте настройки виртуальной машины, которые вы хотите изменить
  3. Перейдите на вкладку Сеть
  4. Перейдите к расширенным правилам пересылки (или переадресации портов, я получил французскую версию vbox, не уверен, каков точный перевод)
  5. Добавьте свои пользовательские правила
  6. Применить

Применяются правила пересылки, и вы можете подключиться к гостевому порту со своего хоста

Комментарии:

1. Есть ли у вас какая-то точка зрения, как организовать перенаправление портов при работе с vagrant и docker? Действительно ли это единственный выбор — заранее знать все необходимые порты, если работа с vagrant API является единственным вариантом для управления виртуальной машиной?

2. во многих случаях при работе с vagrant я предпочитаю использовать частную сеть со статическим IP-адресом и вызывать ее по IP-адресу, поэтому мне не нужно вручную перенаправлять порты. но при необходимости, да, это беспорядок, если вы забыли его (при добавлении нового программного обеспечения или чего-то еще) во многих моих случаях, хотя перезагрузка виртуальной машины происходит достаточно быстро, когда это необходимо

Ответ №2:

Другой способ — открыть вкладку терминала и запустить vagrant ssh с параметрами ssh, необходимыми для настройки туннеля. Это только временно, поэтому вам все равно нужно добавить переадресацию портов в свой Vagrantfile , если вы хотите, чтобы она сохранялась.

 vagrant ssh -- -L 5000:localhost:5000
  

Это перенаправляет порт 5000 на гостевой порт на порт 5000 на хосте.