Пользовательские мостовые сети и обнаружение служб
Создавайте определяемые пользователем мостовые сети, чтобы контейнеры находили друг друга и взаимодействовали по имени, а также узнайте, как Docker выполняет обнаружение служб на основе DNS.
«Пользовательские мостовые сети и обнаружение служб» — бесплатный урок Docker & DevOps Fundamentals на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & DevOps Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Зачем нужна пользовательская сеть?
Сеть bridge по умолчанию работает, но контейнеры в ней могут обращаться друг к другу только по IP-адресу. Пользовательская сеть типа bridge добавляет автоматическое обнаружение служб на основе DNS, поэтому контейнеры могут обращаться друг к другу по имени.
- Улучшенная изоляция между группами приложений
- Встроенное разрешение имён
- Контейнеры можно подключать и отключать на лету
Список существующих сетей
Docker поставляется с тремя сетями по умолчанию. Просмотрите их с помощью docker network ls, прежде чем создавать собственную сеть.
docker network lsСоздание сети типа bridge
Используйте docker network create. Без флага драйвера Docker по умолчанию выбирает драйвер bridge, который идеально подходит для контейнеров на одном хосте.
docker network create app-netПросмотр сведений о сети
docker network inspect выводит в формате JSON подсеть, шлюз и все подключённые контейнеры. Это удобно для отладки диапазонов IP-адресов.
docker network inspect app-netЗапуск контейнеров в этой сети
Подключите контейнер при запуске с помощью --network. Здесь мы запускаем контейнер Redis, который другие контейнеры смогут обнаружить по имени.
docker run -d --name cache --network app-net redis:7Обнаружение по имени
В пользовательской сети имя контейнера разрешается через DNS Docker. Приложение просто подключается к узлу cache через порт 6379, вместо того чтобы искать IP-адрес.
docker run -it --network app-net alpine ping -c 2 cacheСетевые псевдонимы
Добавьте контейнеру дополнительное имя DNS с помощью --network-alias. Это полезно, когда несколько контейнеров отвечают на одно логическое имя за балансировкой по принципу циклического перебора.
docker run -d --network app-net --network-alias db postgres:16Подключение работающего контейнера
Не обязательно принимать все решения при запуске. Команда docker network connect подключает уже работающий контейнер к другой сети.
docker network connect app-net webОтключение от сети
Аналогично, команда docker network disconnect удаляет контейнер из сети, не останавливая его.
docker network disconnect app-net webОткрытие и публикация портов
Контейнеры в одной пользовательской сети свободно взаимодействуют через любой порт. Чтобы обратиться к службе с хоста, опубликуйте порт с помощью -p hostPort:containerPort.
docker run -d --network app-net -p 8080:80 nginxОчистка сетей
Удалите неиспользуемую сеть с помощью docker network rm или сразу очистите все неиспользуемые сети. Сети с подключёнными контейнерами нельзя удалить, пока эти контейнеры не будут удалены.
docker network prune -fБыстрая проверка
Проверьте, насколько хорошо Вы поняли обнаружение служб.
Итоги
Вы научились создавать и управлять пользовательскими сетями типа bridge:
docker network createсоздаёт изолированную сеть с DNS- Контейнеры обращаются друг к другу по имени или через
--network-alias connect/disconnectпозволяют подключать и отключать контейнеры на лету- Публикуйте порты с помощью
-pи очищайте неиспользуемые сети
Обнаружение служб по имени — основа, на которой Compose автоматически строит свою работу.
Часто задаваемые вопросы
Урок «Пользовательские мостовые сети и обнаружение служб» бесплатный?
Да — полный текст урока «Пользовательские мостовые сети и обнаружение служб» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Docker & DevOps Fundamentals, подпишись на CoddyKit PRO. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Чему я научусь в уроке «Пользовательские мостовые сети и обнаружение служб»?
Создавайте определяемые пользователем мостовые сети, чтобы контейнеры находили друг друга и взаимодействовали по имени, а также узнайте, как Docker выполняет обнаружение служб на основе DNS. Ты практикуешь Docker & DevOps Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Docker & DevOps Fundamentals?
Предыдущий опыт не требуется. Docker & DevOps Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Пользовательские мостовые сети и обнаружение служб»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Docker & DevOps Fundamentals?
Да. Каждый урок Docker & DevOps Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы сетевого взаимодействия контейнеров
- Тома Docker для сохранения данных
- Монтирование каталогов и tmpfs
- Пользовательские мостовые сети и обнаружение служб