简单来说就是Google公司使用Go语言进行开发实现的,基于Linux内核的cgourp,namespace,以及AUFS类的Union FS 等技术,对进程进行封装隔离,属于操作系统层面的虚拟化技术。
Docker 的构想是要实现“Build,Ship and Run Any App,Anywhere”,即一次封装,“到处运行”
Docker能在任何时间,任何地点
被获取,可以让开发者以一种新型的创建分布式应用程序的方式,快速分发和部署。
举个例子LAMP(Linux+Apache+Mysql+PHP)部署一个网站,你需要分别安装环境,再进行配置,经过大量的操作后还要进行功能测试,查看是否正常。更可怕的是如果进行服务器迁移,往往需要重头开始,这是一个没有意义的体力话。
Docker则提供了一种更加聪明的方式,通过容器来打包应用,解耦应用和运行平台。
总结来说:
Docker是属于操作系统级虚拟化,即通过创建多个虚拟的操作系统实例来隔离不同进程。
上图可以看出,传统的实在硬件层面完成虚拟化,有额外的虚拟机管理应用和虚拟机操作系统层,Docker则是直接在操作层面上实现虚拟化。
Docker的核心概念有镜像、容器和仓库,我来分别介绍一下。
Docker镜像类似于虚拟机镜像,可以将它理解为一个只读的模板。
Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
注意:镜像自身是只读的。容器从镜像启动的时候,会在镜像的最上层创建一个可写层。
Docker仓库类似于代码仓库,它是集中Docker集中存放镜像文件的场所。主要有公开和私有仓库。
用户可以通过访问Docker官网的Get Docker页面,查看获取Docker的方式,以及Docker支持的平台类型
https://www.docker.com/products/overview
接下来我们将要正式的在centos中操作Docker.
分别执行
安装需要的软件包: yum install -y yum-utils device-mapper-persistent-data lvm2
设置源: sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
安装: sudo yum install docker-ce
启动开机启动:
sudo systemctl start docker
sudo systemctl enable docker
输入docker version
显示以下内容即为成功.
本章主要讲解了Docker的背景、使用Docker的优势、和虚拟机的差别、核心概念是什么和如何在Centos中如何安装Docker。在下一章中我们将主要学习Docker中的命令。