vipiter 2020-06-06
启动非常快,秒级实现
资源利用率高,一台高配置服务器可以跑上千个docker容器
更快的交付和部署,一次创建和配置后,可以在任意地方运行
内核级别的虚拟化,不需要额外的hypevisor支持,会有更高的性能和效率
易迁移,平台依赖性不强
镜像,是一个只读的模板,类似于安装系统用到的那个iso文件,我们通过镜像来完成各种应用的部署。
容器,镜像类似于操作系统,而容器类似于虚拟机本身。它可以被启动、开始、停止、删除等操作,每个容器都是相互隔离的。
仓库,存放镜像的一个场所,仓库分为公开仓库和私有仓库。 最大的公开仓库是Docker hub(hub.docker.com),国内公开仓库(dockerpool.com)
FreeBASE jail ----> Linux vserver
chroot --->负责保证有完成的标准根文件系统(FHS)
namespace--->UTS Mount IPC PID user network
cgroup--->资源的分配和监控
通过比较复杂的代码开发的过程,调用以上三项技术
实现容器的创建--->管理--->销毁
容器技术最早出现在FreeBSD上叫做 jail,将一个进程放入jail中运行,不管这个进程在其中发生怎样的错误都不会影响到系统上其他进程的运行 后来,jail技术在Linux中的实现叫做vserver,vserver所实现的功能体现为chroot以及namespaces实现资源的隔离。 容器技术出现的主要目的是为了"资源隔离"
LXC(Linuxcontainer),将原来需要手工编码实现的容器技术,进行了封装。实现了,更加方便、快速的容器创建及管理的技术。通过固有“模板”,安装并启动容器。将远程的程序包下载到本地,安装并创建好我们需要的容器。 确实,LXC已经很大程度上降低了容器管理的难度,方便我们做容器的生命周期,但是依然使用一些弊端。有些时候可能需要自定制模板,以及使用LXC中自带的模板,以及大规模创建及复制依然比较麻烦。所以,很难大规模的应用。 所以,出现了Docker技术。Docker是在LXC基础上,使用GoLang二次开发的封装版。