以下是我对Docker的一些问题:
考虑到Docker处理守护进程和链接服务(不使用守护进程)的方式
1-如果你可以自己运行守护进程和bluepill重启过程,那么进程监控,守护进程和应用程序链将如何工作(即:upstart / bluepill / unicorn)?
2-如果要坚持使用upstart / bluepill / unicorn模型,如何找到容器的ip地址来平衡它,如何使用高级代理进行负载均衡?
3-推荐使用docker顶部的服务发现软件,例如执行rails部署?
答案 0 :(得分:1)
1- AFAIK,在docker容器中运行bluepill(或其他一些进程监视器,如supervisor或monit)没有问题。我经常使用这种工具在容器中运行多个服务。
2-对于负载平衡容器,您可以使用可以动态配置的负载均衡器(用于http平衡,hipache是一个很好的候选者),或者使用一些脚本动态更新标准负载均衡器的配置并重新加载它(我用nginx做了很多次,它应该与其他解决方案一起工作)
3- docker生态系统中有一些用于服务发现的工具。你可以看一下Serf(http://www.serfdom.io/)和etcd(https://github.com/coreos/etcd)。对于部署部分,我建议您使用Dockerfile中的ONBUILD指令来注入应用程序代码并创建不可变容器。