Выбор ответа Junior Docker Compose спрашивают часто обновлено

Как сервисы находят друг друга

Вопрос

Как контейнер api в одном compose-проекте должен обращаться к сервису redis?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: По имени сервиса redis через встроенный DNS сети проекта. Все сервисы проекта подключены к сети <проектdefault, и встроенный DNS резолвит имена сервисов. localhost в контейнере это сам контейнер.

Варианты ответа

  1. По имени сервиса redis через встроенный DNS сети проектаправильный ответ
  2. По адресу localhost:6379, контейнеры проекта делят один сетевой стек
  3. По IP контейнера из docker inspect, он закрепляется за сервисом
  4. Через опубликованный порт хоста host.docker.internal:6379

Разбор

Все сервисы проекта подключены к сети <проект>_default, и встроенный DNS резолвит имена сервисов. localhost в контейнере это сам контейнер. IP меняется при пересоздании. Ходить через хост можно, но это лишний путь и требует публиковать порт.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.