#docker #networking #grafana
Вопрос:
Я совсем новичок в темах docker, и у меня есть вопрос о подключении контейнерных сервисов к традиционным.
В настоящее время я подумываю о замене традиционной установки grafana (непосредственно на сервере Linux) контейнером grafana docker.
В grafana мне приходится подключаться к различным источникам данных, таким как экземпляр mysql, база данных Winsows SQL и так далее. Итак, grafana выполняет сбор данных. Все эти источники данных находятся (и будут по-прежнему находиться) на других хостах, и они не являются контейнерами.
Итак, как я могу реализовать, чтобы мой контейнер мог взаимодействовать с этими источниками данных? Возможно ли это по умолчанию или мне нужно реализовать особый тип сети? Я видел, что есть опция, называемая macvlan…is это правильный путь?
БР Янв
Ответ №1:
Насколько я понимаю, это должно работать из коробки. По крайней мере, я использую Grafana внутри контейнера docker, и он работает отлично.
Вы можете протестировать подключение изнутри вашего контейнера docker к какому-либо внешнему ресурсу, открыв оболочку контейнера следующим образом:
docker exec -it <container ID> /bin/bash
И затем
root@a9cbebfc4564:/# curl google.com
Или
root@a9cbebfc4564:/# ping <bla-bla>
Приведенные выше команды зависят от среды docker image (например, ОС или установленного программного обеспечения), но это можно решить тем же способом, что и в обычной среде Unix
PS Однажды я столкнулся с проблемой подключения к docker2host, но это было связано с неправильной конфигурацией брандмауэра на стороне хоста.
Ответ №2:
Поскольку вы заменяете традиционную установку, вы можете начать с сети хоста. Этот режим обеспечивает такое же удобство подключения, как и при установке на хост. Быстрый запуск так же прост, как:
docker run --network host grafana/grafana
Обратите внимание, что нет необходимости в --publish
--publish-all
портах or, поскольку контейнер Grafana теперь совместно использует сеть хоста.