首页 > 开发 > 云计算 > 正文

如何正确理解Docker生态

2016-07-12 21:17:12  来源:极客头条
  本文是一个简短的指南帮助了解Docker周边工具生态系统,以及他们是如何实现的。
  只要你出席任何高科技相关的活动,或在过去18个月读取任何科技相关的文章,你就可能听到过Docker,并且了解它是什么以及做什么用。
  简而言之,Docker的建立基于过去的一系列概念但是它青出于蓝胜于蓝。Docker是创建“容器”的工具,它可以包容你所需要的一系列离散的应用程序和技术栈。不像虚拟机,这些容器共享相同的资源来管理容器和主机之间的交互。 这使得Docker容器更快,更轻,安全,且资源可共享。
  就个人而言,作为一个技术作家和演讲者,我发现Docker在创建演示和演说有无限价值。我可以组建我需要的组件堆栈,运行它们,然后再销毁它们,保持系统干净、整洁没有任何我不再需要的包和数据。
  许多开发者在Docker的开发和测试过程中看到了它的明确用例,但是仍然在努力摸索如何最好的应用它到实际的生产中。大量第三方工具和服务正在急速涌现,以帮助开发人员部署、配置和管理他们在实际生产开发中的Docker工作流程。
  Docker已通过一系列收购和产品发布构建了自己的“官方”的工具包。Orca项目,就我们已知的,它是在去年美国的DockerCon上面宣布的,虽然细节还是有一点点模糊。在我看来,Orca背后的战略相对而言是Docker不断扩大的产品组合的整合,而不是一个实际的项目或产品。
  因此在这篇文章中,我将会展示当前Docker生态系统中已经存在的一部分的总结,以及你能如何使用它们,并且把这些碎片联系到一起。
  Docker Hub
  一个Dockerfile是任何使用Docker的项目核心。这个文件包含了Docker如何创建镜像的说明。下面就让我们来看一个简单例子:
FROM python:2.7ADD . /codeWORKDIR /codeRUN pip install -r requirements.txt  在这个例子中,Dockerfile pull一个已经存在的镜像的特定版本,拷贝到当前容器文件系统的本地目录。并设置其为工作目录,然后经由pip命令安装一个文本文件定义的Python依赖库。
  Docker Hub是预定义的官方的Dockerfiles源,为镜像提供公共(免费)和私立(付费)库。如果你正在寻找一个满足你需求的Dockerfile,首先搜索Docker Hub,使用项目文档,下载量,和评价星级,以帮助指导你的决定。
  图片描述
  Docker Engine
  Docker Engine用于建立Dockerfiles并且把它转化为可运行的容器。Engine是Docker的核心,没有任何其他功能能脱离它而运行。基于不同的操作系统,我们有很多不同选项来安装Docker Engine,更多这方面材料可以参见链接。
  要启动一个基于Docker Hub镜像的容器,pull它的镜像并运行它。然后启动一个Python的例子如下: