我正在运行一个似乎没有足够内存的码头容器,我不确定如何解决此问题。
我本质上是在此Docker容器上运行一个程序,该程序将图像下载到TMPF中,执行一些操作,删除图像并返回结果。但是,似乎我正在跑到太大的图像中,无法存储在当前的Docker TMPF中。以下是在容器内部的Linux df
命令的输出:
Filesystem Size Used Avail Use% Mounted on
overlay 63G 11G 50G 18% /
tmpfs 64M 0 64M 0% /dev
tmpfs 6.9G 0 6.9G 0% /sys/fs/cgroup
/dev/sda1 63G 11G 50G 18% /etc/hosts
shm 64M 4.0K 64M 1% /dev/shm
tmpfs 6.9G 0 6.9G 0% /sys/firmware
我尝试扩展Docker的内存(因此在两个TMPFS上的巨大值),但我仍遇到这个问题。
我想我有几个问题:
1)3个单独的TMPFS文件系统有什么区别?它们为什么存在?
2)大概我需要扩大第一个TMPFS大小(小尺寸) - 我该怎么做?
最后,一些相关的系统信息:
OS- OSX
Docker版本 - Docker版本17.09.0-CE,构建AFDB6D4
让我知道是否还有其他您需要知道的东西!
谢谢大家。
好吧,最终找出了答案。我最初的两个问题是基本的。
本质上,我的Docker实例没有足够的内存 - TMPFS文件是红色的鲱鱼。我最终需要将--shm-size="4096m"
参数传递给我的Docker start命令(增加内存到4096兆字节),以允许我的函数正确执行。希望这有助于某人走上路!
此外,出于Google目的,我遇到的确切错误是与Abbyy Finereader
There is not enough space available on the shmfs/tmpfs file system.
如果您使用的是kubernetes,则需要在/dev/shm中足够的空间。就我而言,/dev/shm中没有足够的空间,因此在提取元图像之前,Abbyy会救出。给予/dev/shm的音量安装座后,效果很好。希望这会有所帮助!