Docker的介绍
Docker能够做到对软件层面的虚拟化,但是并没有虚拟化“物理机”,也不需要安装新系统,而是共用“宿主机”的操作系统,所以这样即可以提供功能,还可以提高性能。
容器简介
容器是一个应用层抽象,用于将代码和依赖资源打包在一起。
多个容器可以在同一台机器上运行,共享操作系统内核,但各自作为独立的进程在用户空间中运行。
与虚拟机相比,容器占用的空间较少(容器镜像大小通常只有几十兆),瞬间就能完成启动。
容器和虚拟机
虚拟机:虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统。 然后我们再用这个操作系统安装和运行软件
容器:容器虚拟化的是操作系统而不是硬件,所有的容器是共享同一套操作系统资源的
Docker 的三个基本概念
镜像(images):一个特殊的文件系统
容器:镜像运行时的实体
仓库:存放镜像文件的地方
镜像:已经打包好的 Docker 应用,有点类似于一个程序的安装包。
镜像仓库:存储镜像的服务器
容器:有了镜像我们就可以创建容器了,容器就是运行着的镜像,一个镜像可以同时创建多个容器,容器之间的隔离的。
Docker 的优点
由于 Docker 与主机共享内核,所以有以下优势:
1、速度更快
Docker不停地给大家宣传,"虚拟机需要数分钟启动,而Docker容器只需要50毫秒"。
2、更加轻量
虚拟机中每个都是一套独立的系统,这就使得每个虚拟机都非常大,而 Docker 使用了分层的技术,不同的镜像之间可以同享相同的层,这使得容器尺寸很小。
3、更节省资源
启动一个虚拟机,就要启动它内部的操作系统,这非常消耗资源,一台电脑上同时开启3~10个虚拟机电脑就已经完全跑不动了。
而 Docker 是共享主机内核,所以启动一个 Docker 就和启动一个普通的程序一样,所以我们可以同时在电脑上开启上千个 Docker 容器。
补充Docker优点
一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现“这段代码在我机器上没问题啊”这类问题。
更快速的启动时间:可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
弹性伸缩,快速扩展:善于处理集中爆发的服务器使用压力。
迁移方便:可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
持续交付和部署:使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。
组建微服务架构:通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。