【云原生丶Docker】理解Docker的核心概念

news2024/9/30 19:27:33

Docker的核心优势是什么?

在 什么是虚拟化技术? 一文中,我们对虚拟机和 Docker 都有了简单的了解,需要的小伙伴可以自行跳转回顾~

Docker与传统虚拟化技术有什么区别?

Docker 相比传统的虚拟机技术更轻量级,它可以将应用程序打包成容器镜像,每个容器都具有自己的应用程序和系统依赖,并共享宿主机的操作系统内核和系统资源。容器启动和停止比较快,占用的系统资源比虚拟机少, Docker 适用于快速部署和迁移应用程序的场景。

虚拟机和Docker容器的原理对比:
在这里插入图片描述
虚拟机和Docker容器的优劣势对比:
在这里插入图片描述

Docker 的出现解决了应用程序在不同环境下部署和运行的问题。

在传统的应用程序部署方式中,应用程序需要在每个目标环境中进行配置、安装依赖、调试等工作,这样耗费的时间和资源很多。而 Docker 则提供了一种可移植的打包和分发应用程序的方式,使得应用程序可以在任何环境中快速、可靠地部署和运行。

Docker核心概念

Docker有三大核心概念:镜像Image)、容器Container)、仓库Repository

1、镜像Image

Docker镜像 是我们创建和运行Docker容器的基础,它类似于虚拟机的镜像,但其与ISO等打包文件可大不相同!它实际上是一个特殊的文件系统。它包含了应用程序运行时的整个系统环境,其甚至包含了完整的root文件系统!有了镜像,我们可以完全不考虑环境依赖的问题,可以轻松进行系统迁移,这和java一次编译多次运行有异曲同工之妙!

在实际使用中,我们通常通过DockerFile来定制镜像。

2、容器Container

Docker容器 是一个轻量级的沙盒,应用运行在不同的容器中从而实现隔离效果。容器的创建和运行是以镜像为基础的,容器可以被创建、销毁、启动和停止等。

3、仓库Repository

Docker仓库类似于我们开发中的代码仓库,各种各样的镜像都在Docker仓库中存放。Docker仓库又分为公开仓库 (Public) 和私有仓库 (Private) 两种形式。

公开仓库:开放给所有用户使用,允许用户上传、下载公开的镜像。Docker官方也有一个公开仓库 Docker Hub,并且它是默认的 Registry

另外,国内访问这些仓库速度都很慢,我们可以通过阿里云、网易云等提供的镜像加速器来快速的下载Docker Hub的镜像。

私有仓库:在本地创建一个只能自己访问的私有仓库。

Docker基本架构

Docker 使用的是典型的C/S架构模式(客户端-服务器架构),此架构的核心理念在于解耦。如下图所示:

在这里插入图片描述

Docker的客户端使我们使用Docker的主要方式,其提供了一些可执行命令,通过这些命令可以与Docker的守护进程进行交互。

Docker守护进程作为服务器端接收客户端发来的请求,并负责实现构建、运行、分发容器的工作。

Registry 是镜像仓库,负责集中存储和分发镜像的服务。

Docker的核心组件

Docker 的生态系统包含了多个组件,包括 Docker EngineDocker HubDocker ComposeDocker Swarm 等。

  • Docker EngineDocker 的核心组件,用于管理容器和镜像
  • Docker HubDocker 的镜像仓库,用于存储和分享 Docker 镜像
  • Docker Compose 可以用于定义和运行多容器的工具,通过 YAML 文件来定义应用程序的服务和容器,通过Docker Compose 启动和管理这些容器。
  • Docker SwarmDocker 的集群管理工具,用于管理多个 Docker 节点和容器的部署和调度。通过 Docker Swarm,可以实现容器的自动化调度和负载均衡、容器的自动扩缩容等功能。

参考:

1、rundreamsFly导师博客

2、Docker官方文档


🎉 如果喜欢这篇文章,点赞👍 收藏关注 ✅ 哦,创作不易,感谢!😀

请添加图片描述

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

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

相关文章

TikTok上的中国商品,老外买上瘾了!

在TikTok的全球影响力下,一些中国商品正实现销量的创纪录增长 2022年底,TikTok发了其第五份“Year on TikTok”年度报告,概述了过去12个月TikTok平台上热度最高的创作者、视频内容,以及#TikTokMadeMeBuyIt标签下最热门的5大产品&…

c语言printf输出格式(%d %f %e %x)

一、%d第一组:%d %nd %-nd第二组:%d %0nd %-0nd %.nd第三组:%d %m.nd %-m.nd 二、%f%f %.nf %m.nf %-m.nf 三、%e%e %.ne %me %-me %m.ne %-m.ed 四、%x%x %0nx %nx %-nx 一、%d 第一组:%d %nd %-nd ①n表示输出宽度&#xff08…

深度学习中使用的16位浮点数格式

深度学习中使用的16位浮点数格式 flyfish 文章目录 深度学习中使用的16位浮点数格式浮点数是一个近似值浮点数的表示float单精度类型 和 double双精度类型 的比较查看所占的字节数大小端的比较计算方法16位 float 半精度格式bflat16格式bflat16格式 与 float32单精度格式 比较…

手敲MyBatis(十二章)-ResultMap解析映射使用

1.前言 这一章节主要解决好几章之前留下的坑,需要根据XML配置的ReultMap进行解析映射成具体的PO供用户使用。 我们本章就来解决下在xml中配置了如下标红框的内容,怎么解析映射到具体的实体类中,如下就是将id为activityMap的resultMap怎么解…

发送图文并茂的html格式的邮件

本文介绍如何生成和发送包含图表和表格的邮件,涉及echarts图表转换为图片、图片内嵌到html邮件内容中、html邮件内容生成、邮件发送方法等 一、图表处理 因为html格式的邮件不支持echarts,也不支持js执行,所以图表需要转换为图片内嵌在邮件内容中 因为平…

Sui Builder House京都站倒计时!

Sui Builder House京都站将于6月29日-30日举行,为世界各地的开发者提供身临其境地学习和交流的机会。查看Sui Builder House京都站的五个亮点 活动信息 📆 Builder House时间:2023年6月29日 — 6月30日 📍 活动地址:…

NetSuite OAuth1.0中InvalidSignature问题

本周闭关写代码,用Java通过TBA方式访问NetSuite REST Webservices。由于是手生,卡在InvalidSignature报错上,在这个问题上被卡了一整天。 直到终于到来的Aha时刻。 在NetSuite中的样例代码是PHP的, 我平移到Java后,代码…

【云原生丶Docker】虚拟化技术简介

什么是虚拟化技术? Docker 是一款基于容器虚拟化技术构建的软件,那到底什么虚拟化技术呢?在学习 Docker 之前,先简单了解下虚拟化技术。 虚拟化是云原生的实现基础,它能够帮助我们更加有效地利用物理计算机硬件。 虚…

clip-interrogator本地部署

clip-interrogator本地部署 1. 克隆源码2. 创建虚拟环境及配置3. 下载远程相关文件3.1 下载Salesforce相关文件失败3.2 下载cache相关文件失败3.3 解决库不完整问题 4. 测试代码4.1 脚本一4.2 脚本二4.3 测试run_cli.py文件4.4 测试run_gradio.py文件 源码链接:http…

d3dcompiler_47.dll缺失怎么办?d3dcompiler_47.dll缺失修复方法(详解)

d3dcompiler_47.dll在Windows操作系统和 DirectX应用程序中使用此 DLL 文件,包括游戏,图形处理软件,CAD软件和其他3D应用程序中。如果电脑提示“由于找不到d3dcompiler_47.dll,无法继续执行此代码”,“d3dcompiler_47.dll缺失”&a…

Docker卷与持久化数据

数据主要分为两类,持久化的与非持久化的。 两者都很重要,并且Docker均有对应的支持方式。每个Docker容器都有自己的非持久化存储。非持久化存储自动创建,从属于容器,生命周期与容器相同。这意味着删除容器也会删除全部非持久化数…

网络维护岗位个人求职简历

网络维护岗位个人求职简历1 姓名: 国籍:中国 目前所在地:广州民族:汉族 户口所在地:湖南身材:170cm64kg 婚姻状况:未婚年龄:28 求职意向及工作经历 应聘职位: 工作年限&a…

day14_面向对象的三大特征之一(继承)

继承的概述 Java是对现实社会的模拟,现实中有儿子可以继承父亲的财产,因此有了富二代的。 java中多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类中无需再定义这些属性和行为,只需要和抽取出来…

【Java-SpringBoot+Vue+MySql】项目开发杂记

目录 1、关闭eslint 2、 新建路由 3、安装jQuery依赖-在Vue使用JQuery语法 4、MySQL———数据全部清除,自增归零 5、前后端数据传递——增加功能 6、使用element-ui获取当前表格中的数据——删除功能 1、关闭eslint 2、 新建路由 {path: /user,component: Lay…

LLM - Hugging Face 工程 BERT base model (uncased) 配置

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/131400428 BERT是一个在大量英文数据上以自监督的方式预训练的变换器模型。这意味着它只是在原始文本上进行预训练,没有人以…

RabbitMQ实现延迟消息,RabbitMQ使用死信队列实现延迟消息,RabbitMQ延时队列插件

文章目录 一、什么是延迟消息1、队列的属性2、消息的属性3、什么是死信4、使用死信队列的缺点5、延时消息插件 二、JavaAPI利用死信队列实现RabbitMQ延迟消息1、代码实现2、基本流程 三、JavaAPI利用插件实现RabbitMQ延迟消息1、代码实现2、基本原理 四、Springboot利用死信队列…

5分钟自建可视化平台,在线拖拽组件也太方便了!

一、前言 我们在完成 C 端用户的业务需求时,发现大量电商推广页面的逻辑复杂度和交互程度都比较低,却要消耗大量的开发资源。同时在后台管理系统的开发过程中,我们也发现一些相同套路的页面在不同场景下需要重复开发,即使我们封装…

如何提升企业采购绩效?提高采购绩效的方法

采购是任何企业的一个重要方面,它在确保企业平稳高效运行方面发挥着重要作用。作为一名采购专业人员,你有责任确保你的企业以正确的质量、数量和价格获得所需的货物和服务。 本文将讨论一些最佳做法,这些做法可以帮助你提高采购专业人员的绩…

【032】C++高级开发之多态技术详解(虚函数最全讲解)

C的多态技术(虚函数)详解 引言一、多态的概念二、虚函数2.1、父类指针保存子类空间地址 带来的问题2.2、虚函数的定义2.3、虚函数的动态绑定机制2.4、重载、重定义、重写的区别 三、纯虚函数3.1、纯虚函数的定义方式3.2、纯虚函数的案例:饮品…

mvnd 安装和 idea配置mvnd

一、mvnd 安装 1、mvnd 下载地址 https://github.com/apache/maven-mvnd 2、安装 解压并配置环境变量到path 打开CMD终端,输入 mvnd -v 看到如下信息提示则安装成功 默认使用的是内置的maven,配置修改,兼容本地的maven 打开 Maven-mvn…