首页 比特币交易文章正文

如何通俗的解释“Docker”?

比特币交易 2022年08月03日 08:34 27 Connor

我家是搞养殖的,养了几十头羊,有的瘦小,有的强壮DOT交易网站。之前,所有羊在一个食槽里吃饲料,强壮的羊会挤兑瘦小的,不让其吃。结果就是强壮的愈加强壮,瘦小的愈加瘦小。为了解决这个问题,我为每头羊分配了一个食槽,每头羊只能在属于它的食槽吃饲料,去其他食槽吃就会挨打,一段时间后,每头羊便可以吃到为其分配的饲料,羊的长势也就比较均衡了。

有人的地方就有江湖,羊也一样DOT交易网站。强壮的羊经常欺负瘦小的羊,导致瘦小的羊受伤,为了解决这个问题,我们将经常欺负弱小的羊单独圈起来,这样,对于它来说世界就只有它一头羊了,精力无处发泄,只能撞墙了。原先的羊圈,欺负弱小的情形还在继续发生,理想的方法是为每头羊准备一个单独的羊圈,我将方法提出后,被家里以成本过高为由否决了。

我们以进程类比羊,以操作系统类比羊圈,以资源类比饲料DOT交易网站

进程A为了运行流畅,可能会无限申请内存及CPU时间,挤压了其他进程的资源,导致其他进程运行卡顿,用户就会认为其他软件用户体验差,进而卸载,这是非常不公平的DOT交易网站。操作系统的解决方法是可为每个进程分配固定的资源(内存、CPU运行时间等),进程不能使用额外的资源。这就相当于为每头羊分配了一个食槽,里面放适合它的饲料。在计算机中,这种技术叫CGroups。

进程是可以看到其他进程的,也可以看到其他进程产生的文件DOT交易网站。进程可调用kill、rm杀死其他进程或删除属于其他进程的文件。通过权限机制可缓解此问题,但是更好的方法是,进程只能看到属于自己的资源,进程想作恶,都不知道如何下手。在计算机中,这种技术叫做Namespace,将进程放在一个独立的Namespace中,进程就只能看到属于它的资源了,相当于为每头羊准备一个单独的羊圈。

通过CGroups和Namespace技术,进程只能使用固定的资源,并认为自己独享操作系统,这就是容器虚拟化技术DOT交易网站

容器虚拟化技术是操作系统级虚拟化DOT交易网站。文件系统属于Namespace的一种,通过容器虚拟化技术,进程A使用Ubuntu16.04的文件系统,进程B使用Ubuntu22.04的文件系统,虽然二者使用的内核是同一个,但应用软件的行为(由软件、依赖库、配置文件等决定)分别与Ubuntu16.04和Ubuntu22.04一致,就可以认为,分别虚拟出了Ubuntu16.04和Ubuntu22.04操作系统。

Docker整合了上述虚拟化技术,并提供了一系列工具,简化并自动化容器虚拟化技术使用流程DOT交易网站。风云际会,掀开了云原生时代的序幕。

我写了一个称作docker.sh 的小项目,该项目旨在通过一系列的实验使用户对docker的底层技术,如Namespace、CGroups、rootfs、联合加载等有一个感性的认识DOT交易网站。在此过程中,我们还将通过Shell脚本一步一步地实现一个简易的docker,以期使读者在使用docker的过程中知其然知其所以然。该项目的仓库地址如下:

可用于学习 Docker 原理,里面有Namespace、CGroups的原理及示例的介绍DOT交易网站

发表评论

安币交易所-比特币交易,比特币交易平台,币安app下载 网站地图 备案号:津ICP备19001224号 QQ:23932870