当前位置: 首页 > article >正文

Docker 架构

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.kler.cn/news/17407.html

相关文章:

  • Vue生命周期
  • 第二十四回:如何屏蔽事件
  • SpringMVC(后)SSM整合
  • [创新工具和方法论]-01- DOE课程基础知识
  • K8s 安全是云安全的未来
  • AI仿写软件-仿写文章生成器
  • 计算机组成原理4.2.3提高存储器访问速度的措施
  • 送了老弟一台 Linux 服务器,它又懵了!
  • Ae:橡皮擦工具
  • Redis缓存穿透和雪崩
  • 3 文件和目录
  • 归纳截图小结
  • innodb_flush_log_at_trx_commit 和 sync_binlog 参数解析
  • 数字中国建设峰会|大模型带来产业智能化新机遇
  • 【Linux0.11代码分析】03 之 setup.s 启动流程
  • C++——类和对象(3)
  • 初识 OPC
  • 05_Uboot源码目录分析
  • Java 版 spring cloud 工程系统管理 工程项目管理系统源码 工程项目各模块及其功能点清单
  • 2.压力测试+优化(Jmeter)
  • ChatGPT提示词工程(四):Inferring推断
  • MySQL基础
  • vim编辑器
  • Build生成器模式
  • (二)【平衡小车制作】电机驱动(超详解)
  • 内存越界是否一定会导致程序崩溃吗?详解内存越界
  • CUDA下载,以及下载GPU版本的pytorch
  • JAVA基于Springboot框架的停车场管理系统开发实践和实现【附源码】
  • DP动态规划
  • 1.rabbitMQ介绍