簡體   English   中英

構建Docker映像時“虛擬內存耗盡”

[英]“virtual memory exhausted” when building Docker image

構建Docker映像時,有一些C ++腳本的編譯,最后出現如下錯誤:

src/amun/CMakeFiles/cpumode.dir/build.make:134: recipe for target 'src/amun/CMakeFiles/cpumode.dir/cpu/decoder/encoder_decoder_state.cpp.o' failed
virtual memory exhausted: Cannot allocate memory

但是,當在主機上構建相同的.cpp代碼時,它可以正常工作。


經過一番檢查后,錯誤消息似乎類似於人們在Raspberry Pi上看到的錯誤消息, https://www.bitpi.co/2015/02/11/how-to-change-raspberry-pis-swapfile-尺寸上rasbian /

經過更多的谷歌搜索后, Mac論壇上的這篇帖子說:

交換文件會根據需要動態創建,直到磁盤已滿,或者內核用盡了頁表空間。 我認為您不能在Mac OS X內核中更改頁表空間限制。 在使用OS X的所有這些年中,我從未見過任何東西。

有沒有辦法增加Mac OS上Docker構建的交換空間?

如果不是,那么在構建Docker映像時如何解決“虛擬內存耗盡”錯誤?

這與XHyve似乎無關緊要。
本主題所述

我認為VM的默認大小為16GB。 即使在將VM的內存增加到16GB之后,我仍然用盡交換空間。

檢查用於VirtualBox VM的方法是否適用於XHyve:請參閱“ 如何增加boot2docker虛擬機中可用的交換空間?

boot2docker ssh

export SWAPFILE=/mnt/sda1/swapfile
sudo dd if=/dev/zero of=$SWAPFILE bs=1024 count=4194304
sudo mkswap $SWAPFILE
sudo chmod 600 $SWAPFILE
sudo swapon $SWAPFILE

exit

再次檢查此Digital Ocean設置 ,以在XHyve上下文中進行測試。
在這里或在docker-root-xhyve/contrib/makehdd/makehdd.sh 也可以看到mkswap

由於主機中有足夠的可用內存,因此建議您為后面的Docker VM分配更多的內存。

如前所述這里

如我所見,您在OSX上,該OSX在Linux VM上運行docker。 單擊任務欄中的鯨魚圖標,配置最大內存。 默認為2G。

有關更多信息: https : //docs.docker.com/docker-for-mac/#memory

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM