Docker コマンドリファレンス
日常的に使用するDockerコマンドのクイックリファレンスです。
目次
コンテナ操作
基本操作
# コンテナ一覧(実行中)
docker ps
# コンテナ一覧(全て)
docker ps -a
# コンテナの作成と起動
docker run -d --name my-app -p 8080:8080 my-image:latest
# コンテナの停止
docker stop my-app
# コンテナの開始
docker start my-app
# コンテナの再起動
docker restart my-app
# コンテナの削除
docker rm my-app
# 強制削除(実行中でも)
docker rm -f my-app
docker run オプション
# 基本形
docker run [オプション] イメージ名 [コマンド]
# よく使うオプション
docker run -d \ # デタッチモード(バックグラウンド)
--name my-app \ # コンテナ名
-p 8080:8080 \ # ポートマッピング
-e SPRING_PROFILES_ACTIVE=docker \ # 環境変数
-v ./data:/app/data \ # ボリュームマウント
--network my-network \ # ネットワーク指定
--restart unless-stopped \ # 再起動ポリシー
--memory 2g \ # メモリ制限
--cpus 1.5 \ # CPU制限
my-image:latest
# インタラクティブモード(シェル接続)
docker run -it --rm alpine:latest /bin/sh
# 一時的なコンテナ(終了後自動削除)
docker run --rm my-image:latest
コンテナ内操作
# 実行中コンテナでコマンド実行
docker exec my-app ls -la
# コンテナ内でシェルを起動
docker exec -it my-app /bin/sh
docker exec -it my-app /bin/bash
# 環境変数を指定して実行
docker exec -e MY_VAR=value my-app printenv
# rootユーザーで実行
docker exec -u root my-app whoami
# 作業ディレクトリを指定
docker exec -w /app my-app pwd
コンテナ情報
# コンテナの詳細情報
docker inspect my-app
# 特定の情報を抽出(IPアドレス)
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-app
# コンテナのリソース使用状況
docker stats
docker stats my-app
# コンテナのプロセス一覧
docker top my-app
# コンテナの変更差分
docker diff my-app
イメージ操作
基本操作
# イメージ一覧
docker images
# イメージの取得
docker pull eclipse-temurin:21-jre-alpine
# イメージの削除
docker rmi my-image:latest
# 未使用イメージの削除
docker image prune
# 全未使用イメージの削除
docker image prune -a
イメージビルド
# 基本ビルド
docker build -t my-app:latest .
# Dockerfile指定
docker build -f Dockerfile.prod -t my-app:prod .
# ビルド引数
docker build --build-arg VERSION=1.0.0 -t my-app:1.0.0 .
# キャッシュなしでビルド
docker build --no-cache -t my-app:latest .
# 特定ステージまでビルド
docker build --target builder -t my-app:builder .
# マルチプラットフォームビルド
docker buildx build --platform linux/amd64,linux/arm64 -t my-app:latest .
イメージ管理
# イメージのタグ付け
docker tag my-app:latest ghcr.io/myorg/my-app:v1.0.0
# イメージのプッシュ
docker push ghcr.io/myorg/my-app:v1.0.0
# イメージの保存(tarファイル)
docker save -o my-app.tar my-app:latest
# イメージの読み込み
docker load -i my-app.tar
# イメージの履歴
docker history my-app:latest
# イメージの詳細
docker inspect my-app:latest
ボリューム操作
# ボリューム一覧
docker volume ls
# ボリューム作成
docker volume create my-data
# ボリューム詳細
docker volume inspect my-data
# ボリューム削除
docker volume rm my-data
# 未使用ボリューム削除
docker volume prune
# ボリュームをマウントして起動
docker run -v my-data:/app/data my-app:latest
# バインドマウント(ホストパス)
docker run -v $(pwd)/data:/app/data my-app:latest
# 読み取り専用マウント
docker run -v $(pwd)/config:/app/config:ro my-app:latest
ネットワーク操作
# ネットワーク一覧
docker network ls
# ネットワーク作成
docker network create my-network
# ブリッジネットワーク作成(サブネット指定)
docker network create --driver bridge --subnet 172.20.0.0/16 my-network
# ネットワーク詳細
docker network inspect my-network
# ネットワーク削除
docker network rm my-network
# コンテナをネットワークに接続
docker network connect my-network my-app
# コンテナをネットワークから切断
docker network disconnect my-network my-app
# ネットワークを指定して起動
docker run --network my-network my-app:latest
Docker Compose
基本操作
# 起動(バックグラウンド)
docker compose up -d
# 停止と削除
docker compose down
# ボリュームも削除
docker compose down -v
# ビルドして起動
docker compose up -d --build
# 特定サービスのみ起動
docker compose up -d db redis
# 状態確認
docker compose ps
# ログ確認
docker compose logs
docker compose logs -f my-app
docker compose logs --tail=100 my-app