Как назначить статический IP-адрес контейнеру Docker — CloudSavvy IT

Статические IP-адреса не меняются при остановке и запуске контейнеров или служб, что делает их полезными для постоянной работы в сети. Назначение статических IP-адресов контейнерам Docker — простой способ сделать их более доступными.

Зачем использовать статический IP-адрес?

Есть два типа «статического IP-адреса»; частные IP-адреса, используемые для внутренней сети внутри сервера, и общедоступные IP-адреса, используемые для подключения вне сервера, часто через Интернет.

Если вам нужно настроить общедоступный IP-адрес для контейнера, вы захотите использовать привязки портов. Вы можете «опубликовать» порты в контейнере Docker, чтобы они были доступны с хоста. Несмотря на то, что существуют более сложные сетевые настройки, это, безусловно, самый простой и наиболее распространенный вариант. Например, привязка порта 80 (HTTP) на хосте к контейнеру NGINX:

docker run —publish = 80: 8080 nginx

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

Docker поставляется с сетью по умолчанию, но если вы создадите свою собственную, вы можете присвоить контейнерам псевдонимы при запуске в этой сети. Этот псевдоним будет автоматически преобразован в частный IP-адрес контейнера. Например, контейнер NGINX здесь может получить доступ к экземпляру MongoDB с помощью строки подключения mongodb: // mongohost: 27017.

docker network создать пример docker run —net example —name nginx -d nginx docker network connect example —alias mongohost mongodb

Чтобы узнать больше, вы можете прочитать Документация Docker по определяемым пользователем мостовым сетям.

Однако есть еще много случаев, когда вы захотите вручную указать частный IP-адрес, например, доступ к контейнерам напрямую с хоста. Для этого вам все равно потребуется использовать настраиваемую сеть Docker, но ее легко настроить.

Настройка статических IP-адресов

Во-первых, вам нужно настроить сеть Docker, и, поскольку мы заботимся об IP-адресе, вам необходимо указать фиксированную подсеть:

docker network create —subnet = 172.20.0.0 / 16 customnetwork

Затем вы можете запустить контейнер, указав сеть с помощью флага —net и указав IP с помощью флага -ip:

docker run —net customnetwork —ip 172.20.0.10 -d контейнер

Вы можете проверить правильность адреса, проверив его в контейнере с помощью exec -t bin / bash или проверив список контейнеров Docker:

docker inspect -f ‘{{range.NetworkSettings.Networks}} {{. IPAddress}} {{end}}’ name_or_id

Использование Docker Compose

Docker Compose — это инструмент, используемый для запуска нескольких контейнеров с предопределенными настройками. Это включает в себя настройку сетей с определенными подсетями, и вы можете присоединять контейнеры к сетям с фиксированными IP-адресами, используя блок конфигурации ipv4_address, показанный здесь:

версия: ‘2’ сервисы: веб-сервер: изображение: nginx имя_контейнера: сети веб-сервера: customnetwork: ipv4_address: 172.20.0.10 сети: customnetwork: ipam: config: — subnet: 172.20.0.0/16

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *