一:什么是Docker
Docker最初是dotCloud公司创始人Solomon Hykes在法国发起的一个公司内部项目,它基于dotCloud公司多年云服务技术的一次革新,用Go语言实现,并于2013年3月以Apache协议开源,主要的项目代码在GitHub上进行维护,源码地址:https://github.com/Docker/Docker
主要的功能是:支持应用部署
二:为什么要使用Docker
①是其更高效的利用系统的资源,不需要进行硬件虚拟以及运行完整的操作系统等额为开销,Docker对系统资源利用率更高,
②更加快速的启动时间,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级的启动时间。
③一致的运行环境,不会出现"这段代码在我机器上没问题的"问题。
④持续交付和部署。开发人员可以通过Dockerfile来进行镜像构建,并结合持续集成系统继续宁测试
三:容器
Docker 是容器,可以理解为轻量级的虚拟机,但是这里需要明确的一个概念是,容器比虚拟机过更加轻量级,一个操作系统上,应该可以部署上千个Docker容器,这是虚拟机无法比拟的,Docker和虚拟机对比如下:
特性 | 容器 | 虚拟机 |
启动 | 秒级 | 分钟级 |
硬盘使用 | 一般为MB | 一般为GB |
性能 | 接近原生 | 弱于 |
系统支持量 | 单机支持上千个容器 | 一般几十个 |
四:三大核心概念
① 镜像:
Docker镜像是一个特殊的文件系统。镜像构建时,会一层层构建,钱一层是后一层的基础。没一层构建完成后就不会再发生改变,后一层上的任何改变只会发生在自己这一层
② 容器
镜像和容器的关系,就像是面向程序设计中的类和实例一样,容器是镜像的一个实例。
③ 仓库
存储、分发镜像的服务器;一个服务器可以有多个仓库。最长使用的Registry 公开服务是官方的Docker Hub。 分发镜像的服务器=数据库服务器 仓库= 数据库