通俗易懂的理解Docker

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