BorisT
@BorisT

Как назначить IP (hostname) контейнеру Docker?

Как назначить IP контейнеру, по которому он был бы доступен из хост-системы (mac, Docker for mac)?
При попытке сделать что-то вроде
docker run --name postgres -d -p 172.17.42.1:5432:5432 postgres

говорит: Error response from daemon: driver failed programming external connectivity on endpoint postgres (d3b1656ba...): Error starting userland proxy: listen tcp 172.17.42.1:5432: bind: cannot assign requested address.

Что, конечно же, наверное, связано с отсутствием моста docker0, о котором говорится в документации. Но вот почему-то Docker for mac его не создает (пробовал ресетить). Пробовал создавать новую сеть (docker network create...), но так же никаких новых интерфейсов ifconfig не показывает.

На 127.0.0.1 биндится (-p 5432:5432) без проблем, но это не очень удобно.
  • Вопрос задан
  • 3547 просмотров
Пригласить эксперта
Ответы на вопрос 1
altinbatir11
@altinbatir11
Мото кросс, мини футбол, фри дайвинг, linux, macOS
Доброго времени. Столкнулся с такой же проблемой. Желаю поделиться решением данной проблемы.
1. Выключить виртуализацию протоколов TCP IP в Хиосе (не факт что в этом дело) но я включил данную опцию.
2. Не нужно прописывать 172/17/42/1:5432 напишите 127/0/0/1:5432 но это на релизе докера 2/20. На релизе 1/19 такой способ не работает и необходим костыль в виде iptables пример 192/168/1/102:5432 так как я использую роутер настроил следующую таблицу. Раздел nat_wormations под меню virtuls_servise пробрасываем порты на нужный нам IP (повторяю платформы докер 1/19) данная схема не заработает на платформе 2/20. В платформе 2/20 исправили данный баг.
Всем удачи.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы