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

推薦する

Dockerはbusyboxを使用してベースイメージを作成します

Docker イメージの最初の行は FROM alpine などのイメージで始まりますが、最初のベー...

要素のフォーム要素の使用の概要

フォーム要素はたくさんあります。簡単にまとめると、次のようになります。私のやり方では、主にテキスト ...

nginx で http でアクセスする Web サイトを https に変更する方法

目次1. 背景2. 前提条件https:証明書システム: 3. 操作プロセス3.1 証明書の生成3....

Vue 計算プロパティ実装トランスクリプト

この記事では、Vueの計算プロパティ実装レポートカードを参考に共有します。具体的な内容は次のとおりで...

VScode設定のリモートデバッグLinuxプログラムの問題を解決する

VScode リモートデバッグ Linux プログラムの問題について見てみましょう。具体的な内容は以...

HTML ページをスクロールするときに一部のコンテンツを固定位置に固定する方法

この記事では主に、レイアウトに役立つ、HTML ページ内の一部のコンテンツを固定してスクロール時にス...

フレームセットの共通プロパティ(フレームとウィンドウの分割)

フレームとは、Web ページ画面を複数のフレームに分割したもの(複数の Web ページという形で表示...

nginx共有メモリの仕組みの詳細な説明

Nginx の共有メモリは、高いパフォーマンスを実現できる主な理由の 1 つであり、主にファイル キ...

mysql init_connect に関するいくつかの重要なポイントの要約

init_connectの役割init_connect は通常、接続が来たときに、自動コミットを 0...

私の CSS フレームワーク - base.css (ブラウザのデフォルト スタイルをリセット)

コードをコピーコードは次のとおりです。 @文字セット "utf-8"; /* @...

CSS3 を使用して中心点の周りに要素を配置する方法の例

この記事では、CSS3 を使用して中心点を中心に要素をレイアウトする方法の例を紹介します。詳細は次の...

MySQLインスタンスクラッシュ事例の詳細な分析

[問題の説明]私たちの実稼働環境には、複数の MySQL サーバー (MySQL 5.6.21) の...

Ubuntu 18でターミナルを美しいコマンドラインプロンプトに変更する方法

VMware と Ubuntu を再インストールしましたが、コマンドラインプロンプトが単調すぎて美し...

Nginx のアクセス制御とパラメータ調整方法

Nginx グローバル変数Nginx には、$variable 名を通じて使用できるグローバル変数が...

nginxのアップストリーム設定と機能の詳細な説明

設定例 アップストリームバックエンド{ サーバー backend1.example.com 重み=5...