一什么是Docker
基于Google公司的Go语言实现,后加入Linux基金会,遵从Apache2.0协议,项目代码在GitHub上进行维护。
二Docker的优点
-
2.1上手快
用户只需要几分钟就可以把自己的程序“Docker化”,Docker依赖于“写时复制”(Copy on Write)模型,使修改应用程序非常迅速。
-
2.2职责的逻辑分类
使用Docker,开发人员只需要关心容器中运行的应用程序,而运维人员只需要关系如何管理容器
泊坞窗设计的目的就是加强开发人员写代码的开发环境与应用程序要部署的生产环境的一致性
-
2.3快速高效的开发生命周期
Docker的目标之一就是缩短代码的开发,测试到部署,上线运行的周期,让我们的应用程序具备可移植性,易于构建。
换句话说:Docker就是一个盒子,里面有很多物件,如果需要这些物件,我们可以直接把盒子拿走,而不需要一件一件取。
-
2.4鼓励使用面向服务的架构设计
Docker推荐单个容器只运行一个应用程序或进程,这样就形成了一个分布式的应用程序模型,这种模型下,应用程序就可以表示为一系列内部互联的容器,提高程序的内省性。
三容器与虚拟机的比较
容器:是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统
虚拟机:是一种传统方式,实在硬件层面实现
容器的好处:Docker优势体现为启动速度快,占用体积小
四Docker组件
-
4.1 Docker服务器与客户端
泊坞是一个客户端 - 服务器(C / S)架构程。Docker客户端只需要向Docker服务器或者守护进程发出请求,服务器或者守护进程将完成所有工作并返回结果。Docker提供一个命令行工具Docker以及一整套RESTFUL API。我们可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker客户端连接到运行在另一台宿主机上的远程Docker守护进程。
-
4.2 Docker镜像
镜像是构建Docker的基石,用户基于镜像来运行自己的容器,镜像也是Docker生命周期中的“构建”部分,镜像是基于联合文件系统的一种层式结构,由一系列指令进行构建。镜像体积小,非常便携,易于分享,存储和更新。
就好比:一个类是镜像,那么容器就是对象,我们操作的时候都使用的对象(容器)
-
4.3 Docker容器
Docker可以帮助我们构建和部署容器,我们只需要把自己的应用程序或者服务打包放进容器即可,容器是基于镜像启动起来的,容器中可以运行一个或多个进程。我们可以这样理解,镜像是Docker生命周期中的构建和打包阶段,而容器则是启动或者执行阶段,容器基于镜像启动,一旦容器启动完成后,我们就可以登陆到容器中安装自己需要的软件或者服务。
所以,Docker容器就是:
1.一个镜像格式2.一系列标准操作3一个执行环境
Docker借鉴了标准集装箱的概念,标准集装箱将货物运往时间各地,Docker将这个模型运用到自己的设计中,唯一不同的是,集装箱运输货物,而Docker运输软件。
和集装箱一样,Docker在执行上述操作设计,并不关心容器中到底装了什么,它不管是web服务器,数据库或者应用程序服务器什么的,所有的容器按照相同的方式将内容“装载”进去。
Docker不关心你要把容器运到何方,我们可以在笔记本中构建容器,上传到Registry,然后下载到一个物理的或者虚拟的服务器来测试,再把容器部署到具体的主机中,像标准集装箱一样,Docker容器方便替换,可以叠加,易于分发,并且尽量通用。
-
4.4注册中心(注册中心)
Docker用注册表来保存用户构建的镜像,注册表分为公共和私有两种,Docker公司运营公共的注册表叫做Docker Hub,用户可以在Docker Hub注册账号,分享并保存自己的镜像(表示在Docker Hub下载镜像略慢.....可以自己构建私有的注册表)
注册中心:https://hun.docker.com/