Основы сетевого взаимодействия контейнеров
Разберитесь в стандартной сети Docker, мостовых сетях и способах обнаружения контейнерами друг друга.
«Основы сетевого взаимодействия контейнеров» — бесплатный урок Docker & DevOps Fundamentals на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & DevOps Fundamentals, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Зачем нужна сеть контейнеров?
Контейнеры изолированы по своей конструкции, что отлично с точки зрения безопасности и переносимости. Однако для полноценной работы приложениям часто требуется обмениваться данными друг с другом и с внешним миром.
Здесь и пригодится сеть Docker! Она позволяет контейнерам безопасно и эффективно взаимодействовать.

Сеть моста Docker по умолчанию
Когда вы запускаете контейнер, не указывая сеть, Docker автоматически подключает его к сети моста по умолчанию. Эта сеть называется bridge.
Контейнеры в этой сети могут взаимодействовать друг с другом по IP-адресам, а также получают доступ к интернету.
Просмотр сетей Docker
Вы можете легко просмотреть все доступные в системе сети Docker. Команда docker network ls выводит их список, а docker network inspect показывает подробную конфигурацию конкретной сети.
Попробуйте вывести список сетей:
docker network lsIP-адреса контейнеров
Каждому контейнеру, подключённому к сети моста (по умолчанию или созданной пользователем), внутренний DNS-сервер Docker назначает уникальный IP-адрес.
Этот IP-адрес позволяет другим контейнерам в той же сети обращаться к нему. Давайте посмотрим IP-адрес контейнера:
docker run --rm -it alpine ip aВзаимодействие в сети моста по умолчанию
В стандартной сети bridge контейнеры могут взаимодействовать друг с другом по назначенным им IP-адресам. Однако IP-адреса могут меняться, поэтому такой способ менее надёжен для динамических приложений.
Для более удобного обнаружения контейнеров и взаимодействия по именам современным и предпочтительным подходом являются созданные пользователем сети моста.
Сети моста, созданные пользователем
Созданные пользователем сети моста имеют существенные преимущества перед сетью по умолчанию:
- Автоматическое разрешение DNS: контейнеры в одной пользовательской сети могут находить друг друга по имени службы (имени контейнера).
- Лучшая изоляция: они обеспечивают лучшую изоляцию приложений.
- Гибкая настройка: вы получаете больше контроля над параметрами сети.
Демонстрация: взаимодействие по имени
Давайте создадим пользовательскую сеть, запустим в ней веб-сервер Nginx, а затем используем другой контейнер для доступа к серверу Nginx по его имени. Вы увидите, как это просто!
docker network create my-app-net
docker run -d --name webserver --network my-app-net nginx
docker run --rm --network my-app-net alpine sh -c "apk add curl && curl -s http://webserver"
docker rm -f webserver
docker network rm my-app-netОткрытие портов для хоста
Чтобы получить доступ к службе контейнера с хост-компьютера или из внешней сети, необходимо «опубликовать» или «сопоставить» её порт с помощью флага -p или --publish.
Например, -p 8080:80 сопоставляет порт 8080 хоста с портом 80 контейнера.
docker run -d --name my-webserver -p 8080:80 nginx
# To check, open http://localhost:8080 in your browser
# Then, clean up the container:
docker rm -f my-webserverДругие сетевые драйверы
Помимо сетей моста, Docker предлагает другие сетевые драйверы для конкретных задач:
- Host: контейнер использует сетевой стек хоста, теряя изоляцию.
- None: у контейнера нет сетевых интерфейсов.
- Overlay: используется в Docker Swarm для взаимодействия между несколькими службами Docker на разных хостах.
Каждый драйвер предназначен для определённых сценариев развёртывания.
Задача о сетях
Какие утверждения о сети Docker bridge по умолчанию и созданных пользователем сетях моста верны?
Итоги: основы сетевого взаимодействия
Мы рассмотрели основные сведения о сетях Docker:
- Сеть
bridgeпо умолчанию позволяет контейнерам взаимодействовать по IP-адресам. - Созданные пользователем сети моста предпочтительнее благодаря автоматическому разрешению DNS по имени и лучшей изоляции.
- Мы узнали, как заставить контейнеры взаимодействовать друг с другом и как открыть порты контейнера для хоста.
- Кратко рассмотрели другие сетевые драйверы, такие как
hostиoverlay.
Понимание сетевого взаимодействия крайне важно для создания связанных приложений в контейнерах. Далее мы разберём управление постоянными данными с помощью томов Docker!
Часто задаваемые вопросы
Урок «Основы сетевого взаимодействия контейнеров» бесплатный?
Да — полный текст урока «Основы сетевого взаимодействия контейнеров» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Docker & DevOps Fundamentals, подпишись на CoddyKit PRO. Курс Docker & DevOps Fundamentals содержит 4 уроков всего.
Чему я научусь в уроке «Основы сетевого взаимодействия контейнеров»?
Разберитесь в стандартной сети Docker, мостовых сетях и способах обнаружения контейнерами друг друга. Ты практикуешь Docker & DevOps Fundamentals с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Docker & DevOps Fundamentals?
Предыдущий опыт не требуется. Docker & DevOps Fundamentals на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Основы сетевого взаимодействия контейнеров»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Docker & DevOps Fundamentals?
Да. Каждый урок Docker & DevOps Fundamentals включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы сетевого взаимодействия контейнеров
- Тома Docker для сохранения данных
- Монтирование каталогов и tmpfs
- Пользовательские мостовые сети и обнаружение служб