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

相关推荐
李匠20248 分钟前
C++GO语言微服务之Dockerfile && docker-compose②
c++·容器
大蚂蚁2号16 分钟前
windows文件共享另一台电脑资源管理器网络文件夹无法找到机器
运维·服务器·网络
Lw老王要学习29 分钟前
Linux数据库篇、第一章_02_MySQL的使用增删改查
linux·运维·数据库·mysql·云计算·it
斤斤计较1 小时前
Docker 环境安装(2025最新版)
运维·docker·容器
小锋学长生活大爆炸1 小时前
【教程】Docker方式本地部署Overleaf
运维·docker·容器
欧先生^_^1 小时前
Docker 的各种网络模式
网络·docker·容器
掘金者说1 小时前
docker系列-DockerDesktop报错信息(Windows Hypervisor is not present)
运维·docker·容器
2302_799525742 小时前
【Linux】第十六章 分析和存储日志
linux·运维·服务器
愚润求学2 小时前
【Linux】Ext系列文件系统
linux·运维·服务器·笔记
微刻时光2 小时前
影刀RPA网页自动化总结
运维·人工智能·python·低代码·自动化·rpa·影刀rpa