运行和部署到Docker容器的Rails

我是一个Linux容器的总诺贝尔,并花了一些时间了解Docker ,并原谅我的困惑,想到这个问题。 目前,我有一个通过capistrano部署的Rails应用程序。 我的云服务器在Debian Wheezy发行版上与Opscode Chef一起维护。 对于开发,我已经预装了应用程序和服务的Vagrant虚拟机。

如果我要使用Docker,我的应用程序在哪里坐? 容器或主机? 我将如何部署(生产)和共享目录(开发)? 我可以使用docker在同一台服务器上运行所有附加服务,例如memcache,redis,postgresql等吗? 我可以想象Docker的潜力,但是看不到它的实际用途。

看起来像容器是未来的一部分。 任何人从虚拟化切换指导?

如果我要使用Docker,我的应用程序在哪里坐?

它可以坐在容器内,也可以坐在主机上(您可以使用docker build将应用程序复制到容器中)

我将如何部署(生产)和共享目录(开发)?

部署应用程序意味着将本地容器提交到映像中,将其发布并从服务器上发布的映像中运行容器。 我还没有尝试共享主机和容器之间的目录,但你可以试试这个: https : //gist.github.com/jpetazzo/5668338 。 您也可以编写一个Dockerfile,它可以将一个目录复制到容器中的一个目标。 Docker 关于构build映像的文档将帮助您。

我可以使用docker在同一台服务器上运行所有附加服务,例如memcache,redis,postgresql等吗?

是。 您将在同一台服务器上运行多个容器。

我不是专家,我甚至没有使用docker自己,但据我了解,您的应用程序坐在docker集装箱内。 您将理想地部署整个容器与您自己的ruby版本安装等。

最大的好处是,您可以testing准备系统中相同的容器,然后将其发送到生产环境。 因此,您可以使用所有安装的C扩展,完全相同的ls命令等来testing整个系统。