Docker 入门篇

Docker是2014年较为热门的技术,本文作为一篇入门教程,通过以下四个问题的解答,希望能够使读者对Docker有一些认识。


1.Docker是什么?

  • Docker是2013年dotCloud公司的一个业余项目,采用go语言实现,在github进行维护。

  • 项目的目标是实现轻量级的操作系统虚拟化解决方案,Docker的基础是Linux容器等技术,目前只能在linux平台工作。

  • 目前,微软与Docker公司建立了新的合作伙伴关系,以便在Windows Server上增加对Docker工具的支持,微软开发技术公司将向Docker客户端贡献代码。


2.Docker与传统虚拟化解决方案相比,优势在哪里?

Docker通过容器在操作系统层面实现虚拟化,传统方式则是在硬件层面通过虚拟机形式实现。


3.Docker解决了哪些实际问题?

  • 更快速的交付和部署

对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。 Docker可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。Docker容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

  • 更高效的虚拟化

Docker容器运行不需要hypervisor支持,它是内核级的虚拟化,有更高的性能和效率。

Hypervisor是一种运行在物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件,因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器(Virtual Machine Monitor)

  • 更轻松的迁移与扩展

Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。 这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。

  • 更简单的管理

使用Docker,所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。


4.Docker引入了哪些技术?

  • 镜像

Docker 镜像就是一个只读的模板。例如:一个镜像可以包含一个完整的ubuntu操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。

镜像可以用来创建 Docker 容器。Docker 提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户也可以从仓库下载已经做好的镜像来直接使用。

  • 容器

Docker 利用容器来运行应用。容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。

  • 仓库

与github仓库的托管服务类似,docker hub,dockerpoo是目前比较常用的公开仓库,用户可以实现上传或下载。