你能解释一个实际的例子/案例的Docker吗?

我已经阅读了Docker.io的介绍文档 ,我喜欢它提供的概念。 但是,你能帮我理解一点吗? 你能给我一些关于如何使用Docker的实例和/或案例研究,以及实际使用Docker的意义吗?

简单的说一下,我最近开始使用Vagrant来将一个预先configuration的DEV盒分发给我们的开发团队(所以我们都使用相同的基本系统)。 我甚至看到了在stream浪者中使用Docker的例子,但是在实际意义上,我没有得到什么好处。 这意味着我理解虚拟机和容器之间的区别以及后者提供的逻辑分隔,但是何时应该使用这个区别而不是另一个,以及Docker Vagrant中? (这是一个更具体的问题,但我最感兴趣的是上面第一个问题中提到的大局)。

我参与了一个努力,使科学分析的软件更多地提供给研究界。 通常情况下,所讨论的软件是由一个人编写的,或者仅仅是一些没有充分计划重用的软件,比如一个人在他们自己的计算机上编写一个Python脚本或一个Matlab模块。 如果软件运行良好,其他人通常会自己尝试……但是在某些情况下,要成功地复制无证或难以重新实现的环境可能是一个真正的挑战。

Docker是一个很好的工具,可以帮助其他人重复使用这样的软件,因为编写Vagrant脚本来在一个环境中安装软件是一个更低的门槛。 如果我给一个人一个Docker容器,她可以在里面做任何她想做的事情(编写代码,安装库,设置环境等等。当它完成时,她可以保存它的图像并将图像发布到Docker存储库,并告诉另一个研究人员,“在这里,只是启动它并运行这个…”

我们也在考虑使用容器作为我们自己的configurationpipe理策略来交付和存档生产软件…至less是服务器端组件。

我们还在Python和shell中编写脚本来完成一些工作,以运行多个Docker容器的数据处理工作stream程。 我们炮制的一个演示是在图像上运行OpenCV以提取人脸,然后使用ImageMagick来裁剪脸部,最后再次ImageMagick来制作所有脸部的拼贴。 我们为OpenCV创build了一个容器,并为ImageMagick创build了一个容器,然后编写了一个Python脚本来执行每个容器上的“docker run …”,并使用必要的参数。 Python脚本是使用docker-py项目完成的,该项目对我们所需要的工作非常有效。

看看“ 如何以及为什么Spotify使用Docker ”进行案例研究。

回答你的最后一个问题:

我甚至看到了在stream浪者中使用Docker的例子,但是在实际意义上,我没有得到什么好处。 这意味着我理解虚拟机和容器之间的区别以及后者提供的逻辑分隔,但是何时应该使用这个区别而不是另一个,以及Docker在Vagrant中?

Docker经常在Vagrant中使用,因为它不能在Mac OSX上运行(见内核要求 ),这是开发人员非常常用的。

然后,让开发团队在相同的容器上工作,在笔记本电脑上构build和testing产品,然后“在规模上,生产中,虚拟机,裸机,OpenStack集群,公共云和更多”上运行,则需要使用Vagrant他们的Mac OSX 。

这就是说,在这里你可以看到另一个真棒案例研究http://bit.ly/19h8gUk

有一个很好的docker黑客日用例:

使用Git和Jenkins自动部署Java堆栈。 你把你的代码推入你的contenairezied git仓库。 它会触发一个Jenkins构build,所以你的web应用程序将被打包到一个Container Docker中,并由Docker运行。

https://www.youtube.com/watch?v=Q1l-WoJ7I7M