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 つのルール

推薦する

VUE レンダリング機能の使い方と詳細な説明

目次序文レンダリングの役割レンダリング機能の説明レンダリングとテンプレートの違いレンダリング例要約す...

MySQL FAQ シリーズ: ibdata1 ファイルのサイズが突然増加しないようにする方法

0. はじめにibdata1 ファイルとは何ですか? ibdata1 は、innodb システム テ...

Vue は PDF.js を統合して PDF プレビューを実装し、透かしを追加する手順を実行します。

目次成果を達成する利用可能なプラグインの紹介ニーズに応じてプラグインを選択するプラグインのインストー...

ウェブページのカスタム選択ボックス選択

選択ドロップダウン リスト フォームは誰もがよく知っているかもしれませんが、デフォルトのドロップダウ...

Vue の proto ファイルの関数呼び出しのグラフィカルな説明

1. protoをコンパイルするすべての .proto ファイルを保存するために、src フォルダー...

JavaScript 基礎シリーズ: 関数とメソッド

目次1. 関数とメソッドの違い2. 良い関数の書き方2.1 正確な命名2.1.1 関数の命名2.1....

Linuxは、単一のIPをバインドするためにデュアルネットワークカードを実装するためにボンドを使用します。サンプルコード

ネットワークの高可用性を実現するには、複数のネットワーク カードを仮想ネットワーク カードにバインド...

rem をモバイル デバイスに適応させる方法の例

序文モバイル端末のREM適応ソリューションのレビューと概要remの使い方rem 単位の計算は、HTM...

CSSプリコンパイル言語とその違いの詳細な説明

1. 何ですか マークアップ言語として、CSSは比較的シンプルな構文とユーザーに対する要件が低いが、...

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

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

MySQLでバッチを更新するいくつかの方法

通常、フィールド値を更新するには次の SQL ステートメントを使用します。 mytable を更新し...

DIV、テーブル、XHTML のウェブサイト構築の違いの分析と説明

簡単に言えば、ウェブサイト構築とは、「この人はどんな外見をしているのか」と「この人はどんな内面を持っ...

Dockerコンテナ内で2つのプロセスを開始するときのDockerfile実装コード

最近、cronスケジュールタスク用のdockerを作りたいと思っており、Dockerfileで次のよ...

nginx を使用して静的リソース サーバーを構築する方法

Windows を例にとると、Linux も実際には同じです。静的リソースサーバーを構築するパソコン...

Linux 占有ポートの強制解放と Linux ファイアウォールのポート開放方法の詳しい説明

nginx、mysql、tomcat などのサービスをインストールするときに、使用する必要があるポー...