2015-02-11 7 views
0

Я хочу использовать OpenStack Heat для создания приложения, которое состоит из нескольких контейнеров Docker, и отслеживать некоторые показатели этих контейнеров, например: использование CPU/Mem и другие метрики приложения.Можно ли использовать облачный init и heat-cfntools внутри контейнера Docker?

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

Спасибо!

ответ

2

Так же можно установить облако инициализации и жаропрочного cfntools при подготовке изображения Докер через Dockerfile

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

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

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

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

+0

Thanks. На самом деле, помимо настройки изображения, я также хотел бы отслеживать некоторые специфичные для приложения метрики (не CPU/Mem/etc) контейнера, т. Е. Я могу запускать приложение в контейнере, которое можно использовать для обработки некоторых задач, I 'd хотел бы знать, сколько задач обрабатывается, и сколько их ожидает. Я хочу, чтобы такие показатели можно было сообщить, чтобы я мог масштабировать/удалять приложение (создавать больше контейнеров/удалять некоторые существующие контейнеры) на основе такой информации. – Eric

0

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

docker run --pid=host 

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

http://docs.docker.com/reference/run/#pid-settings