Docker コンテナ一覧表示方法

DockerBeginner
オンラインで実践に進む

はじめに

Docker は、軽量で移植可能なコンテナ化ソリューションを提供することで、ソフトウェアのデプロイを革命的に変えました。開発者とシステム管理者にとって、Docker コンテナのインベントリを表示および管理する方法を理解することは不可欠です。このチュートリアルでは、さまざまなシナリオで Docker コンテナを効果的にリスト、検査、追跡するためのさまざまな方法について説明します。

Docker コンテナの概要

Docker コンテナとは?

Docker コンテナは、ソフトウェアを実行するために必要なコード、ランタイム、システムツール、ライブラリ、設定など、すべてを含んだ軽量で独立した実行可能パッケージです。コンテナは、さまざまなコンピューティングプラットフォーム間でアプリケーションの一貫性と再現性を確保します。

Docker コンテナの主な特徴

隔離性

コンテナは、アプリケーションをホストシステムおよび他のコンテナから隔離します。これにより、各アプリケーションは独自の環境で実行され、他のアプリケーションとの干渉を防ぎます。

graph TD A[ホストオペレーティングシステム] --> B[コンテナ 1] A --> C[コンテナ 2] A --> D[コンテナ 3]

ポータビリティ

コンテナは、開発環境から本番環境まで、さまざまな環境で一貫して実行できます。「私のマシンでは動作する」という問題を軽減します。

効率性

コンテナは、従来の仮想マシンと比較してリソース効率が高く、ホストシステムのカーネルを共有し、オーバーヘッドが少なくなっています。

コンテナと仮想マシンの比較

機能 Docker コンテナ 仮想マシン
リソース使用量 軽量 重量
起動時間 数秒 数分
隔離レベル プロセスレベル フルシステム
パフォーマンス 高い 低い

一般的なユースケース

  1. マイクロサービスアーキテクチャ
  2. CI/CD (継続的インテグレーション/継続的デリバリー)
  3. クラウドネイティブアプリケーション開発
  4. 開発およびテスト環境

基本的な Docker コンテナのワークフロー

graph LR A[Docker イメージ] --> B[コンテナの作成] B --> C[コンテナの起動] C --> D[アプリケーションの実行] D --> E[コンテナの停止] E --> F[コンテナの削除]

LabEx を開始する

Docker コンテナに関する実践的な学習と経験のために、LabEx は、開発者がコンテナ技術を習得するのに役立つインタラクティブな環境と包括的なチュートリアルを提供しています。

コンテナインベントリの表示

基本的な Docker コンテナ一覧コマンド

実行中のコンテナ一覧

現在実行中のコンテナを表示するには、docker ps コマンドを使用します。

docker ps

すべてのコンテナ一覧 (停止済みを含む)

停止済みを含むすべてのコンテナを表示するには:

docker ps -a

高度なコンテナ一覧表示テクニック

コンテナのフィルタリング

Docker は、特定のコンテナを表示するための強力なフィルタリングオプションを提供します。

## ステータスでフィルタリング
docker ps -f "status=running"

## イメージでフィルタリング
docker ps -f "ancestor=ubuntu:latest"

カスタマイズされた出力フォーマット

特定の列でコンテナ一覧表示をカスタマイズします。

docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}"

コンテナインベントリ可視化

graph TD A[Docker コマンド] --> B{一覧の種類} B --> |実行中のコンテナ| C[docker ps] B --> |すべてのコンテナ| D[docker ps -a] B --> |フィルタリングされたコンテナ| E[docker ps -f]

詳細なコンテナ情報

特定のコンテナの検査

特定のコンテナの詳細情報を取得します。

docker inspect [CONTAINER_ID]

コンテナインベントリの属性

属性 説明
コンテナ ID ユニークなコンテナ識別子 a1b2c3d4e5f6
イメージ 使用されたベースイメージ ubuntu:latest
コマンド 実行中のコマンド /bin/bash
作成日時 コンテナ作成日時 2 時間前
ステータス 現在のコンテナステータス 45 分稼働中
ポート 公開されたポート 80/tcp
名前 コンテナ名 friendly_newton

LabEx Pro のヒント

Docker コンテナインベントリを使用する際は、LabEx では、筋肉記憶と理解を構築するために、制御された環境でこれらのコマンドを実践することを推奨します。

実践的なシナリオ

  1. コンテナライフサイクルの監視
  2. コンテナデプロイメントのトラブルシューティング
  3. 複数のコンテナ環境の管理
  4. コンテナリソースの監査

コンテナ管理テクニック

コンテナライフサイクル管理

コンテナの起動

docker start コマンドを使用してコンテナを起動します。

docker start [CONTAINER_ID]

コンテナの停止

実行中のコンテナを正常に停止します。

docker stop [CONTAINER_ID]

コンテナの再起動

単一の命令でコンテナを再起動します。

docker restart [CONTAINER_ID]

コンテナライフサイクルワークフロー

graph TD A[コンテナの作成] --> B[コンテナの起動] B --> C{コンテナの状態} C --> |実行中| D[コマンドの実行] C --> |停止済み| E[再起動/削除] D --> F[コンテナの停止] F --> G[コンテナの削除]

高度なコンテナ管理

対話型コンテナの実行

コンテナ内で対話型のシェルを起動します。

docker run -it ubuntu:latest /bin/bash

実行中のコンテナでのコマンド実行

アクティブなコンテナでコマンドを実行します。

docker exec [CONTAINER_ID] command

コンテナリソース管理

コンテナリソースの制限

CPU とメモリの使用量を制御します。

docker run --cpus=2 --memory=1g ubuntu:latest

リソース使用量の監視

コンテナのパフォーマンスを追跡します。

docker stats [CONTAINER_ID]

コンテナ管理テクニック

テクニック コマンド 説明
作成 docker create コンテナの準備 (起動なし)
実行 docker run コンテナの作成と起動
停止 docker stop コンテナの正常な停止
削除 docker rm コンテナの削除
一時停止 docker pause コンテナの一時的な停止

コンテナのネットワーク

ポートマッピング

コンテナポートをホストに公開します。

docker run -p 8080:80 nginx:latest

カスタムネットワークの作成

隔離されたコンテナネットワークを作成します。

docker network create mynetwork
docker run --network=mynetwork nginx:latest

コンテナのバックアップと移行

コンテナのスナップショットの作成

実行中のコンテナからイメージを生成します。

docker commit [CONTAINER_ID] myimage:backup

コンテナのエクスポート

移行のためにコンテナの状態を保存します。

docker export [CONTAINER_ID] > container.tar

LabEx の推奨事項

包括的な Docker コンテナ管理のために、LabEx では、実践的なスキルを習得するために、制御されたシミュレーション環境でこれらのテクニックを実践することを推奨します。

最良のプラクティス

  1. 常にリソース制限を使用する
  2. 適切なコンテナ監視を実装する
  3. 定期的に使用されていないコンテナを削除する
  4. コンテナ設定にバージョン管理を使用する
  5. セキュリティスキャンを実装する

まとめ

Docker コンテナインベントリ管理をマスターすることは、堅牢かつ効率的なコンテナ化環境を維持するために不可欠です。Docker CLI コマンドと高度なフィルタリング技術を活用することで、実行中および停止済みのコンテナに関する包括的な情報を取得し、より良いリソース管理とシステム監視を実現できます。