是否有可能在Docker容器中使用cloud-init和heat-cfntools?

我想使用OpenStack Heat来创build一个由多个Docker容器组成的应用程序,并监视这些容器的一些指标,如:CPU / Mem利用率以及其他特定于应用程序的指标。

那么,在通过Dockerfile准备Docker镜像时,可以安装cloud-init和heat-cfntools,然后根据运行cloud-init和heat-cfntools的镜像运行一个Docker容器?

谢谢!

那么在通过Dockerfile准备Docker映像时,可以安装cloud-init和heat-cfntools

(a)有安装了cloud-init的映像,(b)在你的ENTRYPOINTCMD脚本中configuration了正确的命令,以及(c)你的容器正在运行,所以可以在Docker容器中使用cloud-init在具有可用元数据服务的环境中。

在这些要求中,(c)可能是最有问题的; 除非您使用nova-docker驱动程序启动容器,否则您的容器不太可能访问Nova元数据服务。

我不是特别熟悉heat-cfntools ,虽然快速浏览代码表明它可以在没有cloud-init通过使用ec2样式的凭据进行authentication,而您可能需要通过环境variables或一些东西。

也就是说,在Docker容器中运行cloud-init通常要less得多,理论上说,如果你需要定制一个镜像,你将使用一个Dockerfile来构build一个基于该镜像的新镜像并重新部署,或通过环境variables指定任何必要的附加configuration。

如果您的工具需要监视主机上的进程,您可能需要运行

 docker run --pid=host 

这是Docker Engine版本1.5中引入的function。

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