【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。

相关推荐
腾讯蓝鲸智云5 小时前
【运维自动化-节点管理】节点管理的插件策略如何使用
运维·自动化·云计算·sass·paas
苍煜6 小时前
Docker容器网络详解+端口映射原理(系列第二篇:实战核心)
网络·docker·容器
疯狂成瘾者7 小时前
服务器的单体和集群
运维·服务器
liuhuizuikeai7 小时前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
charlie11451419110 小时前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
gwjcloud11 小时前
Kubernetes从入门到精通(高级篇)04
云原生·容器·kubernetes
飞Link11 小时前
2000 亿砸向算力:字节跳动 AI 基建跨越,后端与运维的“万亿 Token”生死战
运维·人工智能
SWAGGY..11 小时前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
张文君12 小时前
上古世纪服务端编译安装AAEmu docker编译安装
运维·docker·容器
雾岛心情12 小时前
小铭邮件管理工具箱的界面(公司版)
运维·服务器·工具·o365·小铭邮件工具箱(公司版)