1. ホーム
  2. docker

[解決済み] ドッカーコンテナに多くのメモリを割り当てる方法

2022-04-22 02:44:13

質問

タイトルの通り、コンテナに多くのメモリを割り当てようとしています。私はdocker hubから"aallam/tomcat-mysql"というイメージを使用していますが、これは関連していますか?

特別なフラグを立てずに普通に起動すると、メモリが2GBに制限される(設定しないとメモリが無限になると書いてあったのに)。

以下は私のドッカー統計情報です。

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
ba57d6c9e9d2        0.22%               145.6 MiB / 1.952 GiB   7.29%               508 B / 508 B       0 B / 6.91 MB       68

メモリを明示的に設定してみましたが、同じ結果でした。

docker run -d --memory=10g --memory-swap=-1 -e MYSQL_PASSWORD=password -p 3307:3306 -p 8081:8080 aallam/tomcat-mysql

おそらくVMが制限しているのだろうと読んだことがあります。しかし、それならなぜ docker stats はコンテナサイズの制限が 2GB であることを示すのでしょうか?

解決方法を教えてください。

その 2GB の制限は、docker が実行されている VM の総メモリ量です。

docker-for-windows または docker-for-mac を使用している場合は、タスクバーの Whale アイコンから Preferences -> Advanced で簡単に増やすことができます。

ただし、VirtualBoxを裏で使用している場合は、VirtualBoxを開き、Docker-Machineの割り当てメモリを選択・設定してください。

Macの場合はこちらをご覧ください。

https://docs.docker.com/docker-for-mac/#advanced

メモリ デフォルトでは、Docker for Macは2GBのランタイムメモリを使用するように設定されており、お使いのMacで利用可能なメモリの合計から割り当てられます。Docker for Macが使用するメモリを少なくしたい場合は、この数値を高く(例えば3)、低く(1)設定することで、アプリのRAMを増やし、より高速なパフォーマンスを得ることができます。

Windowsの場合。

https://docs.docker.com/docker-for-windows/#advanced

メモリ - Docker for Windows Linux VMが使用するメモリ量を変更します。