#networking #docker #vagrant #virtual-machine #port
#создание сетей #docker #vagrant #виртуальная машина #порт #сеть
Вопрос:
У меня есть несколько контейнеров docker, запущенных в vagrant box, предоставляющих различные порты, но я забыл перенаправить эти порты в Vagrantfile. Возможно ли перенаправить необходимые порты без перезагрузки компьютера (инициализация всех этих контейнеров заняла бы много времени), и если нет, то какой самый быстрый метод в этом случае?
Существует ли какой-либо организованный способ обработки сопоставлений портов в vagrant? Сложно заранее знать все необходимые порты. Особенно, когда вы должны добавить новую службу к уже запущенной сети docker внутри vagrant, вам пришлось бы остановить все, чтобы просто предоставить порт на хосте vagrant. И как справиться с ситуацией, когда docker выбирает случайный порт со своего хоста для переадресации портов? Это просто исключено при использовании vagrant? Все кажется таким хрупким даже при небольших изменениях.
Ответ №1:
Да, вы можете. вам нужно будет сделать это непосредственно из VirtualBox
- Откройте VirtualBox
- Отредактируйте настройки виртуальной машины, которые вы хотите изменить
- Перейдите на вкладку Сеть
- Перейдите к расширенным правилам пересылки (или переадресации портов, я получил французскую версию vbox, не уверен, каков точный перевод)
- Добавьте свои пользовательские правила
- Применить
Применяются правила пересылки, и вы можете подключиться к гостевому порту со своего хоста
Комментарии:
1. Есть ли у вас какая-то точка зрения, как организовать перенаправление портов при работе с vagrant и docker? Действительно ли это единственный выбор — заранее знать все необходимые порты, если работа с vagrant API является единственным вариантом для управления виртуальной машиной?
2. во многих случаях при работе с vagrant я предпочитаю использовать частную сеть со статическим IP-адресом и вызывать ее по IP-адресу, поэтому мне не нужно вручную перенаправлять порты. но при необходимости, да, это беспорядок, если вы забыли его (при добавлении нового программного обеспечения или чего-то еще) во многих моих случаях, хотя перезагрузка виртуальной машины происходит достаточно быстро, когда это необходимо
Ответ №2:
Другой способ — открыть вкладку терминала и запустить vagrant ssh
с параметрами ssh, необходимыми для настройки туннеля. Это только временно, поэтому вам все равно нужно добавить переадресацию портов в свой Vagrantfile
, если вы хотите, чтобы она сохранялась.
vagrant ssh -- -L 5000:localhost:5000
Это перенаправляет порт 5000 на гостевой порт на порт 5000 на хосте.