Docker 便利コマンド集

🛠 基本操作 (Daily Use)

日常的に最もよく使う確認・操作コマンドです。

実行中コンテナの見やすい一覧表示

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

コンテナのリアルタイムログ確認(最後の100行から表示)

docker logs -f --tail 100 [コンテナ名またはID]

実行中コンテナの中に入る (Bash)

Alpine Linuxベースのコンテナなどは bash が無い場合があるので、その時は /bin/sh を使います。
docker exec -it [コンテナ名またはID] /bin/bash

リソース使用状況の確認 (topコマンド風)

docker stats

⚠️ 抹殺コマンド (Reset All)

全てを無に帰す強力なコマンドです。開発環境のリセット時に有効ですが、必要なデータが含まれていないか十分に確認してください。

改善点: エラーハンドリングを少し追加し、最後に最強の掃除コマンド system prune -a --volumes を実行することで、残存データを徹底的に削除します。

Docker環境 完全リセット

echo "⏳ Stopping all containers..."
docker stop $(docker ps -aq) 2>/dev/null || true

echo "🗑️ Removing all containers..."
docker rm $(docker ps -aq) 2>/dev/null || true

echo "🧹 Removing all images..."
docker rmi $(docker images -q) 2>/dev/null || true

echo "🔌 Removing all networks..."
docker network rm $(docker network ls -q) 2>/dev/null || true

echo "💾 Removing all volumes..."
docker volume rm $(docker volume ls -q) 2>/dev/null || true

echo "🔥 Performing final system prune (deep clean)..."
docker system prune -a --volumes -f

echo "✨ Docker reset complete."

🏗 Docker Compose

最近は docker-compose (ハイフンあり) より docker compose (ハイフンなし) が主流です。

ビルドしてバックグラウンド起動

docker compose up -d --build

コンテナを停止し、ボリュームも削除(完全停止)

docker compose down -v

Composeで管理しているコンテナのログをまとめて見る

docker compose logs -f

🧹 お掃除 (Maintenance)

ディスク容量が圧迫されてきた時に使います。

使用していないリソースの一括削除(安全寄り)

停止中のコンテナ、タグの無い(dangling)イメージ、未使用ネットワークを削除します。ボリュームは保持されます。
docker system prune -f

未使用のボリュームも削除する

docker volume prune -f

📥 導入コマンド (CentOS / RHEL系)

Amazon Linux 2, CentOS 7/8, RHEL向けのインストール手順です。

改善点: サービスの自動起動設定(systemctl enable)を追加しました。reboot は必須ではないため、コメントアウトして代替案を記載しています。
# 旧バージョンの削除
sudo yum remove -y docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

# 必要なツールのインストール
sudo yum install -y yum-utils

# 公式リポジトリの追加
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

# Docker Engineのインストール
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Dockerの起動と自動起動設定
sudo systemctl start docker
sudo systemctl enable docker

# ユーザーをdockerグループに追加(sudoなしで実行できるようにする)
sudo groupadd docker 2>/dev/null || true
sudo usermod -aG docker $USER

# 設定を反映させる(以下のどちらかを実施)
# 1. 一時的に反映(現在のシェルのみ)
newgrp docker

# 2. 永続的に反映させる場合は、一度ログアウトして再ログインするか、再起動してください
# sudo reboot

🔍 調査・デバッグ (Inspection)

コンテナの詳細情報をJSONで確認

docker inspect [コンテナ名またはID]

コンテナのIPアドレスだけピンポイントで取得

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' [コンテナ名またはID]