1. Docker介绍
源于生计被迫开源,操作系统级容器技术 —-Docker
Docker 技术
我们在将 Docker 之前,首先来简单的聊一聊虚拟化技术,虚拟化技术我们也接触过不少 VMware、KVM 之类的。通过创建虚拟机的方式,我们可以把硬件资源分配到不同的虚拟机,达到资源的最大化利用,相比直接在物理机上部署应用,虚拟机更容易扩展应用。通过虚拟机虚拟出不同的物理资源,可以快速搭建云服务。
简单来讲虚拟化技术主要用来解决高性能物理硬件产能过剩和老旧的硬件产品产能过低的重组重用,透明化底层物理硬件资源从而最大化的利用物理硬件。但其缺点在于 Guest OS 通常会占用不少硬件资源,例如 Windows 安装 VMware 并开启 Guest OS,不运行任何应用的情况下,就需要占用 2 ~ 3G 内存,20 ~ 30G 的硬盘空间。而且为了应用系统运行的性能,往往还要给每台虚拟机留出更多的内存容量。在这样的资源占用情况下,少量的虚拟机还是可以接受的,如果同时运行十多台或数十台虚拟机,硬件资源的浪费就会成倍递增。
能不能所有应用使用同一个操作系统减少硬件资源的浪费,但是又能够避免包括运行库在内的软件冲突呢?操作系统底层虚拟化——容器概念的提出就是为了解决这个问题。Docker 就是一个容器的标准实现。
容器化
容器化就是应用程序级别的虚拟化技术。容器提供了将应用程序的代码、系统工具、系统库和配置打包到一个实例中的标准方法,容器共享一个内核(操作系统),它安装在应硬件上。简单的来讲其实和 VMware 类似,他们都是一个应用一个软件,只不过 VMware 需要安装虚拟操作系统的方式才能够在里面运行其他应用,而 Docker 不需要安装操作系统直接就可以在里面跑应用程序。
和虚拟机相比,容器有以下优点:
- 启动迅速:没有虚拟机硬件的初始化,没有Guest OS的启动过程,可以节约很多启动时间“开箱即用”。
- 占用资源少:没有运行Guest OS所需的内存开销,无需为虚拟机预留运行内存,无需安装、运行App不需要的运行库/操作系统服务,内存占用、存储空间占用都小的多。相同配置的服务器,如果能运行十多台虚拟机的,通常可以运行上百个容器毫无压力——当然前提是单个容器应用本身不会消耗太多资源。
- 历史变迁
- 物理机时代:多个应用程序可能会跑在一台机器上。
- 虚拟机时代:一台物理机器安装多个虚拟机(VM),一个虚拟机跑多个程序。
- 容器化时代:一台物理机安装多个容器实例(container),一个容器跑多个程序。
Docker 历史
2010 年,几个搞 IT 的年轻人,在美国旧金山成立了一家名叫 dotCloud 的公司,dotCloud 公司提供平台服务 PaaS。dotCloud 平台利用了 Linux 的 LXC「0.9 版本的 Docker 之前需要依赖 LXC 技术」容器技术。为了方便创建和管理这些容器,dotCloud 基于 google 公司推出 Go 语言开发了一套内部工具,之后被命名为“Docker”。
就如同 Docker 的 Logo 一样,Docker 的思想来源于集装箱。集装箱解决了什么问题?在一艘大船上,可以把货物规整的摆放起来,并且各种各样的货物被集装箱标准化,集装箱和集装箱之间互不影响。那么就不需要专门运送水果的船和专门运送化学用品的船了。只要这些货物封装在了不同的集装箱里,就可以用一艘大船把他们都运走。
Docker 技术诞生之后,并没有引起行业的关注。而 dotClould 公司,作为一家小型创业企业,在激烈的竞争之下,也是举步维艰。正当他们快要坚持不下去的时候,脑子里蹦出了“开源”的想法。什么是“开源”?开源,就是开放代码,也就是将原来的内部保密程序源代码开放给所有人,然后大家一起参与进来,贡献代码和意见。
有的软件一开始就是开源的,也有的软件是混不下去,创造者又不想放弃,而选择开源。自己养不活,就吃“百家饭”。2013 年 3 月,dotCloud 公司的创始人之一,Docker 之父,28 岁的 SoloMon Hykes 正式决定,将 Docker 项目开源。
不开则已,一开惊人。越来越多的 IT 工程师发现了 Docker 的优点,然后蜂拥而至,加入 Docker 开源社区。Docker 的人气也迅速攀升,速度之快令人瞠目结舌。开源当月,Docker 0.1 版本发布。此后的每一个月,Docker 都会发布一个版本。到 2014 年 6 月 9 日,Docker 1.0 版本正式发布。此时的 Docker,已经成为行业里人气最火爆的开源技术,没有之一。甚至像 Google、微软、Amazon、VMware 这样的巨头们都对它青睐有加,表示将全力支持。Docker 火了之后,dotCloud 公司干脆将名字改成了 Docker Inc。
Docker 版本
随着 Docker 技术的飞速发展,企业级功能的上线,更好的服务意味着需要支付一定的费用,目前 Docker 被分为两个版本:community-edition 社区版和 enterprise-edition 企业版。
Centos7 上安装 Docker 引擎
1 | # 安装yum-utils |
docker 镜像加速
Docker 从 Docker Hub 拉取镜像,因为从国外获取所以下载速度较慢,可以通过配置国内镜像源的方式,从国内获取镜像,提高拉取速度,这里介绍中国科学技术大学的开源镜像https://docker.mirrors.ustc.edu.cn
和网易的开源镜像http://hub-mirror.c.163.com
。
1 | # 编辑文件daemon.json,该文件默认安装下是不存在的。 |