1 Docker简介
1.1 什么是虚拟化
虚拟化概念:简单理解是一种资源管理技术;
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。
虚拟化常见技术种类:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化(vip)、桌面虚拟化、服务虚拟化、虚拟机;
1.2 什么是Docker
虚拟化技术中有一种是容器技术,而Docker就是一种容器技术
Docker要做的事情是什么呢?目标就是实现轻量级的操作系统虚拟化解决方案;
Docker 的基础是 Linux 容器(LXC)等技术,(在 LXC 的基础上 Docker 进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作Docker 的容器就像操作一个快速轻量级的虚拟机一样简单。)
1.3 容器与虚拟机比较
Docker这种虚拟化技术区别于其他传统虚拟技术;Docker 和传统虚拟化方式的不同之处,容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
Docker的简要架构如上图,从下到上层次依次为:
① Server即服务器硬件/宿主机器,② HOST OS即服务器本身的操作系统,③ Docker Engine即虚拟层或称为Docker引擎或称为Docker软件,④ 上面内容就是基于Docker引擎的二进制库+各种应用软件;
传统虚拟机技术以Hypervisor为例的简要架构如上图,从下到上层次依次为:
①server即服务器硬件 ②host os即服务器本身的操作系统 ③Hypervisor本地操作系统之上会安装一个软件 通常称为虚拟层,用来管理虚拟机的软件 ④虚拟层之上,会安装虚拟化的操作系统可以安装很多个,然后虚拟化的仓库,然后再安装应用
总之:Container(Docker容器),在宿主机器、宿主机器操作系统、Docker引擎(即虚拟层),安装应用。
VM(VMware),在宿主机器、宿主机器操作系统、创建虚拟层、虚拟化的操作系统、虚拟化的仓库、应用;
区别:
传统虚拟机:虚拟出各种硬件如win linux等虚拟硬件, 虚拟的操作系统与本地操作系统没有直接关系;
资源多:就是占用系统资源比较多,虚拟化出的操作系统资源有限;
启动速度慢:虚拟操作系统与真的操作系统类似;
可以虚拟出各种操作系统,应用可以应用于各种操作系统;
容器:每个容器环境是依赖本机操作系统的,虚拟的环境依赖于本地操作系统;
资源少:虚拟出的限制较少,与本机是共享关系;
启动速度快:会很快;
只能虚拟出linux系统,且应用也只能应用于linux系统;
那么问题来了,Docker没有操作系统,怎么运行程序?可以在Docker中创建一个ubuntu的镜像文件,这样就能将ubuntu系统集成到Docker中,运行的应用就都是ubuntu的应用。
1.4 Docker 组件
1.4.1 Docker服务器与客户端
Docker是C/S架构——客户端+服务端
Docker守护进程就是Docker的服务端,管理Docker容器
Docker客户端负责连接服务端,执行命令
Docker客户端和服务端,可以是同一台机器,也可以远程登录
1.4.2 Docker镜像与容器
镜像是构建Docker的基石。镜像当作容器的“源代码”
容器是基于镜像启动起来的
镜像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。
总之,我们通过镜像构建容器,我们操作是操作容器;
1.4.3 Registry(注册中心)
分为公有和私有:
公有https://hub.docker.com/
私有一般都是公司企业自身的中心;