Edited at

起動中のコンテナのメモリを制限する

こんちは。

デフォルトでDockerエンジンが採用するサイズが大きすぎて、

起動中のコンテナのメモリを制限したいことがあるかと思います。

Dockerは、起動中のコンテナでもリソースを変更することができます。

まずは、現在の統計情報を確認

$ docker stats

CONTAINER ID        NAME           CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS

88ef7f56bd68 api 0.00% 11.6MiB / 15.56GiB 0.07% 13.1kB / 5.51kB 0B / 0B 18
32143219204f db 0.13% 454.2MiB / 15.56GiB 2.85% 14.4kB / 5kB 4.1kB / 3.26MB 22

apiコンテナに15Gも要らなさそうですね。

これを500Gに変更するには、

$ docker update --memory="500m" 88ef7f56bd68

とします。

再度確認してみます。

CONTAINER ID        NAME           CPU %               MEM USAGE / LIMIT     MEM %               NET I/O             BLOCK I/O           PIDS

88ef7f56bd68 api 0.00% 11.6MiB / 500MiB 0.07% 13.1kB / 5.51kB 0B / 0B 18
32143219204f db 0.13% 454.2MiB / 15.56GiB 2.85% 14.4kB / 5kB 4.1kB / 3.26MB 22

ちゃんと制限されていますね。

docker updateは他にもいろいろできます。

https://docs.docker.com/engine/reference/commandline/update/

以上、よきコンテナ生活を。