AWS EC2上でいくつかの Docker コンテナを実行しているのですが、/var/lib/docker/overlay2 フォルダのディスク サイズが非常に速く増加します。
そのコンテンツを削除しても安全かどうか、または docker にディスク使用量を解放する何らかのコマンドがあるかどうかが気になります。
アップデート:
実際にすでに試してみましたがdocker system prune -a
、0Kb が回復しました。
また、私の/docker/overlay2ディスクサイズは、docker system df
docker のドキュメントと BMitch の回答を読んだ後、このフォルダーに触れるのは愚かな考えだと思い、ディスク領域を取り戻すために他の方法を試してみます。
ベストアンサー1
Dockerは/var/lib/dockerを使用してイメージ、コンテナ、ローカルの名前付きボリュームを保存します。これを削除するとデータが失われ、エンジンが実行できなくなる可能性があります。overlay2サブディレクトリには、さまざまなファイルシステムレイヤー画像とコンテナ用。
未使用のコンテナとイメージをクリーンアップするには、を参照してくださいdocker system prune
。ボリュームやタグ付きイメージを削除するオプションもありますが、データ損失の可能性があるため、デフォルトでは有効になっていません。
$ docker system prune --help
Usage: docker system prune [OPTIONS]
Remove unused data
Options:
-a, --all Remove all unused images not just dangling ones
--filter filter Provide filter values (e.g. 'label=<key>=<value>')
-f, --force Do not prompt for confirmation
--volumes Prune volumes
プルーンによって決して削除されないものには、次のものが含まれます。
- 実行中のコンテナ( でリストします
docker ps
) - これらのコンテナのログ(この郵便受けログのサイズ制限の詳細については、
- これらのコンテナによって行われたファイルシステムの変更 ( で表示
docker diff
)
さらに、通常の docker フォルダーの外部に作成されたものは、このガベージ コレクション中に docker によって表示されない可能性があります。これは、このディレクトリに書き込む他のアプリ、または docker エンジンの以前の構成 (AUFS から overlay2 への切り替え、またはユーザー名前空間を有効にした後など) によるものである可能性があります。
このアドバイスを無視して、このファイルシステムから overlay2 のような単一のフォルダを削除した場合、何が起こるでしょうか? コンテナのファイルシステムはファイルシステム レイヤーの集合から構成されており、overlay2 フォルダは Docker がこれらのマウントの一部を実行する場所です (mount
コンテナの実行中は出力に表示されます)。使用中のこれらの一部を削除すると、実行中のコンテナからファイルシステムの一部が削除され、影響を受けるイメージから新しいコンテナを起動できなくなる可能性があります。この質問考えられる多くの結果のうちの 1 つ。
docker を完全にクリーンな状態に更新するには、overlay2 などのサブディレクトリだけでなく、ディレクトリ全体を削除できます。
# danger, read the entire text around this code before running
# you will lose data
sudo -s
systemctl stop docker
rm -rf /var/lib/docker
systemctl start docker
exit
エンジンは完全に空の状態で再起動します。つまり、以下のすべてが失われます。
- 画像
- コンテナ
- 名前付きボリューム
- ユーザーが作成したネットワーク
- 群れ状態