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

相关推荐
养生技术人3 小时前
Oracle OCP认证考试题目详解082系列第57题
运维·数据库·sql·oracle·开闭原则
XUE-52113144 小时前
路由策略与路由控制实验
运维·网络·网络协议·智能路由器
BullSmall5 小时前
linux zgrep命令介绍
linux·运维
emma羊羊6 小时前
【文件读写】图片木马
linux·运维·服务器·网络安全·靶场
你疯了抱抱我6 小时前
【SSH】同一局域网下windows使用Xshell SSH连接另一台 ubuntu 22.04 电脑
运维·ubuntu·ssh
2301_818411556 小时前
Ubuntu之apt更新源
linux·运维·ubuntu
CS Beginner7 小时前
【Linux】Mysql的基本文件组成和配置
linux·运维·mysql
iconball8 小时前
个人用云计算学习笔记 --20 (Nginx 服务器)
linux·运维·笔记·学习·云计算
Wang's Blog9 小时前
Linux小课堂: 在 VirtualBox 虚拟机中安装 CentOS 7 的完整流程与关键技术详解
linux·运维
一水鉴天9 小时前
整体设计 逻辑系统程序 之18 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之2
docker·架构·认知科学·公共逻辑