DockerはPruneコマンドを使用してnoneイメージをクリーンアップします

DockerはPruneコマンドを使用してnoneイメージをクリーンアップします

無イメージの創造と混乱

時々、何も映っていない画像(虚像)を見ることがありますが、それは

  1. イメージ構築プロセス中に、スクリプト エラーにより多くのイメージ構築が終了し、多くのバージョンに none タグが付けられました。
  2. 手動でイメージを構築するとコミットが行われず、ジャンクイメージが残ってしまう
  3. これらの画像は大量のストレージスペースを占有するため、削除する必要があります。

下記の通り

root@instance-o70no2nw:~# docker イメージ -a
リポジトリ タグ イメージ ID 作成 サイズ
<なし> <なし> 867c2dc0031b 12時間前 465MB
mytomcat 8.5.0 34c8c864d046 12時間前 465MB
ubuntu 16.04 a3551444fc85 2日前 119MB
mysql 8.0.16 d72169616e20 4日前 443MB
mysql 最新 d72169616e20 4日前 443MB
tomcat 最新 5a069ba3df4d 2週間前 465MB

Noneオブジェクトをクリーンアップする方法

Docker は、イメージ、コンテナ、ボリューム、ネットワークなどの未使用のオブジェクト (多くの場合、「ガベージ コレクション」と呼ばれます) をクリーンアップするために保守的なアプローチを採用しています。
通常、これらのオブジェクトは、Docker に明示的に削除するように要求しない限り、削除されません。これにより、Docker が追加のディスク領域を使用する可能性があります。
Docker は、オブジェクトの種類ごとに prune コマンドを提供します。
あるいは、docker system prune を使用して、複数の種類のオブジェクトを一度にクリーンアップすることもできます。このトピックでは、これらのプルーニング コマンドの使用方法について説明します。

トリムミラー

なし画像(ぶら下がっている画像)をクリーンアップする
コマンド: docker image prune
デフォルトでは、docker image prune コマンドはバニティ イメージ (タグ付けされておらず、他のイメージから参照されていないイメージ) のみをクリーンアップします。

root@instance-o70no2nw:~# docker イメージのプルーニング
警告! これにより、ぶら下がっている画像がすべて削除されます。
本当に続行しますか? [y/N] y
回収されたスペースの合計: 0B

コンテナで使用されていないイメージをクリーンアップする

コマンド: docker image prune -a

デフォルトでは、続行するように求められます。プロンプトをバイパスするには、-f または --force フラグを使用します。
--filter フラグを使用すると、フィルター式を使用して削除するイメージを制限できます。たとえば、24 時間前に作成された画像のみを検討するには、次のようにします。

$ 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

これで、Prune コマンドを使用して Docker の none イメージをクリーンアップする方法についての記事は終了です。Docker の none イメージをクリーンアップする方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Dockerコンテナでvimコマンドが使えない問題を解決する
  • Docker Compose 構成ファイルの記述とコマンドの使用例
  • Dockerコンテナイメージ関連コマンドの基本的な紹介と使用方法
  • docker システムコマンドセットの使用
  • dockerの基本コマンドと使用例の詳しい説明

<<:  Flexレイアウトを使用してヘッドの固定コンテンツ領域のスクロールを実現する方法

>>:  HTML 終了タグの問題と W3C 標準

推薦する

Tableとdivの簡単な紹介と使い方

ウェブフロントエンド1学生証名前性別年01張三男20 02李思女性21総人数60フォームのコンポーネ...

CSS3のvar()を使用して実行時にscss変数の値を変更する詳細な説明

var() の紹介と使用法詳細 (MDN) IEは無効ですが、他の主流のブラウザは有効ですvar()...

JS に依存せずにレスポンシブ レイアウトを実現する CSS3 モバイル vw+rem メソッド

1. はじめに(1)vw/vhの紹介使用する前に、vw と rem とは何か、その機能について簡単に...

Hadoop を使用せずに Linux 環境に Spark のスタンドアロン バージョンをインストールする方法

ビッグデータはますます注目を集めており、ビッグデータのいくつかの構成要素に精通していないと、自慢でき...

MySQL 5.7 における基本的な JSON 操作ガイド

序文プロジェクトのニーズにより、ストレージ フィールドは JSON 形式で保存されます。プロジェクト...

Tomcat を再デプロイした後にイメージやその他のリソースが自動的に削除される問題を解決します

昨日は写真をアップロードしてリンクを返す機能を実装していました。プロジェクトが Tomcat に再デ...

docker で golang イメージに基づいて ssh サービスを構築する方法

以下は、docker の golang イメージに基づいて ssh サービスを構築するためのコードで...

Visual Studio Codeを使用してMySqlデータベースに接続し、クエリを実行します。

Visual Studio Code は、Microsoft が開発した強力なテキスト エディター...

MySQLのファジークエリのような遅い速度を解決する方法

質問: インデックスは作成されているのに、Like ファジー クエリがまだ遅いのはなぜですか?インデ...

ウェブページの画像を素早く表示する方法とテクニック

1. .jpg ではなく .gif を使用します。GIF は JPG に比べてサイズが小さくなります...

SQLは、隣接する2行のデータに対して加算、減算、乗算、除算の演算を実行します。

SQL は、データを特定の順序で並べ替え、特定のフィールドでグループ化した後、隣接する 2 つのデ...

mysql は sql ファイルを実行し、エラーを報告します エラー: 不明なストレージ エンジン 'InnoDB' ソリューション

問題を見つける最近、仕事で問題が発生しました。InnoDB タイプの SQL ファイルを実行すると、...

Sitemesh チュートリアル - ページ装飾技術の原理と応用

1. 基本概念1. Sitemeshはページ装飾技術です。 1 : フィルターを通してページアクセス...

mysql 簡単な操作例を表示

この記事では、例を挙げて mysql show 操作について説明します。ご参考までに、詳細は以下の通...

JS 日付コントロール My97DatePicker の基本的な使い方

My97DatePicker は非常に柔軟で使いやすい日付コントロールです。使い方はとても簡単です。...