一、Docker简介

1. 简介

解决环境不匹配问题,实现从"搬家”--->"搬楼”
在这里插入图片描述
Docker的出现是为了解决代码在本机可以正常运行,而部署到其他机器不能运行的问题。这是因为代码运行所需要的环境、系统、配置、数据等不同,Docker透过镜像将程序运行所需要的系统环境由下而上打包,达到应用程序跨平台间的无缝接轨运行。

Linux 容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过来的。将应用运行在 Docker 容器上面,而 Docker 容器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好环境,换到别的机子上就可以一键部署好,大大简化了操作。

2. Docker与传统虚拟化方式的不同

在这里插入图片描述
在这里插入图片描述

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程

  • 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便

  • 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源
    在这里插入图片描述
    虚拟机的缺点:

    1资源占用多
    2 冗余步骤多
    3启动慢

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

比较了 Docker 和传统虚拟化方式的不同之处:

*传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;

*容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

  • 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。

3、Docker能干嘛

在这里插入图片描述

4、docker三要素

镜像,容器,仓库
在这里插入图片描述
简单来说镜像相当于类,容器相当于对象,仓库则是内存,存放镜像的地方。
在这里插入图片描述

5、docker架构

Docker是一个 C/S(Client-Server) 结构的系统,后端是一个松耦合架构,众多模块各司其职。

Docker守护进程运行在主机上,然后通过Socket连接从客户端访问,守护进程从容器接收命令并管理运行在主机上的容器。
在这里插入图片描述
Docker运行的基本流程为:

  1. 用户是使用Docker Client 与 Docker Daemon 建立通信,并发送请求给后者
  2. Docker Daemon 作为 Docker 架构的主体部分,首先提供 Docker Server 的功能使其可以接收 Docker Client 的请求
  3. Docker Engine 执行 Docker 内部的一系列工作,每一项工作都是以一个 Job 的形式存在
  4. Job 的运行过程中,当需要容器镜像时,则从 Docker Registry 中下载镜像,并通过镜像管理驱动 Graph Driver 将下载镜像以 Graph 的形式存储
  5. 当需要为 Docker 创建网络环境时,通过网络管理驱动 Network driver 创建并配置 Docker 容器网络环境
  6. 当需要限制 Docker 容器运行资源或执行用户指令等操作时,则通过 Exec driver 来完成
  7. Libcontainer 是一项独立的容器管理包,Network driver 以及 Exec driver 都是通过 Libcontainer 来实现具体对容器进行的操作在这里插入图片描述
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐