二、Docker的架构和底层技术

111 阅读1分钟

一、Docker Platform

  • Docker提供了一个开发、打包、运行app的平台

  • 把app和底层infrastructure隔离开来

    \

    15200008-605e80b7c9076a61.png

    Docker Platform

    \

    总体上看,docker Engine将底层的虚拟设备(物理设备),跟我们的应用服务隔离开了,我们在docker之上去做事情。

二、Docker Engine是Docker中的核心组件

15200008-caf8e2925e48d6a9.png

Docker Engine

\

DockerEngine包含:

  • 后台进程(dockerd)

  • REST API Server

  • CLI接口(docker)
    docker其实是一种C/S的架构,中间是通过rest API去进行通信的。后台的dockerd负责维护一些操作(image、container管理、网络、存储等)。

    \

    15200008-3028eb7dcbc0518b.png

    docker版本信息

    \

    在版本信息中我们可以看到docker包含两部分:server和client。

    \

    15200008-84389c4a319157c6.png

    docker


    cient中包含了很多我们终端输入的命令。
    dockerhost主要有两个概念:镜像和容器。
    最后面是一个存储镜像的一个公共的服务器,类似于github,我们可以从仓库中获取image。

三、Docker底层的技术支持

Docker不是一个完全创新的技术,因为它底层依赖于linux存在了很多年的技术。
底层的技术支持:

  • Namespace:做隔离pid,net,ipc,mnt,uts
  • Control groups:做资源控制
  • Union file systems:Container和image的分层