其他分享
首页 > 其他分享> > 白话容器基础

白话容器基础

作者:互联网

白话容器基础

容器本身没有价值,有价值的是“容器编排”

什么是“程序”?

首先,操作系统从“程序”中发现输入数据保存在一个文件中,所以这些数据就会被加载到内存中待命。同时,操作系统又读取到了计算加法的指令,这时,它就需要指示 CPU 完成加法操作。而 CPU 与内存协作进行加法计算,又会使用寄存器存放数值、内存堆栈保存执行的命令和变量。同时,计算机里还有被打开的文件,以及各种各样的 I/O 设备在不断地调用中修改自己的状态。

一旦“程序”被执行起来,他就从磁盘上的二进制文件, 变成了计算机内存中的数据、寄存器中的值,堆栈中的指令、被打开的文件、以及各种设备的状态信息的一个集合。 像这样一个程序运行起来来后的计算机执行环境的综合,就是进程。

进程静态表现----程序---磁盘上

进程动态表现---计算机里数据和状态的总和

容器技术的核心功能

通过约束和修改进程的动态表现,从而为其创造出一个“边界”。

docker等大多数linux容器来说,Cgroups资源限制,Namespace隔离资源rootfs

隔离类型

uts:主机名和域名隔离
ipc:信号量,消息队列和共享内存隔离
mnt:文件系统挂载点隔离
net:网络隔离,每个namespace都有自己独立的ip,路由和端口
pid:隔离进程id

总结:

虚拟机:
容器:

容器则用一个名为Docker Engine的软件代替了Hypervisor,所以好多人会把docker项目说成为“轻量级”虚拟化技术的原因,如果精准的画图不应该把 Docker Engine (/ˈendʒɪn/)或者任何容器管理工具放在跟 Hypervisor 相同的位置,因为它们并不像 Hypervisor 那样对应用进程的隔离环境负责,也不会创建任何实体的“容器”,真正对隔离环境负责的是宿主机操作系统本身, 在理解Namespace工作方式后,就会明白,并没有一个真正的"docker 容器" 运行在宿主机里面, docker项目只是帮用户启动的,还是原来的应用进程,只是创建进程的时候,docker会为他们加上各种Namespace参数。

docker架构

Linuxdocker

windows_server

windows_hyper_v

镜像大小对比

Ubuntu 650 万次下载和 188 MB 大小- 下载次数最多的操作系统映像。但它也是街区里最胖的猫。

Debian 330 万次下载和 125 MB 大小- Debian 使用 Linux 内核,基本工具基于 GNU 项目。

BusyBox 250 万次下载和 2 MB 大小- BusyBox 网站声明“Busybox 在编写时考虑到了大小优化和有限资源。它也是非常模块化的,因此您可以在编译时轻松包含或排除命令(或功能)。这使定制您的嵌入式系统变得容易。要创建一个工作系统,只需在 /dev 中添加一些设备节点,在 /etc 中添加一些配置文件和一个 Linux 内核。

CentOS 120 万次下载和 172 MB 大小- 源自 Red Hat Linux Enterprise RHEL,每个版本支持 10 年。

Fedora 120 万次下载和 187 MB 大小- 由 Red Hat Linux Enterprise 赞助并致力于推动新的创新。

Alpine 40K+ 下载和 5 MB 大小- 一个更完整的 Busybox 映像,可以访问包存储库。目前我个人最喜欢的。

Cirros 23K+ 下载和 8 MB 大小- 是一个专门在云中运行的微型操作系统。它也是层数最多的图像,层数为 5。

标签:容器,隔离,MB,白话,基础,Linux,Docker,操作系统
来源: https://www.cnblogs.com/yapong/p/15851166.html