Docker クリーニングの一般的な方法と問題点

Docker クリーニングの一般的な方法と問題点

大規模な開発に Docker を使用する場合でも、クリーンアップ戦略がなければ、ディスクがすぐにいっぱいになり、製品が人気ですぐに出荷しなければならないときに出荷できなくなります。

コンピューターでプロセスを実行すると、プロセスが完了するとすべてが破棄されます。コンテナは、現在多くの人が利用しているインフラストラクチャです。すべてがコンテナ内で実行され、コンテナごとに 1 つのプロセスを持つことを目指します。プロセスが完了すると、コンテナは終了します。しかし、それだけではきれいになりません。

Dockerが蓄積してきたもの

これらに注意する必要があります

  • コンテナを停止しました

  • ディスクボリューム

  • ネットワーク

十分なスペースがあればディスク容量についてはあまり気にする必要はないかもしれませんが、ネットワークも重要です。デフォルトでは、Docker はブリッジ ネットワークを使用しますが、ネットワークの制限は 31 個です。制限に達すると、次のメッセージが表示されます。

ネットワークに割り当てるためのデフォルトの中で、重複しない利用可能な IPv4 アドレス プールが見つかりませんでした。

これは、プロジェクトごとに 1 つのネットワークを作成する、docker-compose を頻繁に使用するユーザーの場合に発生する可能性があります。この問題は、カスタム--subnetサブネットを設定することで解決できます。次に例を示します。

docker ネットワーク作成 dada --subnet 192.167.11.0/24

いずれにせよ、この記事のポイントは掃除です。

dockerでクリーンアップする

停止したコンテナのクリーンアップ

docker rm -v $(docker ps --all --quiet --filter 'status=exited')

これにより、終了状態にあるすべてのコンテナが検索され、その ID が 1 行に 1 つずつ出力されるので、他のシェル コマンドに渡すことができます。

匿名ボリューム (明示的な名前のないボリューム) を削除するには、 docker rm -vを使用します。

ディスクボリュームのクリーンアップ

上記のコマンドを実行すると、このコンテナに関連付けられているボリュームが削除されます。ボリュームを手動で作成し、未使用のボリュームを削除する場合:

docker ボリューム rm $(docker ボリューム ls --quiet --filter 'dangling=true')

画像をクリーンアップする

通常は、すべての Docker イメージを削除しても安全です。必要なときにオンデマンドで入手できます。通常、イメージがクリーンアップされた後は、Docker デーモンがイメージを再度ダウンロードするのに時間がかかるため、ビルド時間が長くなります。

docker rm --force $(docker イメージ --quiet)

ここでは、コンテナがそのイメージを使用している場合でも、 --forceを使用してイメージを強制的に削除します。この画像は後で入手できます。

ネットワークのクリーンアップ

とても簡単です。任意のネットワークを削除でき、後で必要に応じて再作成されます。

docker ネットワーク rm $(docker ネットワーク ls --quiet)

docker-composeでクリーンアップする

docker-compose を使用してコンテナを起動する場合、特定の Compose ファイルに関連付けられたリソースを簡単にクリーンアップできます。

docker-compose ダウン --volumes --rmi all --remove-orphans

残念ながら、このコマンドは匿名ボリュームを削除しないので、匿名ボリュームに対処する必要があります。

1つのコマンドですべての問題を解決

Docker は一時的なものであり、いつでもイメージを再取得したり、開発用にデータベースを再作成したりすることができます。また、これが単なる継続的インテグレーション システムである場合は、すべてを削除することもできます。

docker システム プルーン --all --force --volumes

これで、Docker クリーンアップの一般的な方法と問題についての記事は終了です。Docker クリーンアップに関するその他のコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Docker ディスク領域クリーニングのソリューション
  • Docker クリーンアップ環境操作
  • Docker が占有するディスク領域をクリーンアップする方法
  • Docker プライベート サーバー イメージを定期的にクリーンアップする方法
  • Docker によって生成されたジャンクファイルをクリーンアップする方法
  • Dockerリソースを素早くクリーンアップする方法
  • Docker クリーンアップ コマンド コレクション
  • Dockerデータを完全にクリーンアップする方法

<<:  JavaScript の querySelector メソッドと getElementById メソッドの違いを分析する

>>:  効果的なウェブフォームのための 8 つのルール

推薦する

スタイルをより標準化するための CSS の書き方に関する 5 つのヒント

1. CSSをアルファベット順に並べるアルファベット順ではありません:コードをコピーコードは次のとお...

JS はデータ URL をどのように理解するのでしょうか?

目次概要データ URL の使用を開始するデータURL構文複数言語の文字列のBase64エンコードとデ...

Centos7 DockerでNginxファイルを変更するプロセスの詳細な説明

1. docker に nginx をインストールします。 docker に Nginx をインスト...

MySQLを5.7にアップグレードすると、WordPressはデータをインポートするときにエラー1067を報告します

最近MySQLを5.7にアップグレードしましたが、WordPressでデータのインポート時にエラーが...

CentOS7 のシステム サービスに Nginx を追加する方法

導入コンパイル、インストール、問題の解決後、Nginx は正常に動作していますが、現時点では Ngi...

Windows での MySQL 8.X インストール チュートリアル

以前は MySQL 5.7 を使用していましたが、MySQL にいくつか新しい機能が追加されたため、...

Tomcat9 のダウンロード、インストール、設定 + Eclipse への統合に関する詳細なチュートリアル

トムキャット公式サイトtomcatはローカルサーバーと同等であり、Webページを開くことができます設...

イラスト風ウェブサイトホームページデザイン ウェブサイトデザインの新トレンド

視覚効果が非常に美しく、訪問者に強い印象を残すことがわかります。さらに、重要なポイントが強調され、訴...

Docker ベースの Etcd 分散デプロイメントの方法と手順

1. 環境整備1.1 基本環境NTP設定: 省略 #時間の一貫性を確保するためにNTPサービスを設定...

CentOS 6 は Docker を使用して Redis マスター スレーブ データベース操作例を展開します

この記事では、Docker を使用して Centos6 に Redis マスター/スレーブ データベ...

Windows 7 64 ビットに最新バージョンの MySQL サーバーをインストールする方法のグラフィック チュートリアル

最近、MySQL データベースを勉強していて、設定ファイルを頻繁に変更したため、MySQL データベ...

ブラウザがクロージャをどのように認識するかについて詳しく説明します

目次序文クロージャの紹介メモリのゴミを識別する方法クロージャのメモリ表現結論序文クロージャは、Jav...

開発者にとって必須の Docker コマンドの概要

目次Docker入門Docker環境のインストールDockerイメージの共通コマンド検索ミラー画像を...

PIP で docker-compose をインストールする際のタイムアウト問題の解決方法

1: インストールコマンドpip install docker-compose例外情報socket....

MySQLインデックスの基礎となるデータ構造の詳細

目次1. インデックスの種類1. B+ツリー2. MyISAM と InnoDB の B+ ツリー ...