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