【Docker】Docker概述及引擎

一、docker概述

DevOps

DevOps是一种执行标准(思想),主要用于促进开发、测试与运维的整合

容器与虚拟机的区别

最大的区别是,虚拟机中存在独立的硬件系统与操作系统,容器中全部是共享的宿主机中的操作系统与硬件系统
虚拟机运行原理

容器运行原理

Windows系统的虚拟化

二、Docker引擎架构

Docker 引擎是用来运行和管理容器的核心软件,其现代架构由四部分主要组件构成:Docker Client,Dockerd、Containerd 与 Runc。

  • Docker Client

    Docker 客户端,Docker 引擎提供的 CLI工具,用于用户向 Docker 提交命令请求。

  • Dockerd

    Dockerd,即 Docker Daemon。在现代 Dockerd 中的主要包含的功能有镜像构建、镜像管理、RESTAPI、核心网络及编排等。其通过gRPC与 Containerd 进行通信。

  • Containerd

    Containerd,即 Container Daemon,该项目的主要功能是管理容器的生命周期。不过其本身并不会去创建容器,而是调用 Runc 来完成容器的创建。

  • Runc

    Runc 只有一个作用,即创建容器,其本质是一个独立的容器运行时 CLI工具。其在 fork出一个容器子进程后会启动该容器进程。在容器进程启动完毕后,Runc 会自动退出。

  • Shim

    Shim 是实现"Daemonless Container"不可或缺的工具,使容器与 Docker Daemon 解耦 ,使得 DockerDaemon 的维护与升级不会影响到运行中的容器。

    每次创建容器时,Containerd 会先 fork 出 Shim 进程,再由 Shim 进程 fork 出 Runc 进程当 Runc自动退出之前,会先将新容器进程的父进程指定为相应的 shim 进程。"除了作为容器的父进程外,shim 进程还具有两个重要功能:

    1、保持所有 STDIN 与STDOUT 流的开启状态,从而使得当 Docker Daemon 重启时,容器不会因为 Pipe 的关闭而终止。

    2、将容器的退出状态反馈给 Docker Daemon。

相关推荐
小O_好好学6 分钟前
Linux帮助命令
linux·运维·服务器
MXsoft6187 分钟前
监控易监测对象及指标之:Kubernetes(K8s)集群的全方位监控策略
运维
怒放的生命.13 分钟前
电气自动化入门05:三相异步电动机的正反转点动控制电路
运维·自动化·电气自动化·电工基础
莫泽Morze17 分钟前
VMware安装rustdesk服务器
运维·服务器
jonssonyan29 分钟前
稳了,搭建Docker国内源图文教程
运维·docker·容器
福大大架构师每日一题37 分钟前
16.2 k8s容器基础资源指标讲解
云原生·容器·kubernetes·prometheus
周湘zx38 分钟前
k8s中的微服务
linux·运维·服务器·微服务·云原生·kubernetes
工业甲酰苯胺2 小时前
k8s 中的 Ingress 简介
云原生·容器·kubernetes
如意机反光镜裸2 小时前
CentOS7搭建Hadoop3集群教程
运维
周湘zx2 小时前
k8s中的存储
linux·运维·云原生·容器·kubernetes