Можно ли использовать cloud-init иheat-cfntools внутри контейнера Docker?

Я хочу использовать OpenStack Heat для создания приложения, состоящего из нескольких контейнеров Docker, и отслеживать некоторые показатели этих контейнеров, например: использование ЦП/памяти и другие показатели, специфичные для приложения.

Так можно ли установить cloud-init иheat-cfntools при подготовке образа Docker через Dockerfile, а затем запустить контейнер Docker на основе образа, в котором запущены cloud-init иheat-cfntools?

Спасибо!


person Eric    schedule 11.02.2015    source источник


Ответы (2)


Так можно ли установить cloud-init и heat-cfntools при подготовке образа Docker через Dockerfile?

Возможно использовать cloud-init внутри контейнера Docker, если у вас (а) есть образ с установленным cloud-init, (б) в сценарии ENTRYPOINT или CMD настроены правильные команды и (в) ваш контейнер работает в среде с доступной службой метаданных.

Из этих требований (c) является, вероятно, наиболее проблематичным; если вы не загружаете контейнеры с помощью драйвера nova-docker, маловероятно, что ваши контейнеры будут иметь доступ к службе метаданных Nova.

Я не особенно знаком с heat-cfntools, хотя беглый взгляд на код показывает, что он может работать без cloud-init путем аутентификации в API Heat CFN с использованием учетных данных в стиле ec2, которые вам, вероятно, потребуется предоставить через переменные среды или что-то в этом роде.

Тем не менее, как правило, гораздо меньше необходимости запускать cloud-init внутри контейнеров Docker, теория заключается в том, что если вам нужно настроить образ, вы будете использовать Dockerfile для создания нового на основе этого образа и повторного развертывания, или указать любую необходимую дополнительную конфигурацию через переменные среды.

person larsks    schedule 11.02.2015
comment
Спасибо. И на самом деле, помимо настройки изображения, я также хотел бы отслеживать некоторые конкретные показатели приложения (не ЦП/память/и т. д.) контейнера, т. е. я могу запустить приложение в контейнере, который можно использовать для обработки некоторых задач, я хотелось бы знать, сколько задач обрабатывается и сколько ожидает выполнения. Я хочу, чтобы о таких метриках можно было сообщать, чтобы я мог увеличивать/уменьшать масштаб приложения (создавать больше контейнеров/удалять некоторые существующие контейнеры) на основе такой информации. - person Eric; 12.02.2015

Если ваши инструменты требуют мониторинга процессов на хосте, вы, вероятно, захотите запустить с

docker run --pid=host

Это функция, представленная в Docker Engine версии 1.5.

См. http://docs.docker.com/reference/run/#pid-settings< /а>

person Andy    schedule 12.02.2015