2017-06-28 4 views
2

6GBのRAMメモリを持つDocker Containerが必要です。 私は、このコマンドを試してみました:端末またはDockerFileでDockerコンテナのRAMメモリを設定するには

docker run -p 5311:5311 --memory=6g my-linux 

をしかし、私はドッカーコンテナにログインして、私は利用可能なメモリの量をチェックしているため、それは動作しません。これは、利用可能なのは2GBしかないことを示す出力です。

>> cat /proc/meminfo 

MemTotal:  2046768 kB 
MemFree:   1747120 kB 
MemAvailable: 1694424 kB 

Dockerアプリケーションで設定を進めてみました。 私が6GBを設定した場合、それは動作します...つまり、6GB MemTotalのコンテナがあります。 私のコンテナには6GBがあります。

いくつかのコマンドを使って1つのコンテナに6GBのメモリを割り当てる方法や、Dockerファイルで何かを設定する方法が不思議でした。どんな助け?

答えて

5

ドッカーコンテナ内部からメモリ使用量を追跡するために/proc/meminfoに依存しないでください。 /proc/meminfoで、コンテナ化されていません、つまりファイルにホストシステムのmeminfoが表示されています。

お客様の/proc/meminfoは、ご使用のホストシステムが2Gのメモリを利用できることを示しています。物理メモリを増やさずにコンテナ内で6Gを利用できる唯一の方法は、スワップパーティションを作成することです。

〜4G以上のスワップパーティションを作成すると、コンテナはそのメモリを使用できます(デフォルトでは、dockerはコンテナの実行に制限を設けません)。

明示的6Gにあなたのコンテナに使用可能なメモリの量を制限したい場合は、6G(--memory-swap)の総メモリ制限のうち、2G件までは、物理メモリ(--memory)であってもよいことを意味し、docker run -p 5311:5311 --memory=2g --memory-swap=6g my-linuxを行うことができ。この詳細については、hereをご覧ください。

は、私の知っているDockerfileのメモリ制限を設定する方法はありません(と私はすべきではないと思う:Dockerfilesはそれらを実行しているコンテナを構築し、ないのためにそこにある)が、ドッキングウィンドウ、コンサポート上記のオプションはmem_limitmemswap_limitのキーで行います。

関連する問題