はじめに
Docker は、軽量で移植可能なコンテナ化ソリューションを提供することで、ソフトウェアのデプロイを革命的に変えました。開発者とシステム管理者にとって、Docker コンテナのインベントリを表示および管理する方法を理解することは不可欠です。このチュートリアルでは、さまざまなシナリオで Docker コンテナを効果的にリスト、検査、追跡するためのさまざまな方法について説明します。
Docker コンテナの概要
Docker コンテナとは?
Docker コンテナは、ソフトウェアを実行するために必要なコード、ランタイム、システムツール、ライブラリ、設定など、すべてを含んだ軽量で独立した実行可能パッケージです。コンテナは、さまざまなコンピューティングプラットフォーム間でアプリケーションの一貫性と再現性を確保します。
Docker コンテナの主な特徴
隔離性
コンテナは、アプリケーションをホストシステムおよび他のコンテナから隔離します。これにより、各アプリケーションは独自の環境で実行され、他のアプリケーションとの干渉を防ぎます。
graph TD
A[ホストオペレーティングシステム] --> B[コンテナ 1]
A --> C[コンテナ 2]
A --> D[コンテナ 3]
ポータビリティ
コンテナは、開発環境から本番環境まで、さまざまな環境で一貫して実行できます。「私のマシンでは動作する」という問題を軽減します。
効率性
コンテナは、従来の仮想マシンと比較してリソース効率が高く、ホストシステムのカーネルを共有し、オーバーヘッドが少なくなっています。
コンテナと仮想マシンの比較
| 機能 | Docker コンテナ | 仮想マシン |
|---|---|---|
| リソース使用量 | 軽量 | 重量 |
| 起動時間 | 数秒 | 数分 |
| 隔離レベル | プロセスレベル | フルシステム |
| パフォーマンス | 高い | 低い |
一般的なユースケース
- マイクロサービスアーキテクチャ
- CI/CD (継続的インテグレーション/継続的デリバリー)
- クラウドネイティブアプリケーション開発
- 開発およびテスト環境
基本的な 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 では、筋肉記憶と理解を構築するために、制御された環境でこれらのコマンドを実践することを推奨します。
実践的なシナリオ
- コンテナライフサイクルの監視
- コンテナデプロイメントのトラブルシューティング
- 複数のコンテナ環境の管理
- コンテナリソースの監査
コンテナ管理テクニック
コンテナライフサイクル管理
コンテナの起動
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 では、実践的なスキルを習得するために、制御されたシミュレーション環境でこれらのテクニックを実践することを推奨します。
最良のプラクティス
- 常にリソース制限を使用する
- 適切なコンテナ監視を実装する
- 定期的に使用されていないコンテナを削除する
- コンテナ設定にバージョン管理を使用する
- セキュリティスキャンを実装する
まとめ
Docker コンテナインベントリ管理をマスターすることは、堅牢かつ効率的なコンテナ化環境を維持するために不可欠です。Docker CLI コマンドと高度なフィルタリング技術を活用することで、実行中および停止済みのコンテナに関する包括的な情報を取得し、より良いリソース管理とシステム監視を実現できます。



