この記事の要点
• docker runでコンテナ実行、docker compose upで複数サービス管理
• docker exec -itでコンテナ内に入ってデバッグ
• docker system pruneで不要リソースを一括クリーンアップ
コンテナ操作
| コマンド | 説明 |
|---|---|
docker run <image> | コンテナを実行 |
docker run -it <image> | 対話モードで実行 |
docker run -d <image> | バックグラウンドで実行 |
docker run -p 8080:80 <image> | ポートをマッピング |
docker ps | 実行中のコンテナ一覧 |
docker ps -a | すべてのコンテナ一覧 |
docker stop <container> | コンテナを停止 |
docker start <container> | コンテナを開始 |
docker rm <container> | コンテナを削除 |
docker exec -it <container> sh | コンテナ内でシェル実行 |
ポイント: -d(デタッチ)でバックグラウンド実行、-it(対話モード)でコンテナ内操作。この2つのモードの使い分けが基本です。
イメージ操作
| コマンド | 説明 |
|---|---|
docker images | イメージ一覧 |
docker pull <image> | イメージをダウンロード |
docker build -t <name> . | イメージをビルド |
docker rmi <image> | イメージを削除 |
docker tag <image> <new-name> | イメージにタグ付け |
docker push <image> | イメージをレジストリにプッシュ |
ログ・情報確認
| コマンド | 説明 |
|---|---|
docker logs <container> | コンテナのログを表示 |
docker logs -f <container> | ログをリアルタイム表示 |
docker inspect <container> | コンテナの詳細情報 |
docker stats | リソース使用状況 |
実践メモ: docker build -t name .のドット(.)はビルドコンテキストのパス。.dockerignore で不要ファイルを除外するとビルドが高速化します。
Docker Compose
| コマンド | 説明 |
|---|---|
docker compose up | サービスを起動 |
docker compose up -d | バックグラウンドで起動 |
docker compose down | サービスを停止・削除 |
docker compose ps | サービス一覧 |
docker compose logs | ログを表示 |
docker compose build | イメージをビルド |
ポイント: docker compose up -dとdocker compose downのペアが開発の基本サイクル。down -vでボリュームも削除できます。
クリーンアップ
| コマンド | 説明 |
|---|---|
docker system prune | 未使用リソースを削除 |
docker container prune | 停止中のコンテナを削除 |
docker image prune | 未使用イメージを削除 |
docker volume prune | 未使用ボリュームを削除 |
注意: docker system pruneは停止中のコンテナ、未使用ネットワーク、ダングリングイメージを全て削除します。-aを付けると使用中でないイメージも消えるので慎重に。
実践的なワンライナー
| コマンド | 説明 |
|---|---|
docker stop $(docker ps -q) | 全コンテナを停止 |
docker rm $(docker ps -aq) | 全コンテナを削除 |
docker rmi $(docker images -q) | 全イメージを削除 |
docker logs --tail 100 -f <container> | 直近100行からログ追跡 |
docker exec -it <container> sh -c "env" | 環境変数を確認 |
注意: docker rm $(docker ps -aq)は全コンテナを削除します。本番環境では絶対に実行しないでください。
実践メモ: docker logs --tail 100 -fで直近100行からリアルタイム追跡。トラブルシューティングの第一歩はまずログ確認です。
トラブルシューティング
| 状況 | コマンド |
|---|---|
| コンテナが起動しない | docker logs <container> でエラー確認 |
| ポートが使用中 | lsof -i :<port> で確認後、プロセスを終了 |
| ディスク容量不足 | docker system df で使用量確認後 prune |
| ネットワーク接続できない | docker network inspect <network> で確認 |
参考リソース
- Docker CLI Reference - docker コマンド公式リファレンス
- Dockerfile Reference - Dockerfile 文法
- Docker Compose Specification - compose.yaml の仕様
- Docker Get Started Guide - 公式入門ガイド
関連記事
- Dockerコンテナの仕組み - 仮想マシンとの違いを理解
- コンテナオーケストレーション - 大規模運用の基礎
- マイクロサービス入門 - コンテナを活用したアーキテクチャ