overlay2 docker をクリーンアップする方法

overlay2 docker をクリーンアップする方法

LinuxマシンでDockerコンテナをいくつか実行していますが、/docker/overlay2フォルダのディスクサイズが非常に速く大きくなります。そのため、新しいイメージをプッシュできません。

overlay2 の内部を確認すると、非常に古いレイヤーが含まれていることがわかります (2019 年 8 月)

docker ボリュームをクリーンアップするために次のコマンドを試しました ls -qf dangling=true | xargs -r docker volume rm docker rm -v $(sudo docker ps -a -q -f status=exited) docker system prune

しかし0Bを取り戻した

チェック済みhttps://stackoverflow.com/questions/46672001/is-it-safe-to-clean-docker-overlay2

https://docs.docker.com/config/pruning/

https://success.docker.com/article/error-message-no-space-left-on-device-in-default-machine

これをきれいにする最善の方法は何ですか?


docker ログ

Starting Oracle Net Listener.

Oracle Database 11g Express Edition インスタンスを起動しています。

DBの起動を待機中

SQL*Plus: リリース 11.2.0.2.0 プロダクション、2020 年 7 月 14 日火曜日 05:04:23

Copyright (c) 1982, 2011, Oracle. 無断複写・転載を禁じます。

接続先: Oracle Database 11g Express Edition リリース 11.2.0.2.0 - 64 ビット製品

SQL> Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64 ビットの本番 DB から切断されました /opt/ion/platform/daemon/DM_DOCKER / デーモンを /opt/ion/platform/daemon/DM_DOCKER/mkvd118p1.lx から起動しました ポート 13000 を待機しています bash: connect: ネットワークに到達できません bash: /dev/tcp/localhost/13000: ネットワークに到達できません デーモンがポート 13000 で開始されました / 実行中: /startup/ansible_container_startup.sh 実行中: /startup/cups_startup.sh 実行中: /startup/samba_startup.sh 実行中: /startup/start_check_mk_agent.sh

ドッカー差分 デーモンからのエラー応答: mkdir /docker/overlay2/f033daa6d065ff85484b54fcd9a7786f839917d180129ea8fed0f627ad776095-init/merged: デバイスに空き容量がありません

ドッカーps -a

docker ボリューム ls

Docker イメージ

答え1

overlay2 が大きすぎる場合の一般的な解決策は、クリーンアップを実行して、タグが外された (新しいタグに置き換えられた) 停止したコンテナとイメージを整理することです。これは、docker pruneこのコマンドで実行され、さらにデータを整理するための他のオプションもあります。このフォルダーの一般的なクリーンアップの詳細については、「docker/overlay2/をクリーンアップしても安全ですか?「」。

フォルダが大きくなることが問題であれば/var/lib/docker/containers、stdout/stderrに書き込まれたログが疑われます。それをきれいにし、将来の過剰なログを防ぐためのさまざまな方法

ただし、この問題については、コンテナーを起動したときに overlay2 フォルダーのサイズが急速に増加する場合、そのコンテナーは、そのコンテナーに関連付けられた読み取り/書き込みファイルシステムに書き込んでいる可能性が最も高くなります。ファイルを変更するたびに、コンテナー固有のレイヤーへのコピーオンライトがトリガーされます。特定のdocker container diffコンテナー ID でどのファイルが作成または変更されているかを診断できます。状況では、ドライブがいっぱいになるほど速く発生しているため、マシンにこのコンテナーをデバッグまたは実行する容量がない可能性があります。そのため、容量の大きいマシンでデバッグする必要がある可能性があります。

答え2

不要な画像を削除するために使用できますdocker image prune -a

関連情報