kvaks
@kvaks

Как организовать связь между контейнерами?

Пытаюсь для себя разобраться как это работает,
Запустил 3 контейнера (первый NATS сервер, второй поcывает в NATS, третий читает из NATS)
Контейнер сервер NATS запустил прокинув порт 4222,
надо ли указывать у все контейнеров этот порт? (хотя я пытался -> ошибка)
Подскажите как правильно организовать связь ? или в таком случае обязательно делать compose? хотелось бы попробовать сначала без него.
  • Вопрос задан
  • 1074 просмотра
Пригласить эксперта
Ответы на вопрос 1
@MadridianFox
Web-программист, многостаночник
Если контейнеры запущены через docker run без указания сети, то они уже в одной сети и могут обращаться друг к другу используя имя контейнера в качестве имени хоста.

Если контейнеры запускаются через docker-compose, то, по умолчанию, на каждый docker-compose.yml файл создаётся отдельная сеть. Это надо учитывать если сервисы запускаются через разные файлы. В этом случае сеть стоит создать вручную и прописать её использование во всех docker-compose.yml файлах.

При запуске через docker-compose в качестве имени хоста контейнера используется не имя контейнера, а имя сервиса.

В обоих случаях имя хоста можно переопределить через опцию hostname. В обоих случаях порты пробрасывать не надо.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы