docker:容器化虚拟化的原理

目录

1.什么是docker

2.什么是虚拟化和容器化

 3.为什么要容器化

4.容器虚拟化的实现

4.1容器虚拟化的原理

4.2容器虚拟化基础之NameSpace

4.2.1dd命令

常用选项

创建一个大小为100M的空文件

 

4.2.2df命令

常用选项

4.2.3mkfs命令

常用选项

将新创建的testdd格式化为ext4的文件系统。

4.2.4mount命令

常用选项

将新testdd挂载到~/mount目录

4.2.5unshare命令

常用选项

主机名隔离

4.2.6pid隔离

4.2.7mount隔离

4.3容器虚拟化基础值cgroups

4.3.1pidstat命令

常用选项

4.3.2stress命令

常用选项

使用stress持续给cpu压力,使用pidstat监控

4.3.3cgroups

4.3.3.1版本信息查看

4.3.3.2cgroups子系统查看

4.3.3.3cgroups挂载信息的查看

4.3.3.4 查看当前进程的groups信息

4.3.3.5cgroups限制内存

4.3.3.6 cgroups限制cpu


1.什么是docker

docker可以分为镜像,容器和仓库。

镜像(Image):Docker 镜像是一个只读的模板,它包含了运行一个特定应用程序或服务所需的所有文件系统内容,包括操作系统、应用程序代码、依赖库和配置文件等。镜像是创建容器的基础。

容器(Container):容器是基于镜像创建的可运行实例,它是一个独立的、轻量级的运行环境,容器之间相互隔离,互不影响。每个容器都可以看作是一个独立的微型服务器,能够在不同的主机上运行。

仓库(Repository):Docker 仓库是存储和管理镜像的地方,可以将其类比为代码的版本控制系统中的代码仓库。开发者可以将自己创建的镜像推送到仓库中,也可以从仓库中拉取其他人共享的镜像。

2.什么是虚拟化和容器化

虚拟化:将一台计算机虚拟化为多台逻辑计算机,每台逻辑计算机上有自己操作系统,自己的内存,cpu资源等等,虚拟化技术虚拟的是硬件,让操作系统以为自己在一个完全独立的硬件上运行的。

容器化:容器化技术也是虚拟化技术的一种,容器化技术虚拟的是操作系统,通过将操作系统的基本目录结构和文件,应用程序,依赖库整合在一起,形成一个包含系统镜像文件,再通过命名空间技术将系统镜像隔离起来, 让应用程序以为自己在一个完全独立的操作系统中运行。

用这张图更好的理解虚拟化和容器技术 

 

虚拟机:就是通过模拟硬件接口来欺骗操作系统。

容器:通过模拟系统的api接口来欺骗上层应用。

 3.为什么要容器化

1.资源利用率高:将利用率较低的服务器资源进行整合,用更少硬件资源运行更多业务,降低IT支出和 运维管理成本。

2.环境标准化:容器中含有除了操作系统内核以外的所有运行环境,确保了环境的一致性,不会出现这段代码在我的主机上没问题啊?

3.沙箱安全:无论在容器里怎么折腾,影响的始终是这个容器,不会波及整个系统或者其他容器。

4.维护扩展更容易:因为有仓库和镜像的存在,docker应用重复的部分很容易。

5.资源的弹性伸缩:因为容器可以使用容器编排技术进行快速部署,所以才能有弹性伸缩的能力。

6.容器对比虚拟机更轻量,启动更快:虚拟机有自己的内核,docker直接运行在宿主的内核。

4.容器虚拟化的实现

4.1容器虚拟化的原理

通过namespace技术完成系统资源的隔离如进程隔离,文件系统隔离,网络隔离,用户隔离等等通过cgroups技术完成对系统资源的限制。

4.2容器虚拟化基础之NameSpace

NameSpace就是用来隔离系统资源的,相当于一班有个叫张三的同学,二班也有个叫张三的,但是这两个并不是一个人,班级就相当于命名空间。

4.2.1dd命令

dd是 Unix 和 Linux 系统中的一个命令,主要用于复制和转换文件。它可以在不同的存储设备或文件系统之间进行数据的精确复制,也可以对数据进行格式转换等操作。

dd [选项]... [输入文件] [输出文件]
常用选项

if=输入文件:指定输入文件,若未指定则默认从标准输入读取。

of=输出文件:指定输出文件,若未指定则默认输出到标准输出。

bs=块大小:设置输入和输出的块大小,单位可以是字节(默认)、K(千字节)、M(兆字节)等。例如,bs=1M表示每个块的大小为 1 兆字节。

count=块数:指定要复制的块数。

skip=块数:在输入文件中跳过指定数量的块后再开始复制。

seek=块数:在输出文件中从指定的块数位置开始写入。

创建一个大小为100M的空文件
dd if=/dev/zero of=testdd bs=1M count=100;

4.2.2df命令

查看文件系统的使用情况

dd [选项]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值