Docker的运行机制和底层技术简介

news2024/11/29 10:47:42

(笔记总结自《微服务架构基础》书籍)

一、Docker的引擎

Docker Engine(Docker引擎)是Docker的核心部分,使用的是客户端-服务器(C/S)架构模式:

ab4a9fe5748744798a2aea14c983d78d.jpg

 ①Docker Cli:Docker命令行接口,可以在命令行中使用Docker相关指令与Docker守护进程进行交互,从而管理诸如image(镜像)、container(容器)、network(网关)和data volumes(数据卷)等实体。

②Rest API:表示应用程序API接口,开发者通过该APU可以与Docker的守护进程进行交互,从而指示后台进行相关操作。

(守护进程也叫精灵进程,是一种特殊的进程,一般在后台运行,不与任何终端相关联,并且周期性地执行某种任务或等待处理某些发生的事件,比如处理一些系统级的任务)

③docker daemon:表示Docker的服务端组件,它是Docker架构中运行在后台的一个守护进程,可以接收并处理来自命令行接口及API接口的指令,然后进行相应的后台操作。

二、Docker的架构

7b4d16455cc44038bea97497f94f6b99.jpg

①Client(客户端) :即docker CLI,通过这个客户端使用Docker的相关指令与Docker守护进程进行交互,从而进行Docker镜像的创建、拉取和运行等操作。

②DOCKER_HOST(Docker主机):即Docker内部引擎运行的主机,主要指Docker daemon。可以通过Docker守护进程与客户端和Registry进行交互,从而管理镜像和容器等。

③Registry(注册中心):Docker镜像仓库。常用对象有Images(镜像)和Containers(容器)等。

三、Docker底层技术

①Namespaces(名称空间):Docker使用名称空间来为容器提供隔离的工作空间。

②Control groups(控制组):对程序进行资源限定,允许Docker引擎在容器间进行硬件资源共享以及随时进行限制和约束。

③Unoin file systems(联合文件系统):UnionFS是一种分层、轻量级并且高性能的文件系统,支持将文件系统的修改作为一次提交来一层层地叠加,同时可以将不同的目录挂载到同一个虚拟文件系统下。不同Docker容器可以共享一些基础的文件系统层,与自己独有的改动层一起使用,从而提高存储效率。

④Container format(容器格式):Docker引擎将名称空间、控制组和联合文件系统组合成一个叫做容器格式的整体。当前默认的容器格式是libcontainer。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/987024.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

金融工程学学习笔记第一章

第一章 金融工程概述 什么是金融工程 金融工程的含义 金融工程: 金融工程:一门融现代金融学、数理和工程方法与信息技术与一体的新兴交叉型学科。 工程是指以某种设想的目标为依据,应用有关科学知识和技术手段,通过有组织的一…

AI极客日报0908 - Zoom的AI新功能揭示;助听技术的未来趋势;ChatGPT与Canva的融合;机器人学习策略游戏

最新动态 💻 Zoom推出内置AI助手 概述:Zoom刚刚推出了AI Companion,这是一个嵌入其平台的AI助手,旨在提高生产效率 — 对付费用户来说没有额外费用。 关键点: AI Companion将协助用户撰写聊天回复,自动生…

preload和prefetch、dns-prefetch和preconnect

一、preload和prefetch 二、dns-prefetch和preconnect (也是针对未来页面) 三、总结

ModuleNotFoundError: No module named ‘lavis‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

idea所有历史版本下载

目录 链接直达 图文讲解 我idea嘎了,最新版的一直在闪退,于是我就在网上找idea的历史版本下载,结果都不太如意。 链接直达 idea历史版本 图文讲解 来到idea下载的官网 Download IntelliJ IDEA – The Leading Java and Kotlin IDE 一直…

面向过程的编程语言(如:C)和面向对象的编程语言(如:C++)的区别

面向过程的编程语言(如C)和面向对象的编程语言(如C)在编程范式上有明显的区别。 抽象级别: 面向过程的语言侧重于算法和过程的编写,将程序分解为一系列函数或过程的集合。而面向对象的语言则强调数据和对象的封装&…

python 创建 Telnet 客户端

目录 前言 1. Telnet 客户端框架 2. Telnet 代码分解 2.1 基于 TK 创建会话窗口 2.1.1 创建 Text 文本控件 2.1.2 创建 Frame 容器 2.1.2.1 基于 Frame 容器创建主机地址输入框 2.1.2.1.1 主机地址输入框绑定焦点事件 2.1.2.2 创建 Telnet 连接按钮控件 2.1.2.3 创建…

机器学习——图片处理应用(人脸补全)

0、前言:本文内容是机器学习算法回归预测的应用,其中数据集主要来自sklearn库自带的人脸数据,目的是通过KNN回归、线性回归、岭回归算法通过人物的左半张脸预测人物的右半张脸。 意义1:通过该项目掌握图片数据在机器学习当中的处…

CSS笔记(黑马程序员pink老师前端)圆角边框

圆角边框 border-radius:length; 效果显示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Documen…

【新项目】

01 概述 新凝血四项&#xff0c;又称血栓前四项&#xff0c;分为&#xff1a;TAT、PIC、TM、tPAI.C四个检测项目。 生理性高凝状态会伴随着孕妈妈们的整个妊娠期&#xff0c;凝血和纤溶系统的异常状态导致孕产妇发生静脉血栓栓塞症(VTE)的风险比一般人群高。非妊娠妇女凝血项…

LeetCode518. 零钱兑换 II

518. 零钱兑换 II 一、题目 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证…

RTMP流媒体服务器EasyDSS视频直播点播平台如何生成可自动播放的分享链接

EasyDSS支持一站式的上传、转码、直播、回放、嵌入、分享功能&#xff0c;具有多屏播放、自由组合、接口丰富等特点。平台可以为用户提供专业、稳定的直播推流、转码、分发和播放服务&#xff0c;全面满足超低延迟、超高画质、超大并发访问量的要求。在推流方面&#xff0c;Eas…

PostgreSQL PG15 新功能 PG_WALINSPECT

开头还是介绍一下群&#xff0c;如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis &#xff0c;Oracle ,Oceanbase 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请加微信号 liuaustin3 &#xff08;…

ABAP内表排序

SORT在用于给内表排序时&#xff0c;后面可以用ASCENDING和DESCENDING进行升序和降序排列&#xff0c;但是这其中用法很多&#xff0c;经过尝试后总结如下&#xff1a; 1.SORT LT_TAB BY WERKS LGORT EMAIL. 正常排序并使用默认ASCENDING. 2.SORT LT_TAB BY WERKS LGORT EMAI…

Java测试(10)--- selenium

1.定位一组元素 &#xff08;1&#xff09;如何打开本地的HTML页面 拼成一个URL &#xff1a;file: /// 文件的绝对路径 import os os.path.abspath(文件的绝对路径&#xff09; &#xff08;2&#xff09;先定位出同一类元素&#xff08;tag name&#xff0c;name&…

NUC980webServer开发

目录 1.RTL8189FTV驱动移植 2.wifi配置工具hostapd移植 1.openssl-1.0.2r交叉编译 2.libnl-3.2.25.tar.gz交叉编译 3.hostapd-2.9.tar.gz交叉编译 4.移植相关工具到开发板 1.RTL8189FTV驱动移植 1. 把驱动文件源码放在linux源码的drivers/net/wireless/realtek/rtlwifi/目录…

LeetCode //C - 114. Flatten Binary Tree to Linked List

114. Flatten Binary Tree to Linked List Given the root of a binary tree, flatten the tree into a “linked list”: The “linked list” should use the same TreeNode class where the right child pointer points to the next node in the list and the left child …

在Android和iOS上设置手机ip详细教程

大家好&#xff01;今天我们将分享一个关于如何在Android和iOS设备上设置手机ip&#xff08;Layer 2 Tunneling Protocol&#xff09;的简易教程。如果你想要通过安全且可靠的方式连接到远程网络&#xff0c;那么跟着本文一起学习吧&#xff01;无需复杂操作&#xff0c;让我们…

KUKA机器人后台控制程序(SPS)介绍

KUKA机器人后台控制程序(SPS)介绍 KUKA机器人后台控制程序主要包括以下几部分: RC:运动控制、机器人轨迹规划 优先级1 I/O刷新:输入输出信号的控制 优先级1 SPS:用户可编辑的后台逻辑程序 优先级2 显示界面刷新:示教器显示画面的控制 优先级3 以上的程序需要12ms(固定…

企业架构LNMP学习笔记19

Nginx 第三方模块的使用&#xff1a; Nginx官方没有的功能&#xff0c;开源开发人员定制开发了一些功能&#xff0c;把代码公布出来&#xff0c;可以通过编译加载第三方模块的方式&#xff0c;使用新功能。 NGINX 3rd Party Modules | NGINX shell > tar xvf ngx-fancyinde…