如何通俗的解释“Docker”?
我家是搞养殖的,养了几十头羊,有的瘦小,有的强壮。之前,所有羊在一个食槽里吃饲料,强壮的羊会挤兑瘦小的,不让其吃。结果就是强壮的愈加强壮,瘦小的愈加瘦小。为了解决这个问题,我为每头羊分配了一个食槽,每头羊只能在属于它的食槽吃饲料,去其他食槽吃就会挨打,一段时间后,每头羊便可以吃到为其分配的饲料,羊的长势也就比较均衡了。
有人的地方就有江湖,羊也一样。强壮的羊经常欺负瘦小的羊,导致瘦小的羊受伤,为了解决这个问题,我们将经常欺负弱小的羊单独圈起来,这样,对于它来说世界就只有它一头羊了,精力无处发泄,只能撞墙了。原先的羊圈,欺负弱小的情形还在继续发生,理想的方法是为每头羊准备一个单独的羊圈,我将方法提出后,被家里以成本过高为由否决了。
我们以进程类比羊,以操作系统类比羊圈,以资源类比饲料。
进程A为了运行流畅,可能会无限申请内存及CPU时间,挤压了其他进程的资源,导致其他进程运行卡顿,用户就会认为其他软件用户体验差,进而卸载,这是非常不公平的。操作系统的解决方法是可为每个进程分配固定的资源(内存、CPU运行时间等),进程不能使用额外的资源。这就相当于为每头羊分配了一个食槽,里面放适合它的饲料。在计算机中,这种技术叫CGroups。
进程是可以看到其他进程的,也可以看到其他进程产生的文件。进程可调用kill、rm杀死其他进程或删除属于其他进程的文件。通过权限机制可缓解此问题,但是更好的方法是,进程只能看到属于自己的资源,进程想作恶,都不知道如何下手。在计算机中,这种技术叫做Namespace,将进程放在一个独立的Namespace中,进程就只能看到属于它的资源了,相当于为每头羊准备一个单独的羊圈。
通过CGroups和Namespace技术,进程只能使用固定的资源,并认为自己独享操作系统,这就是容器虚拟化技术。
容器虚拟化技术是操作系统级虚拟化。文件系统属于Namespace的一种,通过容器虚拟化技术,进程A使用Ubuntu16.04的文件系统,进程B使用Ubuntu22.04的文件系统,虽然二者使用的内核是同一个,但应用软件的行为(由软件、依赖库、配置文件等决定)分别与Ubuntu16.04和Ubuntu22.04一致,就可以认为,分别虚拟出了Ubuntu16.04和Ubuntu22.04操作系统。
Docker整合了上述虚拟化技术,并提供了一系列工具,简化并自动化容器虚拟化技术使用流程。风云际会,掀开了云原生时代的序幕。
我写了一个称作docker.sh 的小项目,该项目旨在通过一系列的实验使用户对docker的底层技术,如Namespace、CGroups、rootfs、联合加载等有一个感性的认识。在此过程中,我们还将通过Shell脚本一步一步地实现一个简易的docker,以期使读者在使用docker的过程中知其然知其所以然。该项目的仓库地址如下:
https://github.com/pandengyang/docker.sh.git https://gitee.com/pandengyang/docker.sh.git
可用于学习 Docker 原理,里面有Namespace、CGroups的原理及示例的介绍。
Ghost是什么意思?
1.简单来说,Ghost直接翻译,就是鬼、幽灵的意思。在电脑方面,它是一个无人不知的程序。它是一个可以备份/还原系统或者数据的软件。ghost软件是美国著名软件公司SYMANTEC推出的硬盘复制工具。ghost 它是一个可以备份/还原系统或者数据的软件.有了它,你可以把你的系统备份成一个文件,如果系统坏了,可以再用它恢复回来.这样就省去了重做系统的麻烦.还可以把整个硬盘备份到另一个存储设备上,如果硬盘数据丢失,可以恢复
GHOST是什么意思啊?
1.Ghost(幽灵)软件是美国赛门铁克公司推出的一款出色的硬盘备份还原工具,可以实现FAT16、FAT32、NTFS、OS2等多种硬盘分区格式的分区及硬盘的备份还原。俗称克隆软件。
1、特点:既然称之为克隆软件,说明其Ghost的备份还原是以硬盘的扇区为单位进行的,也就是说可以将一个硬盘上的物理信息完整复制,而不仅仅是数据的简单复制;克隆人只能克隆躯体,但这个Ghost却能克隆系统中所有的东东,包括声音动画图像,连磁盘碎片都可以帮你复制,比克隆人还厉害哟:)。Ghost支持将分区或硬盘直接备份到一个扩展名为.gho的文件里(赛门铁克把这种文件称为镜像文件),也支持直接备份到另一个分区或硬盘里。