Как получить имя сети Docker в стеке Docker-compose из контейнеров? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть приложение стека Docker Compose.Одной из функций приложения является то, что оно имеет серверную часть .NET Core, выполняющуюся как контейнер в стеке, который может порождать новые временные контейнеры, выполняющие задачи обработки данных.Эти контейнеры должны существовать в той же сети, что и стек, чтобы иметь возможность доступа к базе данных.Внутренний контейнер .NET Core содержит необходимые инструменты докера и может выполнять docker команды, используя подход docker-in-docker.

Мне нужно знать, как из в контейнере в стеке , чтобы определить имя сети, которую использует стек.Достаточно просто знать имя сети, в которой работает сам контейнер.Однако я не могу и не хочу зависеть от каких-либо жестко закодированных значений.Альтернативой является просто возможность без сомнения знать имя контейнера, внутри которого я работаю, поэтому я могу использовать docker inspect для получения имени сети.

Docker-compose, похоже, использует относительно предсказуемые имена (например, myapp_backend_1 для внутреннего контейнера. myapp_default для сети), но, насколько я знаю, эти имена НЕ гарантированы, поэтому я не могу зависеть от жесткого кодирования таких имен в приложении.

Краткое описание:

  • Должно быть в состоянии, из в контейнере Docker, получить имя сети, к которой присоединен контейнер Docker.
  • Кроме того, необходимо иметь возможность определить имя контейнера из этого контейнера , чтобы я мог использовать docker inspect для получения имени сети.

1 Ответ

0 голосов
/ 21 июня 2019

Вы можете получить все подробности о контейнере изнутри контейнера, воспользовавшись удаленным интерфейсом докера.

Я уже ответил на это здесь .

Пожалуйста, проверьтеи дайте мне знать, если это помогло.

...