Як контейнери обмінюються даними між собою?
Контейнери обмінюються даними здебільшого через мережу, яку Docker створює між ними. Зазвичай це робиться в одній віртуальній docker-мережі, де контейнери бачать один одного за іменем, як за доменною адресою.
1. Обмін через Docker-мережу (основний спосіб)
- Створюємо мережу:
docker network create mynet- Запускаємо контейнери в ній:
docker run -d --name app --network=mynet myapp
docker run -d --name db --network=mynet mydbТепер контейнер app може звернутися до db за іменем db (наприклад, mysql://db:3306).
Підсумок: безпечна мережева взаємодія всередині однієї мережі.
2. Обмін через спільний volume
Якщо потрібно передавати файли (логи, дані, кеш):
docker run -v shared:/data app1
docker run -v shared:/data app2Обидва контейнери використовують одну точку зберігання.
Підсумок: спільний доступ до файлів.
3. Обмін через зовнішні сервіси
Контейнери можуть взаємодіяти через:
- базу даних,
- чергу повідомлень (Kafka, RabbitMQ),
- API-запити HTTP/REST.
Підсумок: масштабований спосіб, часто в мікросервісах.
Підсумок для junior
Контейнери обмінюються даними через мережу (найчастіше), спільний том (для файлів) або зовнішні сервіси. Найпоширеніший шлях - docker-мережа, де контейнери бачать один одного за іменем.
Якщо потрібно, можу наступним повідомленням пояснити те саме і показати, як це виглядає в docker-compose, де зв'язок між контейнерами взагалі автоматичний.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.