Docker:在内存文件系统中

我有一个docker的容器,它做了很多的读/写磁盘。 我想testing当我的整个docker文件系统在内存时会发生什么。 我在这里看到一些答案,说这不会是一个真正的性能改进,但这是为了testing。

我想testing的理想解决scheme是共享每个图像的公共部分,并在需要时复制到内存空间。

在运行时创build的每个容器文件也应该在内存中并且分开。 空闲时间不应超过5GB fs,处理时间不得超过7GB。

简单的解决scheme将复制每个容器的所有共享文件(甚至是您从不使用的那部分操作系统)。

图像的存储与容器的基本文件系统没有区别,分层的FS直接访问图像层作为RO层,容器使用上面的RW层捕捉任何变化。 因此,当Docker安装保留在磁盘上时,让容器在内存中运行的目标并不容易实现。

如果你知道你的RW活动发生在哪里(检查正在运行的容器的docker diff是相当容易的),对我来说最好的select是在你容器中的那个位置安装一个tmpfs,这是由docker原生支持的(从docker运行参考 ):

 $ docker run -d --tmpfs /run:rw,noexec,nosuid,size=65536k my_image 

在默认情况下,Docker将图像,容器和卷数据存储在其目录中。 容器HD由原始图像和“容器层”组成。

您可以使用RAM磁盘进行设置 。 你会很难分配一些内存,安装它,并使用你select的文件系统进行格式化。 然后将您的docker安装移动到已安装的RAM磁盘,并将其符号链接回原始位置。

设置Ram磁盘

移动Docker目录的最佳方法

显然,这只对testingDocker很有用,它的图像,卷,容器等将在重新启动时丢失。

Interesting Posts