Docker在实际项目上有哪些用例?

我已经阅读了Docker的内容,但是很难find使用Docker的真实场景。

在这里看到你的用法真是太好了。

我使用它来复制生产环境,在构build我部署的二进制文件之后,使用jenkins进行项目提交,在很短的时间内启动所需的守护进程并运行集成testing(几秒钟内完成集成testing) 。 无需启动,内存/ CPU /磁盘上的开销很小,对于那种事情来说是很好的。

我可以扩展这个用于开发的地方(只需将代码所在的卷添加到我的git仓库,至less对于脚本语言),让生产环境的代码即时编辑,只需要virtualbox的一小部分。

还需要testing如何将一些第三方代码集成到修改数据库的生产系统中。 将数据库克隆到一个容器中,将生产系统安装在另一个容器中,同时启动并迭代集成,直到我做得很好,在几秒钟内回到零再试,并且比使用虚拟机+快照更快,更便宜和更容易编写脚本。

同时在容器上运行几个桌面浏览器实例,并将它们自己的插件,cookies,数据存储等分开。 用于桌面集成的 docker存储库示例是一个很好的开始,但是计划testingsubuser来扩展这种用法。

我已经使用Docker来实现一个虚拟化的构build服务器,任何用户可以要求在我们的规范环境中运行构build他们个人的git分支。

每个到服务器的SSH连接都连接到一个新的容器上,确保所有的构build都相互隔离(过去的一个主要难点),确保容器的状态不会被破坏(因为所有的变更都是孤立的这个单一实例),并确保即使在Docker(以及在我们的规范化构build环境中的其他工具)无法在本地运行的Windows平台上的开发人员也能够运行构build。

我使用docker在几个不同的Linux发行版(RHEL 4/5/6/7,Ubuntu 12.04,14.04)上构build和testing我们的软件。

Docker使创build简约和一致的构build环境变得简单快捷。

我们将其用于以下用途:

我们有一个Jenkins容器 ,我们可以使用它来启动我们的Jenkins服务器。 我们使用卷来安装工作区,所以我们可以通过复制文件并在其他地方启动容器来轻松迁移服务器。

我们使用Jetty容器在我们的生产和开发环境中轻松部署我们的战争文件。

我们使用了大量的其他监视工具,比如我们有容器的Uptime ,这样我们就可以用一个命令在不同的主机上打开它们。

Docker为您提供了其他虚拟化解决scheme为您提供一小部分所需资源的好处。