2016-12-16 137 views
-1

我是docker的新手,遇到现有脚本在一台机器上工作但在另一台机器上无法工作的问题。我愿意阅读文档和现有答案,但在本主题的许多抽象层次上有点失落。docker内存不足

在docker中运行应用程序会导致内存不足异常。我开始码头与--ulimit memlock -1:-1并没有其他内存限制似乎应用。

df -h搬运工产量内部

[email protected]:/# df -h 
Filesystem                       Size Used Avail Use% Mounted on 
/dev/mapper/docker-253:0-1312128-9219e5dbff0bc6da3a663fab31ec34e6f6b28ba6c8fbd3b343d9131d41f6b1c9 10G 3.0G 7.1G 30%/
tmpfs                        3.9G  0 3.9G 0% /dev 
tmpfs                        3.9G  0 3.9G 0% /sys/fs/cgroup 
/dev/mapper/fedora-root                    50G 20G 28G 42% /etc/hosts 
/dev/mapper/fedora-home                   401G 151G 231G 40% /var/results 
shm                         64M  0 64M 0% /dev/shm 

当OOM发生时,第一文件系统被用于95%。这个限制10G从哪里来?我可以在哪里调整它?

我的设备的所有分区都有足够的可用空间。

[[email protected] RegressionTesting]$ docker info 
Containers: 2 
Running: 1 
Paused: 0 
Stopped: 1 
Images: 52 
Server Version: 1.10.3 
Storage Driver: devicemapper 
Pool Name: docker-253:0-1312128-pool 
Pool Blocksize: 65.54 kB 
Base Device Size: 10.74 GB 
Backing Filesystem: xfs 
Data file: /dev/loop0 
Metadata file: /dev/loop1 
Data Space Used: 12.17 GB 
Data Space Total: 107.4 GB 
Data Space Available: 32.16 GB 
Metadata Space Used: 7.889 MB 
Metadata Space Total: 2.147 GB 
Metadata Space Available: 2.14 GB 
Udev Sync Supported: true 
Deferred Removal Enabled: false 
Deferred Deletion Enabled: false 
Deferred Deleted Device Count: 0 
Data loop file: /var/lib/docker/devicemapper/devicemapper/data 
WARNING: Usage of loopback devices is strongly discouraged for production use. Either use `--storage-opt dm.thinpooldev` or use `--storage-opt dm.no_warn_on_loop_devices=true` to suppress this warning. 
Metadata loop file: /var/lib/docker/devicemapper/devicemapper/metadata 
Library Version: 1.02.122 (2016-04-09) 
Execution Driver: native-0.2 
Logging Driver: journald 
Plugins: 
Volume: local 
Network: bridge null host 
Kernel Version: 4.8.12-200.fc24.x86_64 
Operating System: Fedora 24 (Twenty Four) 
OSType: linux 
Architecture: x86_64 
Number of Docker Hooks: 2 
CPUs: 8 
Total Memory: 7.787 GiB 
Name: localhost.localdomain 
ID: YXHN:34PG:ZQA3:P4DU:4TFY:6THC:VFI2:E7BE:IGOW:2TTH:3BS7:3OOD 
Registries: docker.io (secure) 
+2

为什么在错误是OOM时在docker容器中运行'df'?这两者基本上不相关 – jaxxstorm

+0

在容器内运行的应用程序提供了一个OOM。所以我怀疑容器达到极限 –

+2

你的意思是“内存”还是“磁盘空间”? – Henry

回答

0

哪里此限制10G从何而来?

它来自dockerd(守护进程)在默认情况下为新的容器

我在哪里可以调整它创建特殊的“设备” 10G大小?

可以通过提供--storage-opt dm.basesize=50G到dockerd设置是devicemapper存储驱动程序的情况下

PS:其实,OOM不会造成磁盘空间,但内存,我觉得
有两种可能原因:

  • 你没有真实记忆。在Docker主机上使用free -m来观看。容器使用与Docker主机相同的内存

  • 您退出共享内存。不确定OOM,但默认情况下,docker将/ dev/shm设置为64M。它不适用于某些应用程序