Skip to main content

Як контейнери обмінюються даними між собою?

Контейнери обмінюються даними здебільшого через мережу, яку Docker створює між ними. Зазвичай це робиться в одній віртуальній docker-мережі, де контейнери бачать один одного за іменем, як за доменною адресою.


1. Обмін через Docker-мережу (основний спосіб)

  1. Створюємо мережу:
bash
docker network create mynet
  1. Запускаємо контейнери в ній:
bash
docker run -d --name app --network=mynet myapp docker run -d --name db --network=mynet mydb

Тепер контейнер app може звернутися до db за іменем db (наприклад, mysql://db:3306).

Підсумок: безпечна мережева взаємодія всередині однієї мережі.


2. Обмін через спільний volume

Якщо потрібно передавати файли (логи, дані, кеш):

bash
docker run -v shared:/data app1 docker run -v shared:/data app2

Обидва контейнери використовують одну точку зберігання.

Підсумок: спільний доступ до файлів.


3. Обмін через зовнішні сервіси

Контейнери можуть взаємодіяти через:

  • базу даних,
  • чергу повідомлень (Kafka, RabbitMQ),
  • API-запити HTTP/REST.

Підсумок: масштабований спосіб, часто в мікросервісах.


Підсумок для junior

Контейнери обмінюються даними через мережу (найчастіше), спільний том (для файлів) або зовнішні сервіси. Найпоширеніший шлях - docker-мережа, де контейнери бачать один одного за іменем.

Якщо потрібно, можу наступним повідомленням пояснити те саме і показати, як це виглядає в docker-compose, де зв'язок між контейнерами взагалі автоматичний.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.