シナリオ: 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の詳細に惚れ込むと、重要ではないものの、効率性が向上する可能性がある
cmdにnet start mysqlと入力すると、プロンプトが表示されます: サービス名が無効です...
Django で Web プロジェクトを開発する場合、開発およびテストのプロセスでは Django ...
目次序文紹介-公式設定例序文vueCli を使用してプロジェクトを開発したことのある方は、少しがっか...
JavaScript - 原則シリーズ日常の開発では、既存のプロジェクトを引き継ぐときは常に、まず他...
手ぶれ防止: 繰り返しのクリックによるイベントのトリガーを防止まず、揺れとは何でしょうか? 震えるの...
目次序文導入ngram全文パーサー全文インデックスを作成する検索方法1. 自然言語検索(自然言語モー...
Docker は、ブリッジ、ホスト、オーバーレイなどの複数のネットワークを提供します。同じ Dock...
目次序文背景大きな推測パターンを見つける構造とスタイルコンポーネントの実装パラメータキーボードの種類...
目次1. Dockerをインストールする2. Jenkinsイメージファイルを取得する3. マウント...
最近の Web サイトでは Https をサポートすることがほぼ標準機能となっており、Nginx は...
目次1. CentOS7+MySQL8.0、yumソースインストール2. MySQLにログインしてパ...
1. はじめに最近ブログをアップグレードし、記事ページの下部に前の記事と次の記事に直接ジャンプできる...
1. リストクエリインターフェースの効果コード処理ロジックを紹介する前に、まずは感覚的に理解し、レン...
コンテンツ プロパティは CSS 2.1 で導入され、:before および :after 疑似要素...
Linux システムでは、chmod コマンドと chown コマンドの両方を使用して権限を設定でき...