シナリオ: Docker エンジンを長期間使用すると、ディスク領域がどんどん大きくなっていることに気付くでしょう。ここで、ディスク領域を解放するために、Docker に関連する未使用のデータを削除する必要があります。 docker systemコマンドを初めて見る Docker システムには、現在次の 4 つのサブコマンドがあります。 docker システム df docker システムイベント docker システム情報 docker システム プルーン docker システムの最も重要なコマンドの 1 つは、イメージ データや停止したコンテナーなどの未使用のデータをクリーンアップする docker system prune コマンドです。 Dockerシステムのヘルプを参照 [root@localhost ~]# docker システム --help 使用方法: docker system コマンド Dockerを管理する オプション: --help 使用方法を表示する コマンド: df Docker ディスク使用量を表示 イベント サーバーからリアルタイムイベントを取得する info システム全体の情報を表示する 未使用データを削除する コマンドの詳細については、「docker system COMMAND --help」を実行してください。 docker システム dfイメージ、コンテナ、(ローカル) ボリュームを含む、Docker ディスクの全体的な使用状況の概要を提供します。これで、Docker が使用しているリソースの量をいつでも確認できるようになりました。 [root@localhost ~]# docker システム df タイプ 合計 アクティブサイズ 再利用可能 画像 10 6 2.652GB 1.953GB (73%) コンテナ 6 6 6.922MB 0B (0%) ローカルボリューム 0 0 0B 0B docker システム プルーン前のコマンドで docker が多くのスペースを占有していることが示された場合は、クリーンアップを開始します。すべてを実行するコマンドがあります: [root@localhost ~]# docker システムプルーニング 警告! これにより以下が削除されます: - 停止したすべてのコンテナ # 停止したコンテナをクリーンアップします - 少なくとも 1 つのコンテナで使用されていないすべてのネットワーク # 未使用のネットワークをクリーンアップします - 未処理のすべてのイメージ # 放棄されたイメージをクリーンアップします - すべてのビルド キャッシュ # ビルド キャッシュをクリーンアップします 続行しますか? [y/N] y 回収されたスペースの合計: 0B 警告メッセージによると、このコマンドは閉じられたコンテナとぶら下がっているイメージをすべて削除します。この例では、3 つの 1 GB のランダム ファイルを含むイメージの名前が occupationed: になっています。これはぶら下がっているイメージであり、削除されます。同時に、すべての中間画像が削除されます。 さらに一歩進んで、-a オプションを使用してより徹底的なクリーンアップを実行します。この時点で、より深刻な警告情報が表示されます: $ docker システムプルーン -a 警告! これにより以下が削除されます: - 停止したコンテナすべて - 少なくとも 1 つのコンテナで使用されていないすべてのボリューム - 少なくとも 1 つのコンテナで使用されていないすべてのネットワーク - 少なくとも 1 つのコンテナが関連付けられていないすべてのイメージ 本当に続行しますか? [y/N] y 削除された画像: タグなし: テスト:最新 削除済み: sha256:c515ebfa2... 削除済み: sha256:07302c011... 削除済み: sha256:37c0c6474... 削除済み: sha256:5cc2b6bc4... 削除済み: sha256:b283b9c35... 削除済み: sha256:8a8b9bd8b... タグなし: アルパイン:最新 タグなし: alpine@sha256:58e1a1bb75db1... 削除済み: sha256:4a415e366... 削除済み: sha256:23b9c7b43... 回収された合計容量: 2.151GB このコマンドはシステム全体をクリーンアップし、実際に使用されているイメージ、コンテナ、ボリューム、ネットワークのみを保持するため、細心の注意が必要です。たとえば、バックアップイメージ(バックアップ、ロールバックなど)が必要になることがあるため、本番環境では prune -a コマンドを実行できません。これらのイメージが削除された場合、コンテナを実行するときに再度ダウンロードする必要があります。 この時点で、コンテナにバインドされていないすべてのイメージが削除されます。最初の prune コマンドはすべてのコンテナを削除するため、すべてのイメージ (どのコンテナにもバインドされていないもの) が削除されます。 Noneオブジェクトをクリーンアップする方法Docker は、イメージ、コンテナ、ボリューム、ネットワークなどの未使用のオブジェクト (多くの場合、「ガベージ コレクション」と呼ばれます) をクリーンアップするために保守的なアプローチを採用しています。 トリムミラーなし画像(ぶら下がっている画像)をクリーンアップする root@instance-o70no2nw:~# docker イメージのプルーニング 警告! これにより、ぶら下がっている画像がすべて削除されます。 本当に続行しますか? [y/N] y 回収されたスペースの合計: 0B コンテナで使用されていないイメージをクリーンアップするコマンド: デフォルトでは、続行するように求められます。プロンプトをバイパスするには、-f または --force フラグを使用します。 $ docker イメージ prune -a --filter "until=24h" 剪定容器コンテナの起動時に --rm フラグが指定されていない限り、コンテナを停止してもコンテナは自動的に削除されません。停止したコンテナも含め、Docker ホスト上のすべてのコンテナを表示するには、docker ps -a コマンドを使用します。特に開発環境では、コンテナの数の多さに驚かれるかもしれません。停止されたコンテナの書き込み可能なレイヤーは、依然としてディスク領域を占有します。これらをクリーンアップするには、docker コンテナ prune コマンドを使用します。 $ dockerコンテナのプルーン 警告! これにより、停止されたコンテナがすべて削除されます。 本当に続行しますか? [y/N] y デフォルトでは、続行するように求められます。プロンプトをバイパスするには、-f または --force フラグを使用します。 デフォルトでは、停止されたコンテナはすべて削除されます。 --filter フラグを使用してスコープを制限できます。たとえば、次のコマンドは、24 時間以上前に作成された停止されたコンテナのみを削除します。 トリミングロールボリュームは 1 つ以上のコンテナで使用でき、Docker ホスト上のスペースを占有します。ボリュームは自動的に削除されることはありません。削除するとデータが破壊されるためです。 $ dockerボリュームプルーニング 警告! これにより、少なくとも 1 つのコンテナーで使用されていないすべてのボリュームが削除されます。 本当に続行しますか? [y/N] y ネットワークの剪定Docker ネットワークは多くのディスク領域を占有しませんが、iptables ルール、ブリッジ ネットワーク デバイス、およびルーティング テーブル エントリを作成します。これらをクリーンアップするには、docker network prune を使用して、コンテナで使用されていないネットワークをクリーンアップできます。 $ docker ネットワークプルーニング すべてをトリミングdocker system prune コマンドは、イメージ、コンテナ、ネットワークをプルーニングする簡単な方法です。 Docker 17.06.0 以前では、ボリュームのプルーニングは問題ありません。 Docker 17.06.1 以降では、ボリュームをプルーニングするには、docker system prune コマンドに --volumes フラグを明示的に指定する必要があります。 $ docker システムプルーン 警告! これにより以下が削除されます: - 停止したコンテナすべて - 少なくとも 1 つのコンテナで使用されていないすべてのネットワーク - すべてのぶら下がった画像 -すべてのビルドキャッシュ 本当に続行しますか? [y/N] y Docker 17.06.1 以降を使用しており、ボリュームの整理も行う場合は、--volumes フラグを使用します。 $ docker system prune --volumes 警告! これにより以下が削除されます: - 停止したコンテナすべて - 少なくとも 1 つのコンテナで使用されていないすべてのネットワーク - 少なくとも 1 つのコンテナで使用されていないすべてのボリューム - すべてのぶら下がった画像 -すべてのビルドキャッシュ 本当に続行しますか? [y/N] y 通常、スケジュールされたタスクは削除できます たとえば、私のシナリオでは、イメージが大量のディスク領域を占有するため、毎日午前 1 時にイメージを削除するタスクをスケジュールし、72 時間以上使用されていないすべてのイメージを削除します。 [root@develop-server]# crontab -e 0 1 * * * docker イメージ prune -a --force --filter "until=72h" docker システム情報(docker info) このコマンドの略語は皆さんご存知だと思いますが、docker info [root@localhost ~]# docker システム情報 コンテナ: 6 ランニング: 6 一時停止: 0 停止: 0 画像: 49 サーバーバージョン: 17.06.2-ce ストレージ ドライバー: オーバーレイ バックアップファイルシステム: xfs d_type をサポート: true ログドライバー: json-file cgroup ドライバー: cgroupfs プラグイン: ボリューム: ローカル ネットワーク: ブリッジ ホスト macvlan null オーバーレイ ログ: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog 群れ: 非アクティブ ランタイム: runc デフォルトのランタイム: runc 初期化バイナリ: docker-init コンテナバージョン: 6e23458c129b551d5c9871e5174f6b1b7f6d1170 runc バージョン: 810190ceaa507aa2727d7ae6f4790c76ec150bd2 初期化バージョン: 949e6fa セキュリティ オプション: seccomp プロフィール: デフォルト カーネルバージョン: 3.10.0-514.26.2.el7.x86_64 オペレーティング システム: CentOS Linux 7 (コア) OSタイプ: Linux アーキテクチャ: x86_64 CPU: 24 合計メモリ: 31.21 GiB 名前: localhost.localdomain ID: YTL2:6RWX:IZK6:X4XC:XKMO:WVXD:LXPR:E5GN:GEJB:WIUX:L5YH:PDFB Docker ルートディレクトリ: /var/lib/docker デバッグモード(クライアント): false デバッグモード(サーバー): false レジストリ: https://index.docker.io/v1/ 実験的: 偽 安全でないレジストリ: 127.0.0.0/8 レジストリミラー: http://9zkjjecg.mirror.aliyuncs.com/ https://docker.mirrors.ustc.edu.cn/ ライブリストアが有効: false 詳しい説明 参照: docker-system - 新しいコマンドセット Docker は none イメージをクリーンアップします Prune コマンド docker prune コマンドを使用して、あまり使用されないデータをクリーンアップする方法についての記事はこれで終わりです。docker prune コマンドを使用して、あまり使用されないデータをクリーンアップする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQL インデックス プッシュダウン (ICP) の簡単な理解と例
>>: 単純なCSSの詳細に惚れ込むと、重要ではないものの、効率性が向上する可能性がある
この記事では、audioContextを介して3Dサウンド効果を実現するためのjsの具体的なコードを...
目次1. vue-cli デフォルト プロジェクトを作成する (babel のみを含む) 2. 作成...
目次1. 目的2. 文法3. 練習する1. 目的通常、エラーが発生すると、スクリプトは直ちに停止し、...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
1. はじめにCentOS8 システムの更新、新しいバージョンは人々に非常に快適に感じさせます。 こ...
1. インストール前の準備: 1.1 JDKをインストールするopenjdkをアンインストールする...
この記事では、例を使用して、MySQL データベースの最適化のためのインデックス実装の原則と使用方法...
目次1. Gojsの実装1. 描画2. 破線の実装3. 点線を動かす2. 点線と点線アニメーションの...
インストール環境: CAT /etc/os-release CentOS システムのバージョン情報を...
この記事では、フリーウィンドウのマウス制御を実現するためのJavaScriptの具体的なコードを参考...
目次1. 元のドライバーをアンインストールする2. 新しいグラフィックカードドライバーをダウンロード...
1. サーバーの購入1. 私はAlibaba Cloudのサーバーを選択しました。学生向けで月額9...
1. カスタムフックとは何かロジックの再利用簡単に言えば、カスタム フックを使用すると、特定のコンポ...
序文MySQL と Navicat をインストールした後、接続時に、ERROR 2059 (HY00...
クイックスタート1. Docker Hubでnginxイメージを見つけるdocker 検索 ngin...