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 標準

推薦する

MySQLクエリ条件におけるonとwhereの配置の違いの分析

導入今日SQLを書いているときに、問題が発生しました。要件は、データを照会し、スコアと過去 1 週間...

MySQL killコマンドの実行原理の詳細な説明

目次キル命令実行原理命令実行特性クエリ実行の強制終了の原則接続終了の実装原則中断される可能性はありま...

HTML におけるいくつかの特殊属性タグの使用法の紹介

以下の属性はブラウザとの互換性があまりありません。 1.transform:rotate(45度) ...

Vue2.0/3.0 での provide と inject の使用例

目次1. provide/inject の用途は何ですか? 2. provide/injectの使い...

実行後にdocker nginxにアクセスできない問題の解決策

## 1最近、docker デプロイメントを学習しており、当初は nginx を docker 化す...

Linuxでスワップパーティションファイルを作成する方法

スワップの紹介Linux のスワップ (スワップ パーティション) は、Windows の仮想メモリ...

MySQLでのカスタムパラメータの使用に関する詳細な説明

MySQL 変数には、システム変数とシステム変数が含まれます。今回の学習課題はユーザー定義変数です。...

ページ内にマーキーとフラッシュが共存する場合の競合解決

競合の主な症状は、FLASH ボタンがジャンプし続け、不安定になり、Web ページの外観と通常のアク...

ES6 ループと反復可能オブジェクトの例

この記事では、ES6 の for ... of ループについて説明します。古い方法以前は、JavaS...

ウェブサイトを高速化する

パフォーマンスは本当に重要ですか?パフォーマンスは重要であり、誰もがそれを知っています。なぜ私たちは...

ウェブデザインにおける装飾要素の応用の概要

<br />序文: このチュートリアルを読む前に、序文を注意深く読んでください。そうしな...

js でショッピングモールのシミュレーションを実現

HTML、CSS、JSフロントエンドを学習中の皆さん、今回はショッピングモールの事例の実装をシェアし...

JavaScript - Vue でのスロットの使用: スロット

目次Vue でのスロットの使用: slotスコープ付きスロット: テンプレートタグで囲む要約するVu...

js の一般的でない演算子と演算子の概要

一般的な演算子と JavaScript の演算子の概要カテゴリオペレーター算術演算子+、–、*、/、...

今日と昨日の 0:00 タイムスタンプを取得する MySQL の例

以下のように表示されます。昨日: UNIX_TIMESTAMP(CAST(SYSDATE() AS ...