У меня есть приложение стека Docker Compose.Одной из функций приложения является то, что оно имеет серверную часть .NET Core, выполняющуюся как контейнер в стеке, который может порождать новые временные контейнеры, выполняющие задачи обработки данных.Эти контейнеры должны существовать в той же сети, что и стек, чтобы иметь возможность доступа к базе данных.Внутренний контейнер .NET Core содержит необходимые инструменты докера и может выполнять docker
команды, используя подход docker-in-docker.
Мне нужно знать, как из в контейнере в стеке , чтобы определить имя сети, которую использует стек.Достаточно просто знать имя сети, в которой работает сам контейнер.Однако я не могу и не хочу зависеть от каких-либо жестко закодированных значений.Альтернативой является просто возможность без сомнения знать имя контейнера, внутри которого я работаю, поэтому я могу использовать docker inspect
для получения имени сети.
Docker-compose, похоже, использует относительно предсказуемые имена (например, myapp_backend_1
для внутреннего контейнера. myapp_default
для сети), но, насколько я знаю, эти имена НЕ гарантированы, поэтому я не могу зависеть от жесткого кодирования таких имен в приложении.
Краткое описание:
- Должно быть в состоянии, из в контейнере Docker, получить имя сети, к которой присоединен контейнер Docker.
- Кроме того, необходимо иметь возможность определить имя контейнера из этого контейнера , чтобы я мог использовать
docker inspect
для получения имени сети.