Docker 全体のリソース使用量を制限する#
一部の Docker コンテナがホストのメモリを使用しすぎて PC 全体が固まってしまうことがあった。 そのため、Docker 全体のリソース使用量に制約をつける方法を調査した。
手順#
slice の設定ファイルを作成する。
/etc/systemd/system/docker_limit.slice
というファイルを作成し、リソース使用量の上限を設定する。例えば、メモリ使用量に制約を設けるために、以下のような記述を行う。
[Unit] Description=Slice that limits docker resources Before=slices.target [Slice] MemoryAccounting=true MemoryHigh=12G MemoryMax=14G MemoryMaxSwap=2G
slice のサービスを起動する。
以下のコマンドを実行する。
sudo systemctl start docker_limit.slice
Docker が上記の slice を使用するように設定する。
/etc/docker/daemon.json
ファイルに以下の設定を追加する。{ "cgroup-parent": "docker_limit.slice" }
Docker を再起動する。
以下のコマンドを実行する。
sudo systemctl restart docker