一. Docker产生的背景

        提高资源的利用率,实现分布式的计算。云计算的核心即虚拟化和分布式,利用Docker我们可以在多台服务器轻松地扩展应用。我们所熟知的虚拟机VMWare即一种虚拟化技术,VMWare建立在操作系统之上,并且VMWare内部可以运行多个应用。但VMWare本身会占用一定的机器资源,对硬件是有损耗的。而我们接下来要学习的Docker则是一种容器虚拟化技术,即轻量级的虚拟化,每一个Docker实例直接运行在操作系统之上,相当于操作系统的一个应用,因此不会额外消耗硬件资源,能更充分地利用操作系统的特性和机制。

        DevOPS即研发和运维一体化,自动化创建和部署的需求。Docker产生的另一个背景即研发和运维一体化,实现软件的更快交付和部署,更高效的资源利用,更轻松的迁移以及更简单的更新管理(使用DockerFile配置文件增量更新和分发)。

二. 什么是Docker

容器完全使用沙箱机制,相互之间不会有任何接口,类似于IPhone中的各个app,以保证容器间的安全;此外,容器的性能开销及低,创建和停止都十分迅速。Docker的目标是一次封装,到处运行,可以是WEB容器,数据库等等。

Docker VS 虚拟化

特性

容器

虚拟机

启动速度

秒级

分钟级

硬盘空间

MB

GB(含有操作系统的部分)

性能

接近原生

10%的损失

系统支持数量

单机上千个

一般几十个

隔离性

安全隔离

完全隔离

三. Docker安装

        Docker支持主流的操作系统平台,Linux原生支持(因为Docker本身基于Linux容器技术),体验最好。CentOS7,Extras源中已经内置了Docker,直接使用yum进行安装:

yum install -y docker
docker --version
# centos7中将docker变为服务,在开机时自动启动
systemctl enable docker
# 启动docker服务
systemctl start docker
# 关闭docker服务
systemctl stop docker

Docker的配置文件所在目录:/etc/docker/deamon.json 

四. Docker三大核心概念

  1. 镜像(image):类似于虚拟机镜像,只读模板
  2. 容器(Container):轻量级的沙箱,运行的实例;相当于简易的Linux环境,在镜像上创建的可写层
  3. 仓库(Respository):Docker集中存放镜像文件的场所,分为公有仓库和私有仓库,类似于GitHub,使用push上传,使用pull下载