Docker 架构

news2024/9/22 21:19:46

Docker 架构

  • 简介
  • Docker daemon (守护进程)
  • Docker client (客户端)
  • Docker registries (仓库)
  • Images (镜像)
  • Containers (容器)
  • The underlying technology (底层技术)


简介

Docker 使用 client-server 体系结构Docker client (docker 客户端)Docker daemon(docker 守护进程)进行对话,后者负责构建、运行和分发Docker容器。Docker客户端和守护进程可以在同一系统上运行,也可以将 Docker 客户端 连接到远程 Docker 守护进程。Docker 客户端 和 守护进程 使用REST API通过UNIX套接字或网络接口进行通信。另一个Docker客户端 是Docker Compose,它允许使用由一组容器组成的应用程序。

在这里插入图片描述


Docker daemon (守护进程)

  • Docker 守护进程(dockerd)侦听Docker API请求并管理Docker对象, 如 images, containers, networks, and volumes(图像、容器、网络和卷) 。守护进程还可以与其他守护进程通信,以管理Docker服务。

Docker client (客户端)

  • Docker 客户端(Docker)是许多Docker用户与Docker交互的主要方式。 当使用诸如 docker run之类的命令时,客户端会将这些命令发送给 dockerd,后者会执行这些命令。docker 命令使用 docker API。Docker客户端可以与多个守护进程进行通信。

Docker registries (仓库)

  • Docker registries 存储 Docker images。 Docker Hub 是一个任何人都可以使用的公共 registries,默认情况下,Docker 配置为在Docker Hub上查找 images。甚至可以运行自己的私人 registries。

  • 当使用docker pulldocker run命令时,将从配置的 registries 中提取所需的 images。当使用docker push命令时, images 将被推送到配置的 registries 中。


Images (镜像)

  • Images 是一个只读模板,带有创建Docker容器的说明。 通常,一个 Images 是基于另一个 Images ,并进行一些额外的自定义。例如,构建一个基于ubuntu 镜像的镜像,但安装Apache web服务器和应用程序,以及运行应用程序所需的配置详细信息。

  • 可以创建自己的 Images ,也可以只使用他人创建并在注册表中发布的Images 。要构建自己的 Images ,可以创建一个Dockerfile,该文件使用简单的语法来定义创建镜像和运行镜像所需的步骤。Dockerfile中的每个指令都会在 Images 中创建一个层。当更改Dockerfile并重建镜像时,只会重建那些已更改的层。


Containers (容器)

  • 容器是 Images 的可运行实例。 可以使用Docker API或CLI创建、启动、停止、移动或删除容器。可以将容器连接到一个或多个网络,将存储连接到容器,甚至可以根据容器的当前状态创建新镜像。

The underlying technology (底层技术)

  • Docker是用Go编程语言编写的,并利用Linux内核的几个特性来提供其功能。Docker使用一种名为 namespaces 的技术来提供称为容器的隔离工作空间。当运行一个容器时,Docker会为该容器创建一组命名空间 。
  • 这些名称空间提供了一层隔离。容器的每个方面都在一个单独的命名空间中运行,其访问权限仅限于该命名空间。
  • 通过Cgroups: 其名称源自控制组群(control groups)的简写,用来限制、控制与分离一个进程组的资源(如CPU、内存、磁盘输入输出等)。



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

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

相关文章

前缀和 技巧小记

前缀和 子数组的元素之和:一维前缀和子矩阵的元素之和:二维前缀和前缀和 哈希表:寻找和为 target 的子数组 子数组的元素之和:一维前缀和 前缀和适用于快速、频繁地计算一个索引区间内的元素之和。 int res 0; // 存储区间[…

链表:常见面试题-拷贝特殊链表

题目: 一种特殊的单链表节点类描述如下: class Node { int value; Node next; Node rand; Node(int val) {value val} } rand指针是单链表节点结构中新增的指针,rand可能指向链表中的任意一个节点(包括自己),也可…

计算机电脑中了勒索病毒怎么办,Windows系统中了faust勒索病毒解密数据恢复

电脑的操作系统被恶意软件攻击已不再是新鲜的话题了。而攻击的恶意软件中有一种叫做faust勒索病毒,常常袭击Windows电脑系统。如果我们的电脑在使用Windows操作系统时感染了faust勒索软件,请不要慌张,我们可以咨询专业的数据恢复厂商&#xf…

深度学习技巧应用11-模型训练中稀疏化参数与稀疏损失函数的应用

大家好,我是微学AI,今天给大家介绍一下深度学习技巧应用11-模型训练中稀疏化参数与稀疏损失函数的应用,在训练神经网络的过程中,将稀疏损失加入到常规损失函数的作用主要是降低模型复杂性和提高模型泛化能力。通过引入稀疏性约束,优化算法会在减小常规损失的同时,尽量让参…

快速上手非关系型数据库Redis

一、Redis介绍 1.非关系型数据库,纯内存操作,key-value存储,性能很高,可持久化(内存---->保存到硬盘上) 2.缓存,计数器,验证码,geo地理位置信息,发布订阅…

【前端知识】Cookie, Session,Token和JWT的发展及区别(上)

【前端知识】Cookie, Session,Token和JWT的发展及区别(上) 1. 背景2. Cookie2.1 Cookie的定义2.2 Cookie的特点2.3 Cookie的一些重要属性✨2.3.1 Cookie的重要属性🎇2.3.2 Cookie的有效期,max-age和作用域,…

SQL注入(一)联合查询 报错注入

目录 1.sql注入漏洞是什么 2.联合查询: 2.1注入思想 2.2 了解information_schema 数据库及表 3.可替代information_schema的表 3.1 sys库中重要的表 4. 无列名注入 利用 join-using 注列名。 4. 报错注入 4.1 常用函数:updatexml、extractvalue…

Java 基础进阶篇(五)—— 接口详解

文章目录 一、接口概述二、接口的基本使用三、接口从 JDK 8 开始新增的方法四、接口的注意事项(了解)补充:接口与接口的关系 一、接口概述 规范的基本特征是约束和公开。 接口就是一种规范,其约束别人必须干什么事情。 所以&…

FileZilla读取目录列表失败(vsftpd被动模式passive mode部署不正确)

文章目录 现象问题原因解决方法临时解决(将默认连接方式改成主动模式)从根本解决(正确部署vsftpd的被动模式) 现象 用FileZilla快速连接vsftpd服务器时,提示读取目录列表失败 问题原因 是我vsftpd服务端的被动模式没…

Python每日一练(20230501)

目录 1. 对链表进行插入排序 🌟🌟 2. 平衡二叉树 🌟🌟 3. 找出素数对 ※ 🌟 每日一练刷题专栏 🌟 Golang每日一练 专栏 Python每日一练 专栏 C/C每日一练 专栏 Java每日一练 专栏 1. 对链表进行…

Linux主机信息搜集

1、系统架构 打印系统信息 uname -a 文件 /etc/issue是一个文本文件,其中包含要在登录提示之前打印的消息或系统标识 cat /etc/issue /etc/lsb-release,/etc/redhat-release文件包含一个被解析以获取信息的描述行 cat /etc/*-release /proc/versi…

创作纪念日让 AI 与我共同记录下今天 — 【第五周年、1460天】

今天正是五一,收到一条消息? 五一还要我加班 😏? 喔,原来是 CSDN 给我发的消息呀!我在 CSDN 不知不觉已经开启第五周年啦! 目录 1.机缘2.收获3.日常4.我与 AI 的“合作”part Ipart II Super al…

java 多用户即时通信系统的实现 万字详解

目录 前言 一、拾枝杂谈 1.项目开发大体流程 : 2.多用户即时通信系统分析 : 1 需求分析 2 整体分析 二、用户登录 1.准备工作 : 2.客户端 : 1 菜单界面 2 登录验证 3 线程创建 4 线程管理 3.服务端 : 1 用户验证 2 线程创建 3 线程管理 4.登录测试 : 三、在线列表 1.…

探索深度学习世界:掌握PyTorch,成为AI领域的行家

探索深度学习世界:掌握PyTorch,成为AI领域的行家 PyTorch的背景介绍PyTorch的基本概念与特点PyTorch的基本应用张量和自动求导神经网络搭建训练和测试模型 模型的保存和加载模型保存:模型加载:模型使用: PyTorch与其他…

【KVM虚拟化】· 命令行KVM安装linux

目录 🍁基础本环境配置 🍁添加lvm卷 🍁qemu-img创建磁盘文件 🍂创建raw格式 🍂创建虚拟机 🍂转换格式为qcow2 🍁virt-install命令参数 🍁案例操作 🦐博客主页&#xff1a…

【C++】 小项目---宠物小屋的分析设计与开发实现

目录 需求 分析设计 动物类 笼子类 房子类 人类 小贴士 整体设计图 开发实现 动物类 笼子类 房子类 人类 小贴士 控制台主函数 需求 动物猫(CCat)、狗(CDog)、蛇(CSnake),包含名字&…

对折纸张厚度超过珠峰

对折 0.1 毫米的纸张,循环对折,超过珠峰高度输出对折次数。 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单…… 地址&a…

【计算机网络】学习笔记:第六章 应用层【王道考研】

基于本人观看学习b站王道计算机网络课程所做的笔记&#xff0c;不作任何获利 仅进行交流分享 特此鸣谢王道考研 若有侵权请联系&#xff0c;立删 如果本篇笔记帮助到了你&#xff0c;还请点赞 关注 支持一下 ♡>&#x16966;<)!! 主页专栏有更多&#xff0c;如有疑问欢迎…

每天一道算法练习题--Day17 第一章 --算法专题 --- ----------布隆过滤器

场景 假设你现在要处理这样一个问题&#xff0c;你有一个网站并且拥有很多访客&#xff0c;每当有用户访问时&#xff0c;你想知道这个 ip 是不是第一次访问你的网站。 hashtable 可以么 一个显而易见的答案是将所有的 IP 用 hashtable 存起来&#xff0c;每次访问都去 hash…

ARM架构基本理论(1)

ARM架构基本理论 一、ARM的简介 ARM&#xff08;Advanced RISC Machine&#xff09;是一种基于RISC&#xff08;Reduced Instruction Set Computing&#xff09;架构的计算机处理器架构&#xff0c;由ARM Holdings&#xff08;ARM公司&#xff09;开发和授权给其他公司生产和…