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

推薦する

CSSとJSでロマンチックな流星群アニメーションを実現

1. レンダリング 2. ソースコードhtml < 本文 > < div クラス ...

MySQL プロセス制御 IF()、IFNULL()、NULLIF()、ISNULL() 関数

MySQL では、IF()、IFNULL()、NULLIF()、および ISNULL() 関数を使用...

ApacheのDjangoオンライン展開方法

環境: 1. Windows Server 2016 Datacenter 64 ビット 2. SQ...

JavaScript における URL オブジェクトの素晴らしい使い方

目次序文解析パラメータURLパラメータを変更する要約する序文URLオブジェクトはページ側ではあまり使...

Ubuntu 18.04 は mysql 5.7.23 をインストールします

以前、Ubuntu 16.04 に MySQL をスムーズにインストールしました。今回、Ubuntu...

HTML+CSS マージテーブル境界線サンプルコード

table タグと td タグに境界線を追加すると、デフォルトでは次のように二重境界線が使用されます...

MySQLサービスの自動停止の解決策

この記事では主に、MySQL サービスの自動停止の解決策を紹介し、参考と学習のために共有します。一緒...

js を使用して年カルーセル選択効果をネイティブに実装する例

序文js を使用して、年の回転選択効果を実現します。では早速、写真を見てみましょう。 1. アイデア...

Xftp のダウンロードとインストールのチュートリアル (グラフィック チュートリアル)

Windows と Linux 間でファイルを転送する場合は、Xftp ツールを使用できます。この...

MySQL マスタースレーブ同期メカニズムと同期遅延問題追跡プロセス

序文DBA として、仕事中に MySQL マスターとスレーブの同期遅延の問題に遭遇することがよくあり...

Docker ケース分析: Redis サービスの構築

目次1 マウントディレクトリとファイルを作成する2 Redisイメージを取得する3 コンテナを作成し...

Linuxディレクトリ構造の詳細な紹介

Linuxを学び始めるときは、まずLinuxの標準ディレクトリ構造を理解する必要があります。 / r...

JavaScript 配列の Reduce() メソッドの構文と例の分析

序文Reduce() メソッドは関数を累積器として受け取り、配列内の各値 (左から右へ) が単一の値...

MySQL トリガー構文とアプリケーション例

この記事では、例を使用して MySQL トリガーの構文とアプリケーションを説明します。ご参考までに、...

HTMLベースの複数画像アップロードのプレビュー機能を実装

最近、Web ページに複数の画像をアップロードするためのスクリプトを作成しました。これは非常に実用的...