2013-12-16 32 views
24

我已阅读thisintro docs on Docker.io,我喜欢它提供的概念。但是,你能帮助我更好地理解它吗?你能给我一些关于如何使用Docker的实际例子和/或案例研究,以及实际使用Docker的意义吗?我刚刚开始使用Vagrant向我们的开发团队分发预配置的DEV盒(所以我们都使用相同的基本系统)。我甚至看到了在Vagrant内部使用Docker的例子,但是我没有从实际意义上得到什么好处。这意味着我了解虚拟机和容器之间的区别以及后者提供的逻辑分隔,但是何时应该使用其中的一个而不是其他时间,并且当Docker 内部有 Vagrant? (这是一个更具体的问题,但我最感兴趣的是上面第一个问题中提到的大局)。你能解释一个实例/案例的Docker吗?

+1

那个流浪汉DOCO具有使用泊坞作为供应者节:http://docs.vagrantup.com/v2/provisioning/docker.html –

+0

是这里提出的更大的问题不是“太宽泛”的定义吗?对于这种形式的问题,一个典型的答案是不可能的,并且问题需要允许在这里允许这样的答案。 –

回答

2

有一个很好的码头工人劈日常使用的情况下:用Git和詹金斯一个Java堆栈的

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

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

21

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

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

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

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

8

查看案例研究“how and why Spotify uses Docker”。

要回答你的最后一个问题:

我甚至曾经见过泊坞窗使用内部流浪汉, 诸如此类的例子,但我没有得到什么在 实际意义上做到这一点的好处;这意味着我理解虚拟机 和容器之间的区别以及后者提供的逻辑分隔,但是当我应该使用其中一个代替另一个时,并且当Docker内部存在 Vagrant?

码头工人经常使用内流浪,因为它无法在Mac OSX currenlty运行(见Kernel Requirements),这是非常常用的开发。

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

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

+1

现在在Docker网站上提供了[更多案例研究](https://www.docker.com/resources/usecases/),包括视频。 – Andrew

+0

上面提到的项目现在已转移到https://www.docker.com/customers – meatspace

相关问题