Docker-运行时

文章目录

  • 1. docker 的运行时
    • 1. Docker 守护进程(Docker Daemon):
    • 2. Docker 客户端(Docker Client):
    • 3. 容器运行时(Container Runtime):
      • runc、containerd 和 CRI-O 的简单介绍:
          • runc:
          • containerd:
          • CRI-O :
    • 4. **Docker 镜像(Docker Images)**:
    • 5. **Docker 容器(Docker Containers)**:
    • 6. **Docker 网络(Docker Networking)**:
    • 7. **Docker 卷(Docker Volumes)**:
    • 8. **Docker 插件(Docker Plugins)**:
    • 9. **Docker Compose**:
    • 10. **Docker Registry**:


1. docker 的运行时

Docker 的运行时环境指的是 Docker 守护进程(Docker Daemon)和容器运行时(Container Runtime)的组合,它们共同工作以支持容器的创建、执行和管理。以下是 Docker 运行时的组成部分和它们的功能:

1. Docker 守护进程(Docker Daemon):

  • Docker 守护进程是 Docker 架构的核心,它作为后台服务运行。
  • 它负责监听 Docker 客户端的请求,如 Docker CLI 或 Docker API。
  • 守护进程管理镜像、容器、网络和卷。
  • 它还负责创建和销毁容器,以及监控容器的运行状态。

2. Docker 客户端(Docker Client):

  • Docker 客户端是用户与 Docker 守护进程交互的工具,通常是命令行界面(CLI)。
  • 客户端发送请求到守护进程,如构建镜像、运行容器等。

3. 容器运行时(Container Runtime):

  • 容器运行时是负责创建和运行容器的软件组件。
  • 它负责启动容器、管理系统资源、网络和存储。
  • Docker 支持多种容器运行时,如 runC、containerd、CRI-O 等。

runc、containerd 和 CRI-O 的简单介绍:

 runc、containerd 和 CRI-O 都是容器技术领域中的关键组件,它们与 Docker 和 Kubernetes 等容器生态系统紧密相关。
runc:
  • runc 是一个遵循 Open Container Initiative (OCI) 规范的容器运行时,负责管理容器的生命周期,包括创建、启动、停止和删除容器。
  • 它是一个底层组件,提供了必要的接口来实现容器的隔离、资源限制和安全性。
  • runc 可以独立使用,但它通常作为其他容器管理系统的一部分,如 Docker 或 Kubernetes,来提供运行容器的基础设施。
containerd:
  • containerd 是一个行业标准的容器运行时,它提供了容器生命周期管理的功能,并且是 Docker 的一部分。它允许 Docker 守护进程直接调用 runc 的 API。

  • containerd 旨在提供容器运行时的底层服务,包括镜像管理、容器创建和销毁、网络和存储等。

  • 它是一个可插拔的容器运行时系统,设计为模块化,允许开发者选择或替换不同的组件以满足特定的需求。

    CRI-O :
  • CRI-O 是一个专为 Kubernetes 设计的轻量级容器运行时,实现了 Kubernetes 所需的容器运行时接口 (CRI)。

  • 它允许 Kubernetes 集群直接运行符合 OCI 标准的容器,而不需要依赖 Docker 或其他容器运行时。

  • CRI-O 支持 runc 和 Clear Containers 运行时,并且与任何兼容 CNI 的网络插件协同工作,提供了对容器网络接口的支持。

这三个组件在容器生态系统中扮演着不同的角色,但它们共同的目标是提供一个高效、安全且标准化的方式来运行和管理容器。runc 作为实现 OCI 规范的容器运行时,containerd 作为 Docker 的底层容器运行时组件,而 CRI-O 则是 Kubernetes 集群的容器运行时,它们共同构成了容器化应用运行的基础设施。

4. Docker 镜像(Docker Images)

  • 镜像是容器的只读模板,包含了运行容器所需的所有文件系统内容。
  • 镜像由多个层组成,每一层代表 Dockerfile 中的一个指令。

5. Docker 容器(Docker Containers)

  • 容器是镜像的运行实例,它们是隔离的、安全的和轻量级的。
  • 容器共享宿主机的内核,但在文件系统、网络和进程空间上与宿主机和其他容器隔离。

6. Docker 网络(Docker Networking)

  • Docker 提供了多种网络配置选项,允许容器之间以及容器与外部世界通信。
  • 网络驱动程序支持桥接网络、覆盖网络、主机网络等。

7. Docker 卷(Docker Volumes)

  • 卷用于在容器之间持久化和共享数据。
  • 它们独立于容器的生命周期,并且可以跨容器挂载。

8. Docker 插件(Docker Plugins)

  • 插件用于扩展 Docker 的功能,如添加新的网络或存储驱动程序。

9. Docker Compose

  • Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。
  • 它使用 YAML 文件(通常命名为 docker-compose.yml)来配置应用程序的服务。

10. Docker Registry

- 注册表是存储和分发 Docker 镜像的服务。
- Docker Hub 是最流行的公共注册表,但也可以设置私有注册表。

Docker 的运行时环境提供了一个完整的生态系统,用于开发、部署和运行容器化应用程序。它通过标准化容器的生命周期管理,使得应用程序可以在任何支持 Docker 的系统上运行,从而实现了“一次构建,到处运行”的目标。


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

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

相关文章

【SpringBoot】解锁后端测试新境界:学习Mockito与MockMvc的单元测试魔法

文章目录 前言:Java常见的单元测试框架一.Junit5基础二.SpringBoot项目单元测试1.添加依赖2.SpringBoot单元测试标准结构3.SpringBoot单元测试常用注解 三.单元测试中如何注入依赖对象1.真实注入(AutoWired、 Resource)2.Mock注入2.1.前言2.2…

资料总结分享:瀑布图,GESA,生存曲线

目录 瀑布图 GESA 生存曲线 瀑布图 肿瘤的瀑布图是一种常用的数据可视化方式,用于展示个体患者或研究样本的肿瘤基因组学数据,通常包括基因突变、基因拷贝数变异、染色体重排等信息。 颜色编码: 柱状图通常会使用颜色编码来表示不同类型…

Redis的数据淘汰策略——Java全栈知识(19)

Redis的数据淘汰策略 什么是数据淘汰策略 数据过期策略是 redis 中设置了 TTL 的数据过期的时候 Redis 的处理策略。数据淘汰策略是 Redis 内存不够的时候, 数据的淘汰策略:当 Redis 中的内存不够用时,此时在向 Redis 中添加新的 key, 那么…

SpringMVC dubbo项目测试用例

Spring 4.3 dubbo 2.7 nacos-spring-context1.1.2 nacos1.4 junit 4.13 单元测试用例执行时报错: 感觉是应为nacos和spring注解初始化顺序不同,造成的错误,未找到原因,只能用底层的办法先解决问题 java.lang.IllegalStateExcep…

Elasticsearch 8.1官网文档梳理 - 四、Set up Elasticsearch(ES 集群设置)

Set up Elasticsearch(ES 集群设置) Installing Elasticsearch 点击查看更多信息 Install Elasticsearch from archive on Linux or MacOS Install Elasticsearch with .zip on Windows Install Elasticsearch with Debian Package Install Elastic…

IEEE 802.11标准

在IEEE 802.11标准中使用了扩频通信技术,主要作用是使得抗干扰性更强。 IEEE 802.11在MAC层采用了CSMA/CA协议。 IEEE 802.1x是一种基于端口认证协议。

开源web在线数据库设计软件 —— 筑梦之路

GitHub - drawdb-io/drawdb: Free, simple, and intuitive online database design tool and SQL generator. 简介 DrawDB是一款多功能且用户友好的在线工具,允许用户轻松设计数据库实体关系。通过简单直观的界面,DrawDB使用户能够创建图表、导出SQL脚本…

入门理解python中的generator - 生成器

生成器 Generator 的定义 生成器(Generator)是一种特殊的函数,可以用于迭代地生成一系列值,而不需要一次性生成所有值并将它们存储在内存中。生成器在需要时逐个生成值,并在生成值后暂停执行,保留函数的状…

【C++】栈和队列

目录 前言 一、stack 1. 栈的定义 2. 成员函数 二、queue 1. 队列的定义 2. 成员函数 三、priority_queue 1. 优先队列的定义 2. 成员函数 前言 栈和队列是STL中很重要的两个容器,栈的特点是先进后出;队列的特点是先进先出。还有优先队列&…

kettle经验篇:MongoDB-delete插件问题

目录 项目场景 问题分析 解决方案 MongoDB Delete插件使用总结 项目场景 项目使用的ODS层数据库是MongoDB;在数据中心从DB层向ODS层同步数据过程中,发现有张ODS表在同步过程中,数据突然发生锐减,甚至于该ODS表数据清0。 同步…

算法设计与分析 例题 绘制Huffman树、循环赛、分治、最短路与动态规划

1.考虑用哈夫曼算法来找字符a,b,c,d,e,f 的最优编码。这些字符出现在文件中 的频数之比为 20:10:6:4:44:16。要求: (1)(4 分)简述使用哈夫曼算法构造最优编码的基本步骤; (2)&…

Oracle 流stream数据的复制

Oracle 流stream数据的复制 --实验的目的是捕获scott.emp1表的变化,将变化应用到远程数据库scott.emp1表中。 --设置初始化参数 AQ_TM_PROCESSES1 COMPATIBLE9.2.0 LOG_PARALLELISM1 GLOBAL_NAMEStrue JOB_QUEUE_PROCESSES2 --查看数据库的名称,我的为o…

5.11作业

1:有一个隧道,全长5公里,有2列火车,全长200米, 火车A时速 100公里每小时 火车B时速 50公里每小时 现在要求模拟火车反复通过隧道的场景(不可能2列火车都在隧道内运行…

2024中国(重庆)机器人展览会8月举办

2024中国(重庆)机器人展览会8月举办 邀请函 主办单位: 中国航空学会 重庆市南岸区人民政府 招商执行单位: 重庆港华展览有限公司 2024中国重庆机器人展会将汇聚机器人全产业链知名企业,世界科技领先的生产制造企业与来自多个国家和地区…

蓝桥杯-网络安全比赛(6) 模拟实验 Metasploit 控制并获取Windows 登录HASH、LM Hash和NTLM Hash密文解析

窃取WINDOWS账号密码 系统环境:主机(Windows系统 IP:192.168.126.129),虚拟机(KALI系统 IP:192.168.126.3),两者需要能通过本地网络互通互连。 攻击工具:Metasploit是一…

改变浏览器大小,图片(img)内容居中显示img标签,不是背景图

改变浏览器大小,图片&#xff08;img&#xff09;内容居中显示&#xff0c;img标签&#xff0c;不是背景图 效果直接上图&#xff1a; 上代码&#xff1a; <!DOCTYPE html> <html> <head><title>测试图片居中显示&#xff0c;高度不变只变宽度<…

Electron学习笔记(五)

文章目录 相关笔记笔记说明 七、系统1、系统对话框2、自定义窗口菜单3、系统右键菜单4、快捷键(1)、监听网页按键事件 &#xff08;窗口需处于激活状态&#xff09;(2)、监听全局按键事件 &#xff08;窗口无需处于激活状态&#xff09;(3)、补充&#xff1a;自定义窗口菜单快捷…

异常处理/ROS2异常处理模块源码解读与浅析

文章目录 概述ros2/rcutils/src/error_handling模块自身异常处理错误状态结构与存储本模块初始化错误状态的设置错误状态的获取错误状态的清理不丢失旧错误状态把手段还原为目的其他 概述 本文从如下几个方面对 ROS2.0 中 rcutils 库 error_handling 错误处理模块的源码进行解…

花了24小时做的采购、库存、进销存excel模板,真心好用,免费分享

花了24小时做的采购、库存、进销存excel模板&#xff0c;真心好用 在企业的日常运营中&#xff0c;进销存管理是一项至关重要的任务。它不仅涉及到商品的采购、销售和库存管理&#xff0c;还直接影响到企业的财务状况和市场竞争力。为了提高管理效率&#xff0c;许多企业选择使…

Redis 的 SDS 和 C 中字符串相比有什么优势?

C 语言使用了一个长度为 N1 的字符数组来表示长度为 N 的字符串&#xff0c;并且字符数组最后一个元素总是 \0&#xff0c;这种简单的字符串表示方式 不符合 Redis 对字符串在安全性、效率以及功能方面的要求。 C语言的字符串可能有什么问题&#xff1f; 这样简单的数据结构可…