タイトルが読むように、私は私のコンテナにより多くのメモリを割り当てようとしています。問題がある場合に備えて、 "aallam/Tomcat-mysql"というdocker hubからの画像を使用しています。
特別なフラグなしで普通に起動した場合、2GBのメモリ制限があります(たとえ設定されていなければメモリは無制限です)
これが私のdockerの統計です
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の統計でコンテナのサイズ制限が2GBであると表示されるのですか?
表示される2GB
の制限は、dockerが実行されるVMの合計メモリです。
あなたがdocker-for-windowsまたはdocker-for-macを使っているのなら、クジラから簡単に増やすことができます。タスクバーのアイコンをクリックして、設定 - >詳細設定に進みます。
ただし、背後にVirtualBoxを使用している場合は、VirtualBoxを開き、docker-machine assigned memoryを選択して設定します。
Macの場合はこれを参照してください。
https://docs.docker.com/docker-for-mac/#memory
メモリデフォルトでは、Docker for Macは2 GBのランタイムメモリを使用するように設定されています。これは、お使いのMacの使用可能なメモリの合計から割り当てられています。 Docker for Macのメモリ使用量を減らしたい場合は、この数字を大きく(たとえば3に)または小さく(1に)設定することで、アプリのRAMを上げてパフォーマンスを向上させることができます。
Windowsの場合
https://docs.docker.com/docker-for-windows/#advanced
メモリ - Docker for Windows Linux VMが使用するメモリ量を変更します
デフォルトのコンテナを変更したい場合にVirtualboxを使用している場合は、コマンドライン/ CLIを使用して変更できます。
docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start
(docker preference - > advance) アドバンス設定のスクリーンショット からdocker machineに最大メモリを割り当てます。これは、コンテナを実行している間にdockerが消費する最大制限を設定します。 4ギグ以上のRAMの場合は、-m = 4gフラグを付けて新しいコンテナでイメージを実行します。例えば.
docker run -m=4g {imageID}
ラム制限の増加の変更を適用することを忘れないでください。 dockerを再起動してram limitが増加したことを再確認してください。これは、docker containerでのram limitの増加が見られない要因の1つです。