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

推薦する

mysql8.0 でユーザーを作成して権限を付与する際のエラーの解決方法の詳細な説明

質問1:エラーを報告する書き込み方法: GRANT OPTION を使用して、'123123...

Ansibleを使用してTomcatをバッチでデプロイする方法

1.1 ディレクトリ構造の構築この操作は、nginx+mysql+tomcat+dbのディレクトリ構...

Word のコンテンツを Web サイトのエディターに直接コピーすることはお勧めしません。

<br />質問: Word のコンテンツを Web サイトのエディターに直接コピーする...

コンパイル/サーバーなしでブラウザにCommonJSモジュールを実装する

目次導入1. one-click.jsとは2. パッケージングツールはどのように機能しますか? 3....

SSL で Nginx リバース プロキシを構成する簡単な手順

序文リバース プロキシは、Web 経由で行われたリクエスト (http と https の両方) を...

webpack-dev-server のコア概念とケースの詳細な説明

webpack-dev-server コアコンセプトWebpack の ContentBase と ...

HTMLを使用してシンプルなメールテンプレートを作成する

今日は、「ローテク」の問題について書きたいと思います。ちなみに、私は JavaScript Week...

ページ要素の絶対位置と相対位置に関するある程度の理解

今日から、定期的にちょっとした豆知識を整理していきます。簡単なものもあるかもしれませんが、どれも役に...

Nginx を使用して rtmp ライブ サーバーを実行する方法

今回は、コンピューターや携帯電話用の rtmp ライブ ブロードキャスト サーバーを設定し、ライブ ...

Vue プロジェクトにインターフェース リスニング マスクを追加する方法

1. 事業背景マスク レイヤーを使用してユーザーの異常な操作を遮断する方法は、フロントエンドでよく使...

VueはTodoListの例をカプセル化し、ブラウザのローカルキャッシュのアプリケーションを実装します。

この記事では主に、Vue で TodoList をカプセル化するケースと、ブラウザのローカル キャッ...

docker-compose を使用して Clickhouse をすばやくデプロイする方法のチュートリアル

ClickHouse は、オープンソースの列指向 DBMS (Yandex によって開発) です。 ...

コード標準では、SQL ステートメントに結合が多すぎないようにする必要があるのはなぜですか?

無料ポイントインタビュアー:Linuxを使ったことはありますか?私:はいインタビュアー:メモリ使用量...

入力が完了したことを検出し、次のコンテンツを自動的に入力する HTML を実装する方法

前回の記事では、入力完了の簡単な検出を実現しましたが、今回はさらに一歩進んで、入力が完了した後に次の...

Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。

序文Dockerを使ってHadoopクラスタを起動するたびに、ネットワークカードの再バインド、IPの...