24

我完全是 linux 容器的菜鸟,并且花了一些时间学习Docker,请原谅我对这个问题的困惑。目前,我通过 capistrano 部署了一个生产中的 Rails 应用程序。我的云服务器由 Debian Wheezy 发行版上的 Opscode Chef 维护。对于开发,我有一个预装了应用程序和服务的 Vagrant VM。

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

似乎容器是未来的一部分。对于从虚拟化转换的人有什么指导吗?

4

2 回答 2

12

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

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

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

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

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

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

于 2013-08-22T12:06:18.120 回答
2

我不是专家,我自己什至没有使用过 docker,但据我了解,您的应用程序位于 docker 容器内。理想情况下,您将部署一个安装了您自己的 ruby​​ 版本的整个容器,依此类推。

最大的好处是,您可以在暂存系统中测试您将要交付到生产环境的完全相同的容器。因此,您可以使用所有已安装的 C 扩展、完全相同的ls命令等来测试完整的系统。

于 2013-08-19T14:48:51.803 回答