[解決済み】docker/overlay2/のクリーニングは安全か?
質問
AWS EC2上でいくつかのDockerコンテナを動作させていますが、/var/lib/docker/overlay2フォルダのディスクサイズが非常に大きくなっています。
その内容を削除しても大丈夫なのでしょうか? あるいは、dockerにディスク使用量を解放するためのコマンドがあるかどうか。
UPDATEです。
実際にやってみた
docker system prune -a
すでに0Kbを再生しています。
また、私の /docker/overlay2 のディスクサイズは
docker system df
dockerのドキュメントとBMitchの回答を読んで、このフォルダを触るのは愚かな考えだと思い、ディスクスペースを取り戻すために他の方法を試してみようと思っています。
解決方法は?
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
エンジンは完全に空の状態で再起動するため、すべてを失うことになります。
- 画像
- コンテナ
- 名前付きボリューム
- ユーザー作成ネットワーク
- 群れの状態
関連
-
[解決済み] Dockerコンテナの中から、マシンのローカルホストに接続するにはどうすればよいですか?
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerコンテナのシェルに入るにはどうしたらいいですか?
-
[解決済み] 古いDockerコンテナを削除する方法
-
[解決済み] Dockerでイメージのクリーンビルドを強制する方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】Docker remove <none> TAGイメージ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] docker-machine: コマンドが見つかりません。
-
[解決済み] dockersやlxcにtty/std-in-outをアタッチするとはどういうことですか?
-
[解決済み] dockerでprivate 1.0のレジストリからイメージを検索するには?[クローズド]
-
[解決済み] Docker:Dockerコンテナのログを適切にクリアする方法は?
-
[解決済み】docker composeで環境変数を使用する方法
-
[解決済み】docker composeでホストディレクトリをボリュームとしてマウントする方法
-
[解決済み】docker-composeからdockerに接続できない。
-
[解決済み】プライベートDockerレジストリからイメージを削除する方法は?
-
[解決済み】Kubernetes イメージを更新するデプロイメントの作り方
-
[解決済み】Dockerは使用量が多いのに、Dockerコンテナがない