はじめに
Docker はアプリケーションをコンテナ化するための一般的なツールとなり、ソフトウェアの開発、デプロイ、管理を容易にしています。このチュートリアルでは、Docker 環境を管理するための基本的なタスクである Docker コンテナのリスト表示方法を解説します。
Docker コンテナの理解
Docker は、開発者がコンテナと呼ばれる一貫した隔離された環境でアプリケーションを構築、デプロイ、実行できるようにする、人気のオープンソースプラットフォームです。コンテナは軽量で移植性があり、自己完結型のユニットであり、アプリケーションのコード、依存関係、ランタイムを単一のパッケージにまとめます。
Docker コンテナとは?
Docker コンテナは、アプリケーションとそのすべての依存関係を単一の標準化されたユニットにパッケージ化し、さまざまなコンピューティング環境で一貫してデプロイおよび実行できるようにするものです。各コンテナには、アプリケーション、すべての依存関係、軽量なオペレーティングシステムが含まれており、基盤となるインフラストラクチャに関係なく、アプリケーションが常に同じように動作することを保証します。
Docker コンテナの利点
- 一貫性: コンテナは、基盤となるインフラストラクチャに関係なく、アプリケーションが同じように動作することを保証し、「私のマシンでは動作する」という問題を解消します。
- スケーラビリティ: コンテナは、変化する需要に対応するために簡単にスケールアップまたはスケールダウンでき、アプリケーションの管理とデプロイを容易にします。
- 効率性: コンテナは、ホストオペレーティングシステムのカーネルを共有するため、従来の仮想マシンよりも軽量で効率的です。リソース使用量と起動時間を削減します。
- 移植性: コンテナは、開発者のラップトップから本番サーバーまで、さまざまな環境間で簡単に移動およびデプロイできます。複雑な構成変更の必要はありません。
Docker アーキテクチャ
Docker はクライアント - サーバーアーキテクチャを使用しており、Docker クライアントは Docker デーモンと通信します。Docker デーモンは、Docker コンテナの構築、実行、管理を担当します。Docker デーモンはホストマシン上で実行され、Docker クライアントは同じマシンまたはリモートマシン上で実行できます。
graph TD
A[Docker クライアント] -- 通信 --> B[Docker デーモン]
B -- 管理 --> C[Docker コンテナ]
B -- 管理 --> D[Docker イメージ]
B -- 管理 --> E[Docker ボリューム]
B -- 管理 --> F[Docker ネットワーク]
Docker イメージとコンテナ
Docker イメージは、Docker コンテナを作成するための設計図です。アプリケーションの実行に必要なアプリケーションコード、依存関係、構成が含まれています。Docker イメージを実行すると、イメージの実行インスタンスである Docker コンテナが作成されます。
graph LR
A[Docker イメージ] -- 作成 --> B[Docker コンテナ]
B -- 実行 --> C[アプリケーション]
Docker コンテナの基本的な概念を理解することで、Docker コンテナのリスト表示と管理方法を学ぶことができます。
Docker コンテナのリスト表示
Docker 環境の管理と監視において、Docker コンテナのリスト表示は基本的なタスクです。docker ps コマンドは、実行中のコンテナに関する情報をリスト表示および確認するための主要な方法です。
実行中のコンテナのリスト表示
現在実行中のすべての Docker コンテナをリスト表示するには、以下のコマンドを使用します。
docker ps
これにより、以下の情報を含むテーブルが表示されます。
- コンテナ ID
- イメージ
- コマンド
- 作成日時
- 状態
- ポート
- 名前
実行していないコンテナも含めてすべてのコンテナをリスト表示するには、-a または --all フラグを追加します。
docker ps -a
コンテナリストのカスタマイズ
--format フラグを使用して、コンテナリストに表示される情報をカスタマイズできます。たとえば、コンテナ ID、イメージ、状態を表示するには、以下のコマンドを使用します。
docker ps --format "{{.ID}} {{.Image}} {{.Status}}"
これにより、指定されたカラムを含むテーブルが出力されます。
| コンテナ ID | イメージ | 状態 |
|---|---|---|
| 1234567890ab | ubuntu:latest | 5 分間稼働中 |
| 0987654321cd | nginx:latest | 終了 (0) 10 分前 |
また、--filter または -f などのさまざまなオプションを使用して、コンテナリストをフィルタリングすることもできます。たとえば、特定の名前を持つコンテナのみをリスト表示するには、以下のコマンドを使用します。
docker ps -a --filter "name=my-container"
停止したコンテナのリスト表示
停止したコンテナのみをリスト表示するには、以下のコマンドを使用します。
docker ps --filter "status=exited"
これにより、終了または停止したすべてのコンテナのリストが表示されます。
Docker コンテナのリスト表示方法を理解することで、Docker 環境を効果的に管理および監視できます。次のセクションでは、Docker コンテナの詳細な情報を取得するための高度なリスト表示オプションについて説明します。
高度なリスト表示オプションの探索
基本的な docker ps コマンドは実行中のコンテナに関する豊富な情報を提供しますが、Docker は、より深く掘り下げて Docker 環境に関するより多くの洞察を得るためのいくつかの高度なオプションを提供しています。
状態別のコンテナのリスト表示
実行中のコンテナのリスト表示に加えて、コンテナの状態別にリスト表示することもできます。たとえば、現在終了または停止しているすべてのコンテナをリスト表示するには、次のコマンドを使用します。
docker ps -a --filter "status=exited"
また、「created」、「restarting」、「paused」などの他の状態別にコンテナをリスト表示することもできます。
ラベル別のコンテナのリスト表示
Docker では、コンテナにラベルを付けることができます。これは、コンテナの整理やフィルタリングに役立ちます。特定のラベルでコンテナをリスト表示するには、--filter オプションを使用します。
docker ps --filter "label=my-label=value"
これにより、「my-label」というラベルで値が「value」であるすべてのコンテナがリスト表示されます。
リソース使用量別のコンテナのリスト表示
コンテナのリソース使用量に関する情報を取得するには、docker stats コマンドを使用できます。このコマンドは、実行中の各コンテナの CPU、メモリ、ネットワーク、およびブロック I/O 使用量に関するリアルタイム統計を表示します。
docker stats
docker stats の出力も、コンテナ名やラベルなど、docker ps と同じ手法でフィルタリングできます。
JSON 形式でのコンテナのリスト表示
docker ps の出力をプログラムで処理する必要がある場合は、--format オプションを使用して、コンテナ情報を JSON 形式で出力できます。これは、Docker コンテナの管理を独自のスクリプトまたはアプリケーションに統合する場合に役立ちます。
docker ps --format '{{json .}}'
これらの高度なリスト表示オプションを探索することで、Docker コンテナをより深く理解し、Docker 環境を効果的に管理できます。
まとめ
このチュートリアルを終了すると、Docker コンテナのリスト表示方法、および高度なリスト表示オプションの使用方法について十分に理解しているはずです。この知識は、Docker ベースのアプリケーションとインフラストラクチャを効果的に管理する能力を強化します。



