Docker碎碎念

news2025/1/23 23:30:47

docker和虚拟机的区别

虚拟机(VM)是通过在物理硬件上运行一个完整的操作系统来实现的。
每个虚拟机都有自己的内核、设备驱动程序和用户空间,它们是相互独立且完全隔离的。
虚拟机可以在不同的物理服务器之间迁移,因为它们是以整个操作系统作为单元进行迁移的。

而容器则是在单个操作系统实例中运行的,所有容器共享相同的内核。
容器可以更快地启动和停止,并且占用更少的系统资源。
容器之间的隔离是通过命名空间和控制组等内核特性来实现的。
在这里插入图片描述

docker共享的linux内核,这个内核中有些什么东西呢?

Docker容器共享宿主机的Linux内核,这意味着容器中运行的应用程序和服务与宿主机共享同一个内核。这种共享内核的设计可以提供更高的性能和更低的资源消耗。

Linux内核是开源的,拥有庞大的代码库和功能丰富的特性。一些常见的内核组件和功能包括:
1. 进程管理:内核负责管理系统中的进程和线程,包括创建、调度、终止等操作。
2. 内存管理:内核分配和管理系统的物理内存和虚拟内存,包括页面置换、内存映射等。
3. 文件系统:内核提供文件系统的支持,包括磁盘驱动、文件缓存、文件访问权限等。
4. 网络协议栈:内核实现了各种网络协议,如TCP/IP、UDP等,以便应用程序进行网络通信。
5. 设备驱动程序:内核提供了对硬件设备的驱动支持,包括网卡、磁盘控制器、USB设备等。
6. 系统调用接口:内核定义了应用程序与内核之间的接口,通过系统调用来访问内核功能。
7. 安全和权限管理:内核维护系统的安全性和权限控制,包括文件访问权限、进程访问控制等。
8. 调度器:内核负责调度系统中的进程和线程,以便合理地分配CPU时间片。
这只是一些常见的内核组件和功能,实际上Linux内核非常复杂并且具有丰富的特性。Docker利用宿主机的Linux内核,并通过命名空间和cgroups等内核特性来实现容器的隔离和资源管理。

docker的资源控制

在容器中,可以使用资源限制和控制组(cgroups)来限制硬件资源的使用。

控制组是Linux内核提供的一种机制,用于将进程组织成一个层次结构,并为每个组设置资源使用限制。通过控制组,可以对CPU、内存、网络带宽等资源进行限制和分配。

Docker利用了控制组来实现对容器的资源管理。通过在创建容器时设置资源限制参数,可以限制容器使用的CPU核心数、内存量、磁盘空间等。这样就能够确保容器不会过度占用硬件资源,从而保证系统的稳定性和性能。

例如,可以使用以下参数来限制容器的资源使用:
- --cpus:指定容器可以使用的CPU核心数量;
- --memory:限制容器可以使用的内存量;
- --blkio-weight:用于限制磁盘I/O的权重;
- --network:用于限制容器的网络带宽。

通过这些资源限制参数,可以在共享内核的情况下,对每个容器进行资源隔离和控制,以避免某个容器过度占用硬件资源而影响其他容器的正常运行。

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

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

相关文章

【仿写tomcat】六、解析xml文件配置端口、线程池核心参数

线程池改造 上一篇文章中我们用了Excutors创建了线程,这里我们将它改造成包含所有线程池核心参数的形式。 package com.tomcatServer.http;import java.util.concurrent.*;/*** 线程池跑龙套** author ez4sterben* date 2023/08/05*/ public class ThreadPool {pr…

社科院与美国杜兰大学金融管理硕士项目——畅游于金融世界

随着社会经济的不断发展,职场竞争愈发激烈,很多同学都打算通过报考研究生来实现深造,提升自己的综合能力和竞争优势,获得优质的证书。而对于金融专业的学生和在职人员来说,社科院与美国杜兰大学金融管理硕士项目是一个…

ElasticSearch7.x + kibana7.x使用记录

目录 查询所有索引 查询索引的mapping信息 添加索引的同时添加mapping 在原有基础上新增字段 旧的索引迁移到新的索引(使用场景:数据迁移、索引优化、数据转换) 查询索引下的文档总数 场景1:某一个字段的值是数组&#xff0…

数据的深海潜行:数据湖、数据仓库与数据湖库之间的微妙关系

导言:数据的重要性与存储挑战 在这个信息爆炸的时代,数据已经成为企业的核心资产,而如何高效、安全、便捷地存储这些数据,更是每个组织面临的重大挑战。 数据作为组织的核心资产 数据在过去的几十年里从一个辅助工具演变成企业的…

视频怎么转换成gif表情包?三步完成视频在线转gif

小伙伴们在使用gif表情包的时候,都会注意到有些是视频片段,其实视频转换成gif动图已经很常见了,今天就来给大家演示一下使用视频转gif工具(https://www.gif.cn)来将视频在线转gif,一起来学习一下吧。 打开…

ps由于找不到msvcp140.dll无法继续执行需要怎么处理

最近在使用Photoshop时遇到了一个问题,它提示我缺少了msvcp140.dll文件。这让我无法正常使用Photoshop,非常困扰。然而,通过一番尝试和研究,我终于成功修复了这个问题,小编就把修复方法分享给大家。 ps为什么会由于找不…

【文生图系列】Denoising Diffusion Probabilistic Models论文解读

文章目录 扩散模型扩散过程反向过程优化目标 训练过程参考 此篇论文是DDPM的奠基之作,后续扩散模型相关论文都基本继承了前向加噪-反向降噪-训练这样的框架。论文全是公式,理解起来好难好难。 【文生图系列】基础篇-马尔可夫链 【文生图系列】基础篇-变分…

springboot中的properties配置文件:MySQL密码添加双引号会报错

在springboot项目中,如果使用的配置文件是properties 格式,那么给属性的值添加双引号可能会出错,比如给MySQL的密码添加双引号: 我们在调试模式下,一探究竟: 然后在其poolProperties中查看,密…

如何快速在vscode中实现不同python文件的对比查看

总体而言:两种方式。一种是直接点击vscode右上角的图标(见下图)。 另一种方式就是使用快捷键啦“**Ctrl**”,用的时候选中想要对比的python文件,然后快捷键就可以达到下图效果了: 建议大家直接使用第二种…

Java课题笔记~ SpringBoot基础配置

二、基础配置 1. 配置文件格式 问题导入 框架常见的配置文件有哪几种形式? 1.1 修改服务器端口 http://localhost:8080/books/1 >>> http://localhost/books/1 SpringBoot提供了多种属性配置方式 application.properties server.port80 applicati…

电动汽车太秀了!用一个技巧搞定了蓄电池!

当涉及能源存储和供应,特别是在太阳能、电动车和不间断电源等领域,蓄电池无疑是关键的组成部分。然而,蓄电池的状态、性能和健康状况对于系统的可靠性和效率至关重要。 蓄电池监控通过实时监测、数据分析和预警功能,它提供了更高效…

PCB老化测试注意事项和操作流程

PCB老化测试是为了评估PCB在实际应用环境中的可靠性和寿命而进行的测试。以下是PCB老化测试的一般步骤和一些注意事项: 步骤: 1. 确定老化条件:根据实际应用环境和需求,确定老化测试的条件,如温度、湿度、电压等。这些…

基于Redis实现关注、取关、共同关注及消息推送(含源码)

微信公众号访问地址:基于Redis实现关注、取关、共同关注及消息推送(含源码) 推荐文章: 1、springBoot对接kafka,批量、并发、异步获取消息,并动态、批量插入库表; 2、SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据; 3、为什么引入Rediss…

【3Ds Max】可编辑多边形“点”层级的简单使用

目录 简介 示例 (1)移除 (2)断开 (3)焊接 (4)挤出 (5)切角 (6)目标焊接 (7)连接 简介 在3ds Max中&…

Golang使用MinIO

最近在使用Golang做了一个网盘项目(学习),文件存储一直保存在本地(各厂商提供的oss贵),所以就在思考怎么来处理这些文件,类似的方案很对hdfs、fastdfs,但这其中MinIO是最近几年比较火…

网安周报|Monti Ransomware团伙推出了一个新的Linux加密器

Monti Ransomware团伙推出了一个新的Linux加密器 经过两个月的休息,Monti 勒索软件运营商带着新的 Linux 版本的加密器返回。该变体被用于针对政府和法律部门组织的攻击。研究人员注意到两个团伙的TTP之间有多个相似之处,Monti运营商还基于Conti泄露的源…

Synchronized与Java线程的关系

前言 ​ Java多线程处理任务时,为了线程安全,通常会对共享资源进行加锁,拿到锁的线程才能进行访问共享资源。而加锁方式通过都是Synchronized锁或者Lock锁。 ​ 那么多线程在协同工作的时候,线程状态的变化都与锁对象有关系。 …

安防监控视频云存储平台EasyNVR出现内核报错的情况该如何解决?

安防视频监控汇聚EasyNVR视频集中存储平台,是基于RTSP/Onvif协议的安防视频平台,可支持将接入的视频流进行全平台、全终端分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。 近期有用户联系到我们,EasyNVR…

lab3 pgtbl

Pre 在这个lab中,你将探索页表,并且修改它们以简化从用户空间拷贝数据到内核空间的函数 在开始之前,需要完成 阅读xv6 book的第3章kern/memlayout.h 有关内存的布局kern/vm.c 包含大部分虚拟内存的代码kernel/kalloc.c 分配和释放虚拟内存的代…

Redisson实现分布式锁示例

一、引入依赖 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.16.0</version></dependency>二、配置类 import org.redisson.Redisson; import org.redisson.api.RedissonClient;…