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

相关推荐
瞬间&永恒~13 分钟前
【Docker】(三)联合文件系统UnionFS + Overlay2
docker·云原生·容器
weixin_435776111 小时前
2026年长沙托育vi设计从风格定位到元素运用的设计方法
linux·运维·服务器·python
xcLeigh1 小时前
KingbaseES 的卢智能运维体架构深度拆解
运维·数据库·人工智能·ai·架构·ffmpeg·智能体
泰和英杰1 小时前
工商业储能柜采购选型与并网运维要点
运维
龙仔7251 小时前
RustDesk 完整笔记
运维·笔记·rust·远程工具·rustdesk
benjiangliu1 小时前
LINUX系统-19-库制作与原理(一)
linux·运维·服务器
瓦学妹3 小时前
2026亚马逊本土店怎么注册?入驻流程、资料准备与常见问题
大数据·运维·人工智能
数据知道3 小时前
主机入侵检测(HIDS):OSSEC / Wazuh 部署与规则编写
安全·网络安全·docker
bellus-3 小时前
win11使用ubuntu 26.04
linux·运维·ubuntu
逐光老顽童4 小时前
第 5 章:搞懂 K8s Service:从 ClusterIP 到负载均衡
docker·云原生·容器