目次
Docker コマンド一覧:コンテナ・イメージ・ビルドのチートシート
このページでは、日常よく使う Docker コマンドをまとめています。Docker 29 を基準にしています。各コマンドの詳しい説明と実際の出力は、各セクションのリンクをクリックして確認してください。最後のセクションでは、このチュートリアルの検証で見つかったよくある落とし穴をまとめています。
コンテナ
| コマンド | 説明 |
|---|---|
docker run -d --name web -p 8080:80 nginx:1.30 | コンテナをバックグラウンドで実行し、ポートを割り当てます |
docker run -it --rm ubuntu:26.04 bash | 対話形式で実行し、終了後に自動削除します |
docker ps | 実行中のコンテナを一覧表示します |
docker ps -a | すべてのコンテナを一覧表示します |
docker stop web | コンテナを停止します |
docker start web | 停止中のコンテナを起動します |
docker restart web | 再起動します |
docker rm web | 停止中のコンテナを削除します |
docker rm -f web | 実行中のコンテナを強制削除します |
docker logs -f web | コンテナのログを追跡します |
docker logs --tail 100 web | ログの末尾100行を表示します |
docker exec -it web sh | コンテナ内のシェルを起動します |
docker cp web:/path/file . | コンテナからホストにファイルをコピーします |
docker inspect web | コンテナの詳細情報を確認します |
docker stats | リソース使用量をリアルタイムで表示します |
docker top web | コンテナ内のプロセスを表示します |
docker port web | ポートの割り当てを確認します |
docker update --restart unless-stopped web | 再起動ポリシーを変更します |
docker run --init ... | 小型の init を PID 1 として使い、停止シグナルを正しく転送します |
詳しくはこちら:docker run のオプション、コンテナのライフサイクル、ログの確認とデバッグ
イメージ
| コマンド | 説明 |
|---|---|
docker images | ローカルのイメージを一覧表示します |
docker images --tree | マルチプラットフォームイメージに含まれるプラットフォームを表示します |
docker pull nginx:1.30 | イメージをダウンロードします |
docker tag myapp user/myapp:1.0 | 新しい名前/タグを付けます |
docker push user/myapp:1.0 | Registry にプッシュします |
docker rmi nginx:1.30 | イメージを削除します |
docker history nginx:1.30 | レイヤーを確認します |
docker buildx imagetools inspect nginx:1.30-alpine | リモートイメージが対応するプラットフォームを確認します |
docker save -o img.tar myapp | ファイルにエクスポートします |
docker load -i img.tar | ファイルからインポートします |
docker login / docker logout | Registry にログイン/ログアウトします |
詳しくはこちら:イメージ、Docker Hub へのプッシュ
ビルド
| コマンド | 説明 |
|---|---|
docker build -t myapp . | 現在のディレクトリにある Dockerfile を使ってビルドします |
docker build -f Dockerfile.prod -t myapp . | Dockerfile を指定します |
docker build --no-cache -t myapp . | キャッシュを使わずにビルドします |
docker build --pull -t myapp . | ベースイメージを再取得します |
docker build --target dev -t myapp:dev . | 指定したステージまでビルドします |
docker build --build-arg VERSION=1.2 . | ビルド引数を渡します(パスワードの受け渡しには使わないでください) |
docker build --secret id=token,env=TOKEN . | ビルド用のシークレットを渡します。イメージには残りません |
docker build --progress plain . | ビルド出力全体を表示します |
docker buildx build --platform linux/amd64,linux/arm64 -t user/app --push . | マルチプラットフォームでビルドしてプッシュします |
詳しくはこちら:Dockerfile 命令一覧、ビルドキャッシュと最適化、マルチステージビルド、マルチプラットフォームイメージ
Volume
| コマンド | 説明 |
|---|---|
docker volume create data | Volume を作成します |
docker volume ls | Volume を一覧表示します |
docker volume inspect data | 詳細情報を確認します |
docker volume rm data | Volume を削除します |
docker run -v data:/app/data myapp | 名前付き Volume をマウントします |
docker run -v "$(pwd):/app" myapp | 現在のディレクトリをマウントします |
詳しくはこちら:Volume とデータの永続化
ネットワーク
| コマンド | 説明 |
|---|---|
docker network create appnet | カスタムネットワークを作成します |
docker network ls | ネットワークを一覧表示します |
docker network inspect appnet | ネットワーク内のコンテナを確認します |
docker run --network appnet --name db postgres:18 | コンテナをネットワークに参加させます |
docker network connect appnet web | 実行中のコンテナをネットワークに参加させます |
docker network rm appnet | ネットワークを削除します |
詳しくはこちら:ネットワークとコンテナ間通信
Docker Compose
| コマンド | 説明 |
|---|---|
docker compose up -d | すべてのサービスをバックグラウンドで起動します |
docker compose up -d --build | 再ビルドしてから起動します |
docker compose up -d --wait | すべてのサービスが healthy になるまで待ってから戻ります |
docker compose up -d app | 特定のサービスだけを更新/再作成します |
docker compose down | コンテナとネットワークを停止して削除します |
docker compose down -v | Volume も一緒に削除します |
docker compose ps | サービスの状態を表示します |
docker compose logs -f app | サービスのログを追跡します |
docker compose exec app sh | サービスのコンテナ内でシェルを起動します |
docker compose run --rm app npm test | 一度だけ実行するコマンドを実行します |
docker compose pull | 最新のイメージをダウンロードします |
docker compose restart app | サービスを再起動します(変更した設定は適用されません) |
docker compose watch | ファイル変更時に自動で同期または再ビルドします(開発用) |
docker compose --profile tools up -d | profile 内のサービスもまとめて起動します |
docker compose config | 最終的な設定を検証します |
詳しくはこちら:Docker Compose 入門、docker compose コマンド
クリーンアップ
| コマンド | 説明 |
|---|---|
docker system df | ディスク使用量を確認します |
docker container prune | 停止中のコンテナを削除します |
docker image prune -a | 未使用のイメージを削除します |
docker builder prune | ビルドキャッシュを削除します |
docker builder prune --filter until=168h | 7日以上使われていないビルドキャッシュだけを削除します |
docker volume prune | 未使用の匿名 Volume を削除します |
docker volume prune -a | 未使用の Volume をすべて削除します。名前付きのデータベースデータも含まれます |
docker system prune | 一括クリーンアップします(Volume は対象外) |
docker system prune --volumes | 匿名 Volume も含めて一括クリーンアップします(Docker 23 以降、名前付き Volume は対象外) |
詳しくはこちら:ディスク領域のクリーンアップ
システム情報
| コマンド | 説明 |
|---|---|
docker version | クライアントとサーバーのバージョンを表示します |
docker info | Docker のシステム情報を表示します |
docker events | イベントをリアルタイムで表示します |
docker context ls | 接続可能な Docker 環境を一覧表示します |
よく使うオプションの早見表
| オプション | 意味 |
|---|---|
-d | バックグラウンドで実行 |
-it | 対話モード + ターミナル |
-p ホスト:コンテナ | ポートの割り当て |
-v ソース:コンテナパス | マウント |
-e KEY=VALUE | 環境変数 |
--name | コンテナ名 |
--rm | 終了後に自動削除 |
--network | ネットワークを指定 |
--restart | 再起動ポリシー |
-f | 強制(rm、rmi)または追跡(logs) |
よくある落とし穴(このチュートリアルで検証)
| 現象 | 原因と解決策 | 章 |
|---|---|---|
docker stop に10秒かかる | プログラムが PID 1 で、SIGTERM を処理していません。プログラム内で処理するか、--init を追加します | Node.js アプリケーション |
コンテナ名が web のとき 127.0.53.53 に接続される | .web はトップレベルドメインなので、名前が外部ドメインとして解決されます。別の名前に変更してください | docker run のオプション |
postgres:18 が起動直後に終了する | バージョン18では /var/lib/postgresql/data ではなく、/var/lib/postgresql をマウントする必要があります | PostgreSQL |
| データベースの準備ができていないのに healthy と報告される | pg_isready、mysqladmin ping に -h 127.0.0.1 を追加します | MySQL、PostgreSQL |
| Redis のパスワードが間違っていてもヘルスチェックに通る | redis-cli ping はエラー時も終了コードが0です。| grep -q PONG を追加します | Redis |
MYSQL_ROOT_PASSWORD を変更しても反映されない | パスワード変数は初回の初期化時だけ使われます | MySQL |
| 設定ファイルを変更しても、コンテナ内では古いまま | 単一ファイルをマウントしている場合、エディターで保存するとファイルが置き換わります。コンテナを再起動するか、ディレクトリをマウントしてください | Nginx |
--env-file の値に引用符が付く | docker run --env-file は引用符を取り除きませんが、Compose の env_file は取り除きます | 環境変数 |
rm で削除したシークレットがイメージに残る | 各レイヤーに内容が保持され、ARG、ENV も確認できます。--secret を使ってください | セキュリティのベストプラクティス |
exec format error | CPU アーキテクチャが異なります。--platform またはマルチプラットフォームビルドを使ってください | マルチプラットフォームイメージ |
よくある質問
コマンドが多くて覚えられない場合はどうすればよいですか?
まず run、ps、logs、exec、stop、rm、build、compose up/down を覚えましょう。ほかのコマンドは必要なときにこのページか docker コマンド --help で確認できます。
各コマンドの全オプションはどこで確認できますか?
よく使うコマンドの全オプションと例は、「コマンドリファレンス」カテゴリを参照してください。たとえば、[docker build](/ja/docker/docker-build/)、[docker ps](/ja/docker/docker-ps/) があります。
更新日 2026年10月14日