2017-10-10 40 views
0

我想限制一個Docker容器的內存爲1 GB。根據該文件,我們可以使用--memory選項指定所需的內存限制:碼頭運行「--memory」選項的單位是什麼?

$ docker run --memory <size> ... 

然而,documentation沒有描述的格式或單位有關參數頁面上的任何地方:

--memory,-m          內存限制

我應該提供哪些單位到--memory和其他相關選項,如--memory-reservation--memory-swap?只是字節?

回答

1

RTFM的經典案例。該--memory選項支持單位後綴,所以我們並不需要計算出準確的字節數:

-m, --memory="" 
     Memory limit (format: <number>[<unit>], where unit = b, k, m or g) 

    Allows you to constrain the memory available to a container. If the 
    host supports swap memory, then the -m memory setting can be larger 
    than physical RAM. If a limit of 0 is specified (not using -m), the 
    container's memory is not limited. The actual limit may be rounded up 
    to a multiple of the operating system's page size (the value would be 
    very large, that's millions of trillions). 

因此,要啓動一個盛有1只GB內存限制在這個問題說明,無論是這些命令都可以工作:

$ docker run --memory 1g ... 
$ docker run --memory 1073741824 ... 

--memory-reservation--memory-swap選項也支持這一公約。

1

docker documentation摘自:

限制的容器的存儲器多克爾訪問可以實施硬存儲器 限制,這允許容器使用比給定的量的用戶或系統存儲器,或軟 沒有更多限制,這允許容器 使用盡可能多的內存,除非滿足某些條件,例如內核檢測到內存不足或主機 機器上的爭用時,如 。當單獨使用 或設置了多個選項時,這些選項中的一些會有不同的效果。

這些選項大部分採取的正整數,隨後的 bkmg,一個後綴來表示字節,千字節,兆字節或千兆字節。

This page還包含一些關於在Windows上運行docker時的內存限制的額外信息。

相關問題