ホームページ 運用・保守 Docker Docker によって占有されているリソースをクリーンアップする方法

Docker によって占有されているリソースをクリーンアップする方法

Jan 29, 2021 am 11:37 AM
docker リソース

Docker によって占有されているリソースをクリーンアップする方法

前書き:

docker をよく使用する友人は、docker がリソースをすぐに占有することを知っています。最も明白で検出しやすいのは、ディスク領域の占有です。では、docker によって占有されているシステム リソースをクリーンアップするにはどうすればよいでしょうか?

(学習ビデオ共有: プログラミング入門)

方法は次のとおりです:

docker が占有しているリソースを表示します

リソースをクリーンアップしています その前に、docker がどのシステム リソースを占有しているかを把握する必要があります。これを実行するには、さまざまなコマンドを組み合わせる必要があります。
docker container ls: デフォルトでは、実行中のコンテナのみがリストされます。-a オプションを指定すると、停止したコンテナを含むすべてのコンテナがリストされます。
docker image ls: イメージ情報のリスト -a オプションは、中間イメージ (他のイメージが依存するレイヤー) をリストします。
docker volume ls: データ ボリュームを一覧表示します。
docker network ls: ネットワークをリストします。
docker info: コンテナーやイメージの数などのシステムレベルの情報を表示します。

これらのコマンドを通じて docker によって使用されているリソースを確認した後、docker によって占有されているリソースの一部をクリーンアップすることに決めたと思います。使用されていないリソースから始めましょう。

未使用のリソースのみを削除してください

Docker は、停止したコンテナー、未解決のイメージ、コンテナーによって参照されていないネットワーク、およびビルド プロセスのキャッシュを削除するための便利な docker system prune コマンドを提供します:

$ docker system prune
ログイン後にコピー

Docker によって占有されているリソースをクリーンアップする方法

セキュリティ上の理由から、このコマンドはデフォルトではどのコンテナからも参照されていないデータ ボリュームを削除しません。これらのデータ ボリュームを同時に削除する必要がある場合は、明示的に削除する必要があります。 --volumns パラメータを指定します。たとえば、次のコマンドを実行するとよいでしょう:

$ docker system prune --all --force --volumes
ログイン後にコピー

今回はデータ ボリュームが削除されるだけでなく、確認プロセスも行われません。 --all パラメータを使用すると、ぶら下がりイメージだけでなく、参照されていないイメージがすべて削除されることに注意してください。
ダングリング イメージとは何かをここで説明する必要がありますが、実際には、どのイメージからも参照されていないイメージとして単純に理解できます。たとえば、イメージを再構築した後、以前に構築された参照されなくなったイメージ レイヤーは、ぶら下がったイメージになります。

Docker によって占有されているリソースをクリーンアップする方法

ローカル イメージが更新されると、次のようなイメージになります。画像の赤枠内のが表示されます。これは、古いイメージが参照されなくなり、ぶら下がったイメージになることを意味します。 -a パラメーターを使用すると、別のタイプの ミラーも見つかり、そのリポジトリ列とタグ列の両方が として表示されます:

Docker によって占有されているリソースをクリーンアップする方法

# これらの画像中間イメージ (他のイメージが依存するレイヤー) と呼ばれます。

別のサブコマンドで prune を実行して、特定の種類のリソースを削除することもできます。

docker container prune # 删除所有退出状态的容器
docker volume prune # 删除未被使用的数据卷
docker image prune # 删除 dangling 或所有未被使用的镜像
ログイン後にコピー

Docker をインストール中の状態に戻す

ここでの「インストール中のステータス」とは、Docker の関連構成ではなく、リソースの使用状況を指します。これも比較的一般的なユースケースで、例えばバグ調査のため、ある日クリーンなDocker環境で本番環境を自動復元(本番環境のバックアップデータを使用)する必要がある。何をする必要があるのか​​見てみましょう?
前に紹介した docker system prune --all --force --volumns コマンドを思い出してください。このコマンドを実行する前にシステム内のすべてのコンテナが停止している場合、このコマンドはすべてのリソースを削除します。さて、システム内のすべてのコンテナを停止する方法を考えてみましょう。

docker container stop コマンドは 1 つ以上のコンテナを停止できます。必要なのは、システム内で実行中のすべてのコンテナを一覧表示することだけです。 docker は停止したコンテナを再度停止することを気にしないので、単純かつ失礼になって、すべてのコンテナ (停止したコンテナを含む) を直接リストしてみましょう。

$ docker container ls -a -q
ログイン後にコピー

Docker によって占有されているリソースをクリーンアップする方法

-a はすべてのコンテナを表示し、-q は数値のコンテナ ID のみを表示します。
次に、このコマンドの実行結果を docker コンテナ停止コマンドのパラメーターとして使用します。

$ docker container stop $(docker container ls -a -q)
ログイン後にコピー

docker 環境を復元するための完全なコマンドは次のとおりです。

$ docker container stop $(docker container ls -a -q) && docker system prune --all --force --volumns
ログイン後にコピー

前の prune コマンドと同様に、特定の種類のリソースを完全に削除することもできます。
コンテナの削除: docker container rm $(dockercontainer ls -a -q)
イメージの削除: docker image rm $(docker image ls -a -q)
データの削除 ボリューム: docker volume rm $(docker volume ls -q)
ネットワークの削除: docker network rm $(docker network ls -q)

シェル エイリアスの作成

上記のコマンドは完了できます。この作業は面倒ですが、シェルのエイリアス関数を使用すると、これらのコマンドの実行を簡素化できます。

alias docker-clean-unused='docker system prune --all --force --volumes'alias docker-clean-all='docker stop $(docker container ls -a -q) && docker system prune --all --force --volumes'
ログイン後にコピー

把上面的命令写入到用户的 ~/.bashrc 文件中就可以了!

Docker によって占有されているリソースをクリーンアップする方法

执行一次清理任务:

Docker によって占有されているリソースをクリーンアップする方法

总结

经常清理系统资源不仅能够让系统运行的更流畅,也利于我们把精力集中在相关的重点资源上面。所以建议大家能够使用相关的资源清理命令,让 docker 保持清爽和高效。

相关推荐:docker入门教程

以上がDocker によって占有されているリソースをクリーンアップする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

Dockerによってコンテナを出る方法 Dockerによってコンテナを出る方法 Apr 15, 2025 pm 12:15 PM

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)

Dockerを再起動する方法 Dockerを再起動する方法 Apr 15, 2025 pm 12:06 PM

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop< container_id>);コンテナを起動します(docker start< container_id>);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

Dockerのファイルを外部にコピーする方法 Dockerのファイルを外部にコピーする方法 Apr 15, 2025 pm 12:12 PM

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]< Container Path> <ホストパス>。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

Dockerコンテナの名前を確認する方法 Dockerコンテナの名前を確認する方法 Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Dockerデスクトップの使用方法 Dockerデスクトップの使用方法 Apr 15, 2025 am 11:45 AM

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

Dockerプロセスを表示する方法 Dockerプロセスを表示する方法 Apr 15, 2025 am 11:48 AM

Dockerプロセス表示方法:1。DockerCLIコマンド:Docker PS; 2。SystemDCLIコマンド:SystemCTL Status Docker; 3。CLIコマンドを作成するDocker:Docker-Compose PS。 4。プロセスエクスプローラー(Windows); 5。 /procディレクトリ(Linux)。

Docker画像が失敗した場合はどうすればよいですか Docker画像が失敗した場合はどうすればよいですか Apr 15, 2025 am 11:21 AM

障害のあるDocker画像ビルドのトラブルシューティング手順:DockerFileの構文と依存関係バージョンを確認します。ビルドコンテキストに必要なソースコードと依存関係が含まれているかどうかを確認します。エラーの詳細については、ビルドログを表示します。 -targetオプションを使用して、階層フェーズを構築して障害点を識別します。 Dockerエンジンの最新バージョンを使用してください。 -t [image-name]:デバッグモードで画像を作成して、問題をデバッグします。ディスクスペースを確認し、十分であることを確認してください。 Selinuxを無効にして、ビルドプロセスへの干渉を防ぎます。コミュニティプラットフォームに助けを求め、DockerFilesを提供し、より具体的な提案のためにログの説明を作成します。

See all articles