Docker:解决开发运维问题的开源容器化平台
云计算de小白
Docker是一个开源的容器化平台,可以将应用程序及其依赖的环境打包成轻量级、可移植的容器。
Docker为什么这么受欢迎呢?原因很简单:Docker可以解决不同环境一致运行的问题,而且占用资源少,速度快。
所以好的东西应该被更多人喜欢,因为Docker确实解决了我们日常的开发和运维问题。
例如:在如今的微服务架构中,我们可以将应用程序拆分成多个独立的服务,每个服务都运行在独立的容器中。
这不仅方便了开发、测试和部署,还可以让Docker容器在不同的操作系统和平台上运行,确保跨平台的一致性。

图片
多个容器可以在同一台机器上运行并与其他容器共享其操作系统内核,每个容器作为用户空间中的独立进程运行。
虚拟机
虚拟机,全称是Virtual Machine,缩写为“虚拟机VM”。
虚拟机是一种通过软件模拟出来的计算机系统,可以在物理硬件上运行多台虚拟的计算机。
如下图所示:

图片
虚拟机是运行在物理机(宿主机)上的独立计算环境,具有独立的操作系统、应用程序和资源。
例如:一台服务器可以模拟多台“虚拟机”。
此时虚拟机运行在物理主机上,其硬件资源(如CPU、内存、磁盘等)由主机提供并虚拟化。
虚拟机管理工具,常见的有:VMware、Hyper-V...等,主要用于创建/和管理虚拟机。
虽然看上去多了几台“服务器”,但多台虚拟机的操作系统却共存并运行在同一个硬件环境中。
虚拟机和容器虽然都是虚拟化技术,但是操作方式和用途都不一样,我重点说一下两者的区别。@mikechen
Docker 与虚拟机之间的区别

图片
虚拟机较重,Docker 相对较轻
这就是Docker与虚拟机最大的区别,我把它放在第一位。
首先,虚拟机提供了完整的操作系统和硬件环境,适合需要隔离的多操作系统环境。
虚拟机非常重要,因为每个虚拟机都需要搭载完整的操作系统(OS)。
因此当使用虚拟机时,即使应用程序本身很小,但是由于操作系统的存在,整体的体积也会变得庞大。
因此这使得虚拟机不仅占用大量的存储空间,而且在启动时需要加载整个操作系统,导致启动时间较长、运行过程中资源占用较高。
这也是Docker虚拟化技术如此受欢迎的最重要的原因。
Docker 通过共享主机操作系统的内核来避免为每个应用程序分配单独的操作系统。
这样,每个Docker容器只包含:应用程序及其依赖项,减少了镜像的大小,并且启动更快,运行更轻量。
这也是Docker相较于虚拟机的最大优势之一,在微服务和容器化应用场景下尤其有效。
虚拟机启动慢,Docker启动快
刚才讲了这两者最大的区别,就是虚拟机需要搭载操作系统(OS)。
因此虚拟机启动时间较长是正常的,因为:虚拟机需要启动一个完整的操作系统。
Docker容器不需要启动操作系统,因此响应速度更快。
虚拟机占用资源较多,Docker占用资源较少
由于虚拟机需要运行独立的操作系统,所以资源开销比较大。
例如:虚拟机需要占用较多的CPU、内存、磁盘空间,并且每个虚拟机都有固定的资源分配。
因此一台服务器一般无法虚拟出很多台“服务器”。
另一方面,Docker 容器共享主机的操作系统内核,不需要额外的操作系统开销。
因此它占用的资源较少,且处于“进程”级别,所以资源利用率较高。
虚拟机适合重量级隔离,容器是轻量级隔离
当然,说了这么多,并不是说虚拟机没用,关键还是要用在合适的应用场景上。
例如,虚拟机适用于需要强隔离的多操作系统环境,经常被用来运行不同的操作系统、测试环境,或者对安全性有较高要求的场景。
Docker容器比较适合:微服务架构、持续集成与交付(CI/CD)、高密度部署、轻量隔离场景。
相关文章:
Docker:解决开发运维问题的开源容器化平台
云计算de小白 Docker是一个开源的容器化平台,可以将应用程序及其依赖的环境打包成轻量级、可移植的容器。 Docker为什么这么受欢迎呢?原因很简单:Docker可以解决不同环境一致运行的问题,而且占用资源少,速度快。 所以好的东西…...
多线程计算π
1、实现单线程计算π 2、使用任务分解方法,使用2线程,并行计算π 3、使用数据分解方法,使用2线程,并行计算π 注意:在循环中使用以上计算π的公式,n取值为1到Int.Max 问题1: import java.lang.*;public class Thread1 extends Thread{@Overridepublic void run(){l…...
JAVA开源项目 足球俱乐部管理后台 计算机毕业设计
博主说明:本文项目编号 T 051 ,文末自助获取源码 \color{red}{T051,文末自助获取源码} T051,文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析…...
Arthas memory(查看 JVM 内存信息)
文章目录 二、命令列表2.1 jvm相关命令2.1.11 memory(查看 JVM 内存信息)举例1:查看 JVM 内存信息 二、命令列表 2.1 jvm相关命令 2.1.11 memory(查看 JVM 内存信息) 基本用法: memory 举例1:…...
C#车辆登记证识别API接口集成示例-车辆合格证识别免费的API接口
车辆登记证识别接口是一种OCR技术,基于深度学习算法,可快速、精准、自动识别车辆登记证上的文字信息。目前,车辆合格证识别的应用场景主要集中在与车辆相关的各类业务流程中,特别是汽车行业、物流运输和车辆管理等领域。 1.汽车销…...
学习笔记每日一题
给你一个整数 n ,找出从 1 到 n 各个整数的 Fizz Buzz 表示,并用字符串数组 answer(下标从 1 开始)返回结果,其中: answer[i] "FizzBuzz" 如果 i 同时是 3 和 5 的倍数。answer[i] "Fizz…...
【巅峰算力,静谧之作】4卡4090GPU深度学习“静音”服务器
各位同仁,随着人工智能浪潮的汹涌澎湃,我们正步入一个前所未有的创新纪元。在这个充满挑战与机遇的时代,我愈发频繁地在工作场景中邂逅那些致力于深度学习探索的智者们。他们,对计算力的渴望如同对知识的追求一般,永无…...
论JAVA 两种“对象比较接口“的区别
前言 总所周知,java对象的比较有 三种方式 最简单的是可以调用equals(). 因为这个方法定义在Object类中,而我们的类都继承了Object类.所以我们自己定义的类都可以使用这个方法. 除此以外还有两个比较接口,可以通过实现他们的某些方法比较我们的对象 他们是 Com…...
在线代理提取IP:一文详解其含义和应用
在互联网时代,IP地址就像是每台设备的“身份证”。然而,有时候,我们需要隐藏或更改这个“身份证”,这时候,代理IP就派上了用场。那么,在线代理提取IP究竟是什么意思呢?让我们一起来探讨一下。 …...
linux-字符串函数使用
linux-字符串函数使用 输入输出长度大小拼接拷贝填充查找比较 字符串的输入,输出,长度,大小,拼接,拷贝,填充,查找,比较 输入 相关的函数有: gets()、getchar()、fgetc(…...
Python 06 Set
Python 实例教程 Python 实例教学_ 06_集合第二十八课[2351. 第一个出现两次的字母](https://leetcode.cn/problems/first-letter-to-appear-twice/)[217. 存在重复元素](https://leetcode.cn/problems/contains-duplicate/)[219. 存在重复元素 II](https://leetcode-cn.com/pr…...
ControllerAdvice定义统一异常处理
springboot版本:2.6.13<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId></dependency>在实体上添加校验注解,例如: NotBlankNotEmpty…...
Leetcode 162.寻找峰值
峰值元素是指其值严格大于左右相邻值的元素。 给你一个整数数组 nums,找到峰值元素并返回其索引。数组可能包含多个峰值,在这种情况下,返回 任何一个峰值 所在位置即可。 你可以假设 nums[-1] nums[n] -∞ 。 你必须实现时间复杂度为 O(…...
c语言:知识补充
c语言中编译开始会对#define,#include等内容做预处理,可以用#define写一些简单函数,方便使用 #include <stdio.h> #include <stdlib.h>#define MAX(A, B) ((A) > (B) ? (A) : (B))int main(){printf("%d\n", MAX(…...
Dapper介绍及特性
一、Dapper介绍及特性 Dapper是一个.NET平台上的轻量级对象关系映射(ORM)工具,它通过扩展IDbConnection接口,提供了一系列的扩展方法来执行SQL查询并将结果映射到.NET对象中。Dapper以其高性能和简单易用著称,特别适合…...
LeetCode 149. 直线上最多的点数
LeetCode 149. 直线上最多的点数 给你一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 示例 1: 输入:points [[1,1],[2,2],[3,3]] 输出:3 示例 2: 输入&…...
案例研究丨国控星鲨利用DataEase释放数据潜能,重塑业务视野
国药控股星鲨制药(厦门)有限公司(以下简称为国控星鲨)始创于1952年,前身为厦门鱼肝油厂,距今已经有70余年历史,是国家商务部认定的“中华老字号”企业。2011年,国药控股与厦门轻工集…...
网络基础概念和 socket 编程
网络基础概念和 socket 编程 学习目标: 了解 OSI 七层模型、TCP/IP 四层模型结构了解常见的网络协议格式掌握网络字节序和主机字节序之间的转换理解 TCP 服务器端通信流程理解 TCP 客户端通信流程实现 TCP 服务器端和客户端的代码 推荐一个非常好的学习资料仓库 协…...
TypeScript 中的接口、泛型与自定义类型
TypeScript 是一种超集语言,它为 JavaScript 添加了静态类型检查。通过 TypeScript,开发者可以获得更好的工具支持,并且能够编写出更加健壮的代码。本文将探讨 TypeScript 中的几个关键特性:接口、泛型以及如何创建自定义类型。 …...
常州威雅学校:跟随这场音乐盛宴,溯回她的音乐之路
时同学 常州威雅2021届毕业生 英国皇家北方音乐学院 钢琴系 西太湖畔清凉的晚风送来阵阵悦耳的钢琴声,时同学在母校的个人钢琴独奏悄然拉开序幕。这是她自毕业三年后,在常州威雅的首场钢琴独奏会。 随着第一个音符落下,她用手指在黑白键盘…...
【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...
关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
1 医疗树模型与可解释人工智能基础 医疗领域的人工智能应用正迅速从理论研究转向临床实践,在这一过程中,模型可解释性已成为确保AI系统被医疗专业人员接受和信任的关键因素。基于树模型的集成算法(如RandomForest、XGBoost、LightGBM)因其卓越的预测性能和相对良好的解释性…...
Python异步编程:深入理解协程的原理与实践指南
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 持续学习,不断…...
