在用 docker 部署的时候,不论是 ruby 还是 php 项目,我都只是实现了数据库在单独的 container,而代码和服务器〈nginx〉在同一个 container,然后--link 数据库。
这样的缺点就是,多少个项目就要启动多少个 nginx 服务器,当然像 node,py 这种自带的里层不用 nginx 之类的,但是也得启动一个小型服务器。 那么问题就来了…… 怎么实现代码和服务器的分离?
比如说我有多个 rails 项目,我应该怎样分配 container 呢?谢谢。
楼主要想把 nginx 也分离出去那就单独起一个 nginx 的 containner 就可以了呀,把 nginx 的配置文件用 volume 挂载进去。跟应用服务器的通信可以用 link 端口的方式,也可以挂载 sock 文件。
passenger 没用过,我是用 unicorn 的。。。app server container 里跑 unicorn,web server container 里跑 nginx 就可以了,只需要 app server 有 rails 环境
#14 楼 @flowerwrong suse 11 sp2 可以吗?有案例介绍下吗?我有些 mysql 的服务器上需要用到一些工具,mysql 本身用 cgroup 做了限制,不行把监控的 agent 也加入 cgroup,因为万一以后出现了其他 agent 就太麻烦了。
#15 楼 @tonysh 我对 suse 不熟,但是 64 位 linux 操作系统都支持。官网有 suse 的安装文档,详见 https://docs.docker.com/installation/openSUSE/ 下面一篇翻译是针对 suse 11 sp2 的 http://bbs.chinaunix.net/thread-4142490-1-1.html
docker 是用来做进程级隔离的,目的是方便的操作海量的进程,进而提高整个机房或者数据中心的负载密度。 做代码与服务隔离,需要精细的设计,要权衡这个精细设计成本。
如果管理海量 docker 都是问题,这个成本就比较高了。