Есть ли способ получить контейнер и его свойства из среды хоста, по крайней мере, получить его IP-адреса, запросив его псевдоним?
Для ясности я имею в виду к фактическому псевдониму, который вы можете дать контейнерам в определенных c сетях, см. здесь
В настоящее время мое решение до сих пор выполняет итерацию по всем контейнерам через остальной API и проверяет, соответствует ли псевдоним то, что я ищу. Очевидно, что это не идеально, так как это плохо масштабируется в случае, если на хосте много контейнеров.
В идеале я бы хотел просто отправить DNS-запрос на встроенный DNS-сервер docker, но это кажется невозможным. См. Этот вопрос / ответ для получения дополнительной информации
Кто-нибудь знает лучшее решение?
/ update
, поскольку псевдоним привязан к сети , ожидается, что запрашиваемый псевдоним сопровождается своим сетевым именем, например, 'псевдоним-контейнера. имя-сети'. Поэтому нам пришлось бы перечислять контейнеры в одной сети, но даже это плохо масштабируется, если в одной сети много контейнеров.
Имейте в виду, что фильтрация всех контейнеров по имени сети возможно в docker api, позволяя один вызов REST для api. Однако, хотя ключ «Псевдоним» находится в результате REST, он никогда не содержит никаких значений. (это может быть ошибкой, я не уверен.) Вы должны получить GET для указанного контейнера c, т.е. GET /v1.24/containers/container-uuid/json
, прежде чем вы сможете увидеть его псевдонимы.