我很难理解使用卷存储将如何影响磁盘空间的使用。
我有一个图像A,它是一个基本图像,并带有我的应用程序需要的许多实用程序。我有应用程序B和C,它们是从基本图像A构建的图像。它们安装不同的语言来运行我的两个不同的应用程序。图像A为300MB,B和C各为300MB。
如果我创建10个应用程序A和B的实例,将使用多少磁盘空间?
另外,假设我正在将NFS共享挂载到所有容器,容器中的任何应用程序/进程只会将应用程序数据、日志等写入挂载的nfs共享,因此似乎不会在容器中进行写入。挂载点 /var/www/html我的磁盘使用情况会是什么样子?
正如我目前所理解的,在第一种情况下,我的磁盘使用量将是(300mb的基本映像,600mb的两个应用映像,因此900mb。我假设基本图像将被共享。如果从应用映像B和C创建了任何容器,并且它们在被清除之前各自写入100mb数据。那么我的总磁盘使用量将是900mb 100mb(写入磁盘的净数据)*容器数量?
我如何理解这一点?
分层文件系统将重用来自父映像的层,因此如果映像A为300MB,应用程序B和C各为300MB,那么实际上这些应用程序容器添加了近0个磁盘空间,重用了父映像的全部内容。由于所有数据都存储在外部,并且没有写入html" target="_blank">容器的本地RW文件系统,您可以根据需要对其中的任意多个文件系统进行加速,并且只使用300MB的磁盘。
如果这些应用程序中的每一个实际上都在增加300MB,并且这些300MB不同于父应用程序容器和其他应用程序容器(docker使用缓存,如果运行相同的命令,可以允许每个应用程序容器从另一个容器重用),那么您最终会得到每个图像显示为600MB,而实际使用的磁盘为900MB,父磁盘为300MB,每个应用映像为300MB。
旋转每个容器不会增加已用磁盘空间,直到该容器将文件写入本地卷或容器的RW层。
理解这一点就可以进入分层文件系统设计。图像可能由多个层组成,每个层创建一次并可被其他图像重用,所有内容都存储为对散列的引用,只有当不再有对散列的引用时,docker才会在docker rmi
上删除该层。
当您将映像转换为容器时(使用docker run
甚至docker create
),映像内容将作为只读层装入,容器的RW层装入顶部,任何卷装入分层文件系统的顶部。卷外的读取将通过层,直到到达文件所在层(或对文件进行其他修改,如删除)。因此,如果文件未被修改,它将从其中一个图像层读取,但如果您在RW层中创建它,您的读取将收回该图像层。这导致图像的概念是不可变的,而容器可以在容器的生命周期中存储它们自己的更改。您可以在容器上运行docker diff
,以了解对其RW层所做的更改。此差异是在构建的每个步骤或docker提交时存储到图像层的内容。
文件系统抽象层 - VFS 文件系统抽象层是把不同文件系统的对外共性接口提取出来,形成一个函数指针数组,这样,通用文件系统访问接口层只需访问文件系统抽象层,而不需关心具体文件系统的实现细节和接口。
通过学习《 Linux一切皆文件》一节我们知道,平时打交道的都是文件,那么,应该如何找到它们呢?很简单,在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构,如图 1 所示。 图 1 Linux 系统文件和目录组织示意图 其中,目录就相当于 Windows 中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录,而文件中存储的是真正的信息。 文件系统的最
主要内容:得到NTFS文件系统模块后,手工安装,利用 NTFS-3G 插件安装 NTFS 文件系统模块在 CentOS 6.x 中,默认 NTFS 文件系统是没有安装的,也就是说在 CentOS 6.x 中是不能直接挂载 NTFS 分区的。但是目前 Windows 的分区绝大多数是 NTFS 分区,这就需要在 CentOS 6.x 中安装 NTFS 文件系统的模块之后,才能使用 NTFS 分区。 安装 NTFS 文件系统模块的方法有三种: 第一种方法是完整地重新编译内核,然后在内核中选择 NTF
本章简单介绍Elixir的输入、输出机制,文件系统相关的任务, 以及涉及到的模块,如IO, File 和Path。 我们曾经在早期的文章中说现在介绍IO似乎有点早。 但是,我们注意到IO系统其实提供了一窥Elixir和虚拟机的设计哲学和精妙的绝佳机会。 “早期的文章”:现在介绍I/O似乎有点早,但是I/O系统可以让我们一窥Elixir哲学,满足我们对该语言以及VM的好奇心。 IO模块 模块IO提供
7.4.2.文件系统的分区 Android设备主要有三个分区,参见图7.5. "通过Eclipse的File Explorer查看文件系统",即: 系统分区:/system/ SDCard分区:/sdcard/ 用户数据分区:/data/ 图7.5. 通过Eclipse的File Explorer查看文件系统