Docker概念与架构

文章目录

  • 概念
  • docker与虚拟机的差异
    • docker的作用
    • docker容器虚拟化 与 传统虚拟机比较
  • Docker 架构

概念

Docker 是一个开源的应用容器引擎。诞生于 2013 年初,基于 Go 语言实现。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux 机器上。容器是完全使用沙箱机制,相互隔离。容器性能开销极低。Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版)

docker与虚拟机的差异

docker的作用

容器就是将软件打包成标准化单元,以用于开发、交付和部署。

  • 容器镜像是轻量的、可执行的独立软件包 ,包含软件运行所需的所有内容:代码、运行时环境、系统工具、系统库和设置。
  • 容器化软件在任何环境中都能够始终如一地运行。
  • 容器赋予了软件独立性,使其免受外在环境差异的影响,从而有助于减少团队间在相同基础设施上运行不同软件时的冲突

docker容器虚拟化 与 传统虚拟机比较

相同:

  • 容器和虚拟机具有相似的资源隔离和分配优势

不同:

  • 容器虚拟化的是操作系统,虚拟机虚拟化的是硬件。
  • 传统虚拟机可以运行不同的操作系统,容器只能运行同一类型操作系统

Docker 架构

在这里插入图片描述

  • 引擎层

    • Docker Daemon:Docker 守护进程,是 Docker 架构的核心组件,它运行在宿主机上,负责处理 Docker客户端发送的各种命令请求,如创建容器、运行容器、管理镜像等。它会监听来自 Docker 客户端的 API 请求,并与底层的 Linux 内核进行交互,实现对容器的创建、启动、停止等操作。

    • Containerd:它是一个守护进程,负责管理容器的生命周期,包括容器的创建、运行、暂停、恢复和销毁等。它与 Docker
      Daemon 进行通信,接收并执行相关的容器管理命令。

    • runc:runc 是一个轻量级的工具,用于运行符合 Open Container Initiative(OCI)规范的容器。它是 Containerd 与 Linux 内核之间的桥梁,负责在宿主机上创建和启动实际的容器进程。

  • 镜像与仓库

    • Docker Image:镜像是 Docker 容器的基础,它是一个只读的模板,包含了运行一个容器所需的所有文件系统内容,如操作系统、应用程序、库和配置文件等。镜像可以通过 Dockerfile 进行构建,用户可以在 Dockerfile 中定义镜像的内容和配置。

    • Docker Registry:镜像仓库用于存储和管理 Docker 镜像,用户可以将自己构建的镜像推送到镜像仓库,也可以从镜像仓库中拉取所需的镜像。Docker Hub 是官方的公共镜像仓库,同时用户也可以搭建私有的镜像仓库。

    • 容器(Container) :镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和对象一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。

  • 客户端层

    • Docker Client:Docker 客户端是用户与 Docker 系统进行交互的接口,用户可以通过命令行工具(如 docker 命令)或图形化界面工具来操作 Docker。客户端负责向 Docker Daemon 发送请求,并接收 Daemon 返回的结果。

    • Docker Compose:它是一个用于定义和运行多容器 Docker 应用的工具,用户可以通过一个 YAML 文件来定义多个容器之间的关系、配置和依赖,然后使用一条命令就可以启动、停止和管理整个应用栈。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux server docker 拉取镜像速度太慢或者超时的问题处理记录

已经按网上的帖子将镜像地址改为国内的了,用docker info命令查看,如下图所示: 但是还存在下载镜像特别卡的问题,而不是直接报错了,如下图所示: 甚至已经连续下载一晚上了,还是卡在这里,不见任何下载进展。 我在window的docker中下载了对应的镜像,并用以下语句生成了…

四十二:VSCODE打开新文件覆盖上一个文件窗口问题

VSCODE打开新文件覆盖上一个文件窗口问题_vscode enablepreview-CSDN博客

shell文本处理

shell文本处理 一、grep ​ 过滤来自一个文件或标准输入匹配模式内容。除了 grep 外,还有 egrep、fgrep。egrep 是 grep 的扩展,相当于 grep -E。fgrep 相当于 grep -f,用的比较少。 用法 grep [OPTION]... PATTERN [FILE]...支持的正则描述…

下载b站视频音频

文章目录 方案一:jjdown如何使用 方案二:bilibili哔哩哔哩下载助手如何使用进入插件网站插件下载插件安装 使用插件下载视频音频:复制音频下载地址 方案三:bat命令下载单个音频下载单个视频下载单个音视频 方案一:jjdo…

【项目管理】基于 C 语言的 QQ 聊天室实现(TCP + 多线程 + SQLite3)

基于 C 语言的 QQ 聊天室(TCP + 多线程 + SQLite3) 项目功能基础功能: 登录、注册、添加好友、私聊、创建群聊、群聊扩展功能: 删除好友、注销账号、好友在线状态、群管理(拉人/踢人)、VIP 特权、邮件通知等 功能介绍:模拟QQ聊天客户端:登录界面:1、登录2、注册 //将用…

Linux驱动开发-字符设备驱动开发

Linux驱动开发-字符设备驱动开发 一,Linux驱动开发二,字符设备驱动开发1.具体实现2.1.1驱动模块具体函数实现2.1.2 应用调试模块具体函数实现2.1.3 Makefile2.1.4 进行测试2.1.4.1创建节点2.1.4.2 加载和卸载驱动模块2.1.4.3 测试 2.字符设备驱动应用程序…

e2studio开发RA4M2(17)----ADC扫描多通道采样

e2studio开发RA4M2.17--ADC扫描多通道采样 概述视频教学样品申请硬件准备参考程序源码下载ADC属性配置回调函数主程序演示结果 概述 在嵌入式系统中,ADC(模数转换器)是一个非常重要的组件,它将模拟信号转换为数字信号。为了提高采…

编写一个基于OpenSSL的SSL/TLS服务端(HTTPS)可运行的完整示例

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 源码指引:github源…

MyBatis的关联映射

前言 在实际开发中,对数据库的操作通常会涉及多张表,MyBatis提供了关联映射,这些关联映射可以很好地处理表与表,对象与对象之间的的关联关系。 一对一查询 步骤: 先确定表的一对一关系确定好实体类,添加关…

利用Git和wget批量下载网页数据

一、Git的下载(参考文章) 二. wget下载(网上很多链接) 三、git和wget结合使用 1.先建立一个文本,将代码写入文本(代码如下),将txt后缀改为sh(download_ssebop.sh&#xf…

deepseek助力运维和监控自动化

将DeepSeek与Agent、工作流及Agent编排技术结合,可实现IT运维与监控的智能化闭环管理。以下是具体应用框架和场景示例: 一、智能Agent体系设计 多模态感知Agent 日志解析Agent:基于DeepSeek的NLP能力,实时解析系统日志中的语义&a…

从零开始实现机器臂仿真(UR5)

1. UR5软件配置 # 安装 MoveIt! 依赖 sudo apt install ros-humble-moveit ros-humble-tf2-ros ros-humble-moveit-setup-assistant ros-humble-gazebo-ros-pkgs # 安装 UR 官方 ROS2 驱动 sudo apt update sudo apt install ros-humble-ur-robot-driver ros-humble-ur-descri…

h5 IOS端渐变的兼容问题 渐变实现弧形效果

IOS端使用渐变的时候有兼容问题 以下是问题效果,图中黑色部分期望的效果应该是白色的。但是ios端是下面的样子…… 安卓pc 支持: background-image: radial-gradient(circle 40rpx at 100% 0, #f3630c 40rpx, rgb(255, 255, 255) 50%);安卓pc ios支持…

文件上传漏洞与phpcms漏洞安全分析

目录 1. 文件上传漏洞简介 2. 文件上传漏洞的危害 3. 文件上传漏洞的触发条件 1. 文件必须能被服务器解析执行 2. 上传目录必须支持代码执行 3. 需要能访问上传的文件 4. 例外情况:非脚本文件也可能被执行 4. 常见的攻击手法 4.1 直接上传恶意文件 4.2 文件…

DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 DeepSeek 助力 Vue3 开发:打造丝滑的时间选择器(Time Picker)📚前言📚页面效果📚指令输入…

「多开浏览器」颜值升级之「消灭堆叠的窗口」(二)

01 传统指纹浏览器的架构 传统指纹浏览器(也称为多用户浏览器或反检测浏览器)是一种用于模拟多个独立用户环境的技术工具,主要用于网络爬虫、广告验证、社交媒体管理等场景。其核心目标是通过模拟不同的浏览器指纹(Browser Finge…

IndexError: index 0 is out of bounds for axis 1 with size 0

IndexError: index 0 is out of bounds for axis 1 with size 0 欢迎来到英杰社区,这里是博主英杰https://bbs.csdn.net/topics/617804998 报错原因 数组或数据结构为空 如果数组或 DataFrame 在指定的维度上没有任何元素(例如,没有列&#x…

本地部署阿里万象2.1文生视频模型(Wan2.1-T2V)完全指南

在生成式AI技术爆发式发展的今天,阿里云开源的万象2.1(Wan2.1)视频生成模型,为创作者提供了从文字/图像到高清视频的一站式解决方案。本文针对消费级显卡用户,以RTX 4060 Ti 16G为例,详解本地部署全流程与性能调优方案,涵盖环境配置、多模型选择策略、显存优化技巧及实战…

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程

[Python学习日记-85] 并发编程之多进程 —— Process 类、join 方法、僵尸进程与孤儿进程 简介 multiprocessing 模块 Process 类 僵尸进程与孤儿进程 简介 在前面的进程理论的介绍当中我们已经介绍了进程的概念、并发与并行的区别以及进程并发的实现理论,这些都…

飞书考勤Excel导入到自己系统

此篇主要用于记录Excel一行中,单条数据的日期拿取,并判断上下班打卡情况。代码可能满足不了大部分需求,目前只够本公司用,如果需要,可以参考。 需要把飞书月度汇总的考勤表导入系统中可以参考下。 下图为需要获取的年…