我想使用OpenStack Heat创建一个由几个Docker容器组成的应用程序,并监控这些容器的一些指标,如:CPU/Mem利用率和其他特定于应用程序的指标。
那么,在通过Dockerfile准备Docker镜像时,是否可以安装cloudinit和heat-cfntools,然后基于运行了cloudinit和heat-cfntols的镜像运行Docker容器?
谢谢!
那么,在通过Dockerfile 准备Docker镜像时,是否可以安装cloudinit和heat-cfntools
如果您(a)安装了cloud-init
的映像,(b)在ENTRYPOINT
或CMD
脚本中配置了正确的命令,并且(c)您的容器在具有可用元数据服务的环境中运行,则可以在Docker容器中使用cloud-init
。
在这些要求中,(c)可能是最有问题的;除非您使用nova-docker
驱动程序启动容器,否则您的容器不太可能访问Nova元数据服务。
我对heat-cfntools
不是特别熟悉,尽管快速浏览一下代码就会发现,通过使用ec2-风格的凭据对Heat CFN API进行身份验证,在没有cloud-init
的情况下,它可以工作,您可能需要通过环境变量或其他方式提供。
也就是说,通常不太需要在Docker容器中运行cloudinit,理论上,如果你需要自定义映像,你可以使用Dockerfile基于该映像构建一个新的映像并重新部署,或者通过环境变量指定任何必要的附加配置。
如果您的工具需要监控主机上的进程,您可能希望使用运行
docker run --pid=host
这是Docker Engine 1.5版本中引入的一项功能。
请参阅http://docs.docker.com/reference/run/#pid-设置