1、Docker能干嘛
1.1、与虚拟机对比
-
虚拟机技术缺点:
– 资源占用非常多;
– 冗余步骤非常多,需要开机;
– 启动很慢,效率较低。 -
容器化技术
– 容器化技术并不是模拟一个完整的操作系统 -
Docker与虚拟机技术的不同:
– 传统虚拟机:模拟出一套硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件;
– 容器:应用直接运行在宿主机的内容,容器是没有自己的内核的,也没有虚拟机硬件,所以相对轻便;每个容器间相互隔离,每个容器内都有一个属于自己的文件系统,互补影响。
1.2、DevOps
- 特点
– 应用更快速的交付和部署;
– 更便捷的升级和扩缩容:只需要升级项目包-镜像
– 更简单的系统运维:容器化之后,开发和测试环境是高度一致的
– 更高效的计算资源利用:Docker是内核级别的虚拟化,服务器性能可以被利用到极致。
2、Docker基本组成
2.1、相关名词
- 镜像(image):镜像就好比是个模板,可以通过镜像来创建容器服务;
- 容器(container):可以独立运行一个或者一组应用;通过镜像来创建;
- 仓库(repository):
– 存放镜像的地方;
– 仓库分为共有仓库&私有仓库;Docker Hub;阿里云。
3、Run流程
- Docker在本地寻找镜像;
- 若找到,则直接运行;若未找到,则到Docker Hub(配置过的Repository)上下载;
- 若Docker Hub上找到,则下载镜像到本地,进行运行;若找不到,则返回错误;
4、Docker原理
4.1、Docker是如何工作的
- Docker是一个Client - Server结构的系统;
- Docker的守护进程运行在主机上,通过Socket从客户端访问;
- Docker Server接收到Docker Client的指令,就会执行这个命令。
4.2、Docker为何比虚拟机快(todo)
- Docker比虚拟机更少的抽象层;
- Docker利用的是虚拟机的内核;vm需要的是Guest OS;
- 新建一个容器的时候,Docker不需要像vm一样加载一个操作系统内核;vm加载的是Guest OS,分钟级别的;Docker利用宿主机的操作系统,秒级别的。