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

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

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


我参与了一项努力,使科研分析软件更加适合研究界。 通常情况下,所讨论的软件是由一个人编写的,或者只是少数人编写而没有足够的重用计划,例如一个人在他们自己的计算机上编写Python脚本或Matlab模块。 如果软件运行良好,其他人通常会自己尝试......但在某些情况下,成功复制无证或难以重新实现的环境可能是一个真正的挑战。

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

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

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


查看案例研究“Spotify使用Docker的方式和原因”。

回答你最后的问题:

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

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

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

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


有一个很好的docker hack day用例:

使用Git和Jenkins自动部署Java堆栈。 您将代码推送到您的contenairezied git存储库中。 它会触发一个Jenkins构建,这样你的webapp将被打包到一个Container Docker中,并由Docker运行。

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

链接地址: http://www.djcxy.com/p/18205.html

上一篇: Can you explain Docker with a practical example/case?

下一篇: Difference between Docker and OpenVZ