目次

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.0Registry にプッシュします
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 logoutRegistry にログイン/ログアウトします

詳しくはこちら:イメージ、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 dataVolume を作成します
docker volume lsVolume を一覧表示します
docker volume inspect data詳細情報を確認します
docker volume rm dataVolume を削除します
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 -vVolume も一緒に削除します
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 -dprofile 内のサービスもまとめて起動します
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=168h7日以上使われていないビルドキャッシュだけを削除します
docker volume prune未使用の匿名 Volume を削除します
docker volume prune -a未使用の Volume をすべて削除します。名前付きのデータベースデータも含まれます
docker system prune一括クリーンアップします(Volume は対象外)
docker system prune --volumes匿名 Volume も含めて一括クリーンアップします(Docker 23 以降、名前付き Volume は対象外)

詳しくはこちら:ディスク領域のクリーンアップ

システム情報

コマンド説明
docker versionクライアントとサーバーのバージョンを表示します
docker infoDocker のシステム情報を表示します
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 errorCPU アーキテクチャが異なります。--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日