2016-12-16 199 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。它不適用於某些應用程序