1.1 Docker虚拟化技术概念
Docker是一款轻量级、高性能的虚拟化技术,是目前互联网使用最多的虚拟化技术,Docker虚拟化技术的本质类似集装箱机制,最早集装箱没有出现的时候,码头上有许多搬运的工人在搬运货物,集装箱出现以后,码头上看到更多的不是工人,而且集装箱的搬运模式更加单一,更加高效,还有其他的好处。
将货物多打包在集装箱里面,可以防止货物之间相互影响。并且到了另外一个码头需要转运的话,有了在集装箱以后,直接把它运送到另一个码头即可,完全可以保证里面的货物是整体的搬迁,并且不会损坏货物本身。
Docker技术机制跟集装箱类似,Docker虚拟化 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。
Docker容器是完全使用沙箱机制,相互之间不会有任何接口,几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包括系统。
Docker应该是近年最火爆的技术之一,如果没有听说过,那么你就out了,2019年将开启新的跨越。 Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。
Redhat 已经在其 RHEL6.5 中集中支持Docker; Google 也在其 PaaS 产品中广泛应用,Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。
Docker的基础是 Linux 容器(LXC)等技术。在LXC的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作 Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。
下面对比了Docker 和传统虚拟化(KVM、XEN、Hyper-V、ESXI)结构层级方式的不同之处,
图为传统虚拟化结构图: [图片上传失败...(image-de1238-1584434729729)]
图为Docker虚拟化结构图:[图片上传失败...(image-6d8348-1584434729729)]
n Docker虚拟化技术概念&总结:
Docker虚拟化技术是在硬件的基础上,基于现有的操作系统层面上实现虚拟化,直接复用本地主机的操作系统,直接虚拟生成Docker容器,而Docker容器上部署相关的APP应用(Apache、MYSQL、PHP、JAVA)。
n 传统虚拟化技术概念&总结:
KVM、XEN、ESXI传统虚拟化(完全、半虚拟化)是在硬件的基础上,基于现有的操作系统层面上实现虚拟化,但是不能复用本地主机的操作系统,而是必须虚拟出自己的Guest OS系统,然后在Guest OS系统上部署相关的APP应用(Apache、MYSQL、PHP、JAVA)。
Docker虚拟化跟传统VM比较具有如下优点:
n 操作启动快:
运行时的性能可以获取极大提升,管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。
n 轻量级虚拟化:
你会拥有足够的“操作系统”,仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。但是传统虚拟化,你虚拟10-20个虚拟机就不错了。
n 开源免费:
开源的,免费的,低成本的。由现代Linux内核支持并驱动。注* 轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜。
n 前景及云支持;
正在越来越受欢迎,包括各大主流公司都在推动docker的快速发展,性能有很大的优势。随着Go语言越来越被人熟知,Docker的使用也越来越广泛。
1.2 CentOS6.x(6.5+)Linux Docker平台实战
掌握了Docker虚拟化概念和原理之后,最重要的就是要在生产环节中落地Docker,Docker虚拟化平台最早期只支持Linux操作系统,现在最新版Windows操作系统也慢慢支持Docker虚拟化。
本章节将选择不同的发行版本来构建Docker虚拟化平台,Linux操作系统主流发行版本包括:Red Hat Linux、CentOS、Ubuntu、SUSE Linux、Fedora Linux等,如下简要介绍即将部署Docker虚拟化平台的两个系统:CentOS和Ubuntu。
Docker官方要求Linux内核版本在3.8+以上,生产环境中尽量推荐使用3.10+的Linux内核版本,Docker从1.13版本起,采用时间线的方式作为版本号,Docker版本现在基于YY.MM,分为社区版(Community Edition)和企业版( Enterprise Edition),社区版是免费提供给个人开发者和小型团体使用的,而企业版会提供额外的收费服务。
社区版按照Stable和Edge两种方式发布,每个季度更新Stable版本,如17.06,17.09,每个月份更新Edge版本,如17.09,17.10。
虚拟化&Docker虚拟化技术本质的用途:
为了最大化的利用高配物理机的资源,提高硬件设备服务器的资源利用率,淘汰一些老、旧服务器,对老、旧服务器进行资源的重组、重用,满足企业飞快的发展。
虚拟化落地实施硬件设备选配上,尽量使用高配物理机资源,参考配置如下:
n 服务器品牌:Dell R730、R820;
n CPU配置:Intel 至强E5-2600系列;
n MEM配置:ECC DDR3 256G;
n DISK配置:SAS 12TB(最大支持24T);
n NET配置:Intel四端口千兆网卡/双端口万兆网卡;
1)安装步骤和命令如下:
|
安装Epel扩展源; yum install epel-release -y #安装Docker-io版本; yum install docker-io lxc cgroup device-mapper* -y #查Docker版本是否安装; rpm -qa|grep -E "docker|lxc|device-mapper" #启动Docker引擎服务; service docker restart #查看Docker服务进程; ps -ef|grep docker
|
2)安装完成,如图所示:
[图片上传失败...(image-3fdc49-1584434729730)]
3)查看启动进程如图所示:
[图片上传失败...(image-ee7b11-1584434729730)]
4)查看docker info信息,如图所示:
[图片上传失败...(image-1741ed-1584434729730)]
5)从Docker仓库下载Nginx镜像:
[图片上传失败...(image-40efeb-1584434729730)]
1.3 CentOS7.x(7.0+)Linux Docker平台实战
1)安装步骤和命令如下:
|
安装国内阿里源; wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #安装Docker-CE版本; yum install docker-ce* -y #查Docker版本是否安装; rpm -qa|grep -E "docker" #启动Docker引擎服务; service docker restart systemctl restart docker.service #查看Docker服务进程; ps -ef|grep docker
|
2)安装完成,如图所示:
[图片上传失败...(image-be042f-1584434729729)]
3)查看启动进程如图所示:
[图片上传失败...(image-60f333-1584434729729)]
4)查看docker info信息,如图所示:
[图片上传失败...(image-2a7c66-1584434729729)]
5)从Docker仓库下载Nginx镜像:
[图片上传失败...(image-f594c8-1584434729729)]