Как сделать static ip для Docker-контейнера?

Открыл для себя Docker. В пределах одной машины хочу поднять два Docker-контейнера (в одном apache+php в другом mysql), которые должны взаимодействовать между собой по tcp (в будущем планируется разнос на разные сервера)

Собственно вопрос: как быть, когда при перезапуске Docker-контейнера изменяется его ip-адрес?
То есть первый контейнер не сможет подключиться ко второму, если его перезапустить.
  • Вопрос задан
  • 4938 просмотров
Пригласить эксперта
Ответы на вопрос 3
nazarpc
@nazarpc
Open Source enthusiast
Нужно линковать один контейнер к другому, тогда внутри другого можно будет обращаться не по IP, а по имени. А ещё для формализации этого дела можно использовать Docker compose - таким образом вы определяете набор контейнеров, которые вместе предоставляют собой готовый сервис.
Пример: https://github.com/nazar-pc/docker-webserver#how-to-use
Там в отдельных контейнерах PHP-FPM, Nginx, MariaDB, SSH, всё линкуется друг к другу, всё опционально, всё можно обновлять по отдельности.
Так же официальные образы, тот же mysql сделаны аналогичным образом - линкуете его куда нужно, в том контейнере подключаетесь уже по имени mysql, вне зависимости от его IP.

К примеру, можете взять официальный образ PHP (который уже с Apache2 комплектуется) и официальный образ MySQL, кастомизируйте при необходимости (можно взять за основу для своего образа) и всё будет работать.
Ответ написан
Комментировать
savio
@savio Автор вопроса
если я правильно понимаю ситуацию , то взаимодействие двух и более контейнеров в пределах одного сервера через линковку, если же конктейнеры на разных серверах то через tcp.

И все таки, неужели выдача той же айпишки 172.17.0.6 (а не 172.17.0.2 и так далее...) настолько сложная задача в Docker'е?
Ответ написан
Комментировать
fadeev2010
@fadeev2010
Работаю в planiro.com
Как один из вариантов можете использовать SkyDock + SkyDNS , и обращаться к контейнерам по dns имени, при включении/добавлении нового контейнера, запись о нем будет динамически добавлятся.
И у вас таким образом отпадает необходимость знать ИП адрес контейнера.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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