はじめに
docker・docker composeのコマンドを、使用頻度別にまとめました。
コンテナ操作・イメージ管理からデバッグ・クリーンアップまで、実務でよく詰まるポイントを中心に整理しています。
本記事の見方
- 🔥:ほぼ毎日使う。反射的に打てるようにしておきたい
- ⭐:頻度は高くないが、業務で詰まりがちなので覚えておくべき
- 📝:使う機会は少ないが、知っておくと引き出しが増える
Docker CLIには旧来のdocker-compose(ハイフン区切り・Python製)と、現行のdocker compose(サブコマンド・Docker CLI組み込み)があります。本記事は現行のdocker compose表記で統一していますが、コマンド体系はほぼ共通です。
Docker基本コマンド
イメージ操作
| 頻度 |
コマンド |
説明 |
例 |
| 🔥 |
docker images |
ローカルのイメージ一覧を表示 |
docker images |
| 🔥 |
docker pull |
レジストリからイメージを取得 |
docker pull nginx:latest |
| 🔥 |
docker build |
Dockerfileからイメージをビルド |
docker build -t myapp:1.0 . |
| ⭐ |
docker rmi |
イメージを削除 |
docker rmi myapp:1.0 |
| ⭐ |
docker tag |
イメージにタグを付与 |
docker tag myapp:1.0 myapp:latest |
| ⭐ |
docker push |
レジストリへイメージを送信 |
docker push myrepo/myapp:1.0 |
| ⭐ |
docker history |
イメージのレイヤー構成を確認 |
docker history myapp:1.0 |
| 📝 |
docker save / docker load
|
イメージをtarファイルに書き出し/読み込み |
docker save -o myapp.tar myapp:1.0 |
| 📝 |
docker inspect |
イメージ・コンテナの詳細情報をJSONで表示 |
docker inspect myapp:1.0 |
コンテナ操作
| 頻度 |
コマンド |
説明 |
例 |
| 🔥 |
docker run |
イメージからコンテナを作成・起動 |
docker run -d -p 8080:80 nginx |
| 🔥 |
docker ps |
稼働中のコンテナ一覧を表示 |
docker ps -a(停止中も含む) |
| 🔥 |
docker stop |
コンテナを停止 |
docker stop my_container |
| 🔥 |
docker start |
停止中のコンテナを起動 |
docker start my_container |
| 🔥 |
docker restart |
コンテナを再起動 |
docker restart my_container |
| 🔥 |
docker exec |
稼働中のコンテナ内でコマンドを実行 |
docker exec -it my_container bash |
| 🔥 |
docker logs |
コンテナのログを表示 |
docker logs -f my_container |
| 🔥 |
docker rm |
コンテナを削除 |
docker rm my_container |
| ⭐ |
docker cp |
コンテナとホスト間でファイルをコピー |
docker cp my_container:/app/log.txt ./ |
| ⭐ |
docker stats |
コンテナのリソース使用状況をリアルタイム表示 |
docker stats |
| ⭐ |
docker top |
コンテナ内のプロセス一覧を表示 |
docker top my_container |
| ⭐ |
docker kill |
コンテナを強制終了 |
docker kill my_container |
| ⭐ |
docker rename |
コンテナ名を変更 |
docker rename old_name new_name |
| 📝 |
docker pause / docker unpause
|
コンテナを一時停止/再開 |
docker pause my_container |
| 📝 |
docker diff |
コンテナ内でのファイル変更差分を表示 |
docker diff my_container |
| 📝 |
docker commit |
コンテナの現状態からイメージを作成 |
docker commit my_container myapp:debug |
docker run の主要オプション
| 頻度 |
オプション |
説明 |
| 🔥 |
-d, --detach
|
バックグラウンドで実行 |
| 🔥 |
-p host:container |
ポートをホストにマッピング |
| 🔥 |
-v host:container |
ボリューム(ディレクトリ)をマウント |
| 🔥 |
--name |
コンテナに名前を付与 |
| 🔥 |
-it |
対話的シェルとして起動(-i標準入力保持 + -t疑似端末割当) |
| ⭐ |
-e KEY=VALUE |
環境変数を設定 |
| ⭐ |
--rm |
コンテナ終了時に自動削除 |
| ⭐ |
--network |
接続するネットワークを指定 |
| ⭐ |
--restart |
再起動ポリシーを設定(always, on-failure等) |
| 📝 |
--env-file |
環境変数をファイルから読み込み |
| 📝 |
-w, --workdir
|
コンテナ内の作業ディレクトリを指定 |
docker run -d --name web -p 8080:80 -v $(pwd)/html:/usr/share/nginx/html --restart always nginx
docker exec -it web bash # 稼働中コンテナに入って調査
docker logs -f --tail 100 web # 直近100行から追跡してログ監視
ネットワーク
| 頻度 |
コマンド |
説明 |
例 |
| ⭐ |
docker network ls |
ネットワーク一覧を表示 |
docker network ls |
| ⭐ |
docker network create |
ネットワークを作成 |
docker network create mynet |
| ⭐ |
docker network inspect |
ネットワークの詳細を確認(接続中コンテナ等) |
docker network inspect mynet |
| 📝 |
docker network connect / disconnect
|
既存コンテナをネットワークに接続/切断 |
docker network connect mynet web |
ボリューム
| 頻度 |
コマンド |
説明 |
例 |
| ⭐ |
docker volume ls |
ボリューム一覧を表示 |
docker volume ls |
| ⭐ |
docker volume create |
ボリュームを作成 |
docker volume create mydata |
| ⭐ |
docker volume inspect |
ボリュームの詳細(実体のパス等)を確認 |
docker volume inspect mydata |
| 📝 |
docker volume rm |
ボリュームを削除 |
docker volume rm mydata |
| 📝 |
docker volume prune |
未使用ボリュームを一括削除 |
docker volume prune |
システム管理・クリーンアップ
| 頻度 |
コマンド |
説明 |
例 |
| 🔥 |
docker system prune |
未使用のコンテナ・イメージ・ネットワークをまとめて削除 |
docker system prune -a |
| ⭐ |
docker system df |
Dockerが使用しているディスク容量を確認 |
docker system df |
| ⭐ |
docker container prune |
停止中コンテナをまとめて削除 |
docker container prune |
| ⭐ |
docker image prune |
未使用イメージをまとめて削除 |
docker image prune -a |
| 📝 |
docker info |
Docker環境全体の情報を表示 |
docker info |
| 📝 |
docker version |
Dockerのバージョン情報を表示 |
docker version |
docker system prune -aは未使用のイメージも含めて全削除します。ローカルで作業中の未pushイメージが消えることもあるので、実行前にdocker imagesで確認する癖をつけましょう。
Docker Compose基本コマンド
ライフサイクル管理
| 頻度 |
コマンド |
説明 |
例 |
| 🔥 |
docker compose up |
compose.yamlに定義したサービスをまとめて起動 |
docker compose up -d |
| 🔥 |
docker compose down |
サービスを停止し、コンテナ・ネットワークを削除 |
docker compose down |
| 🔥 |
docker compose ps |
起動中サービスの一覧を表示 |
docker compose ps |
| 🔥 |
docker compose logs |
各サービスのログを表示 |
docker compose logs -f web |
| 🔥 |
docker compose build |
build定義に沿ってイメージをビルド |
docker compose build --no-cache |
| 🔥 |
docker compose exec |
稼働中サービスのコンテナ内でコマンド実行 |
docker compose exec web bash |
| ⭐ |
docker compose restart |
サービスを再起動 |
docker compose restart web |
| ⭐ |
docker compose stop / start
|
サービスの停止/起動(コンテナは残す) |
docker compose stop web |
| ⭐ |
docker compose run |
一時的にコンテナを起動してコマンド実行(ポート公開はされない) |
docker compose run --rm web npm test |
| ⭐ |
docker compose pull |
各サービスのイメージを取得 |
docker compose pull |
| 📝 |
docker compose pause / unpause
|
サービスを一時停止/再開 |
docker compose pause web |
| 📝 |
docker compose top |
各サービスのプロセスを表示 |
docker compose top |
| 📝 |
docker compose config |
設定ファイルの内容を検証・展開表示(変数展開後の確認に便利) |
docker compose config |
docker compose up の主要オプション
| 頻度 |
オプション |
説明 |
| 🔥 |
-d, --detach
|
バックグラウンドで実行 |
| 🔥 |
--build |
起動前にイメージを再ビルド |
| ⭐ |
--force-recreate |
設定変更がなくてもコンテナを再作成 |
| ⭐ |
--scale service=N |
指定サービスをN個起動(スケールアウト) |
| 📝 |
--no-deps |
依存サービス(depends_on)を起動しない |
docker compose down の主要オプション
| 頻度 |
オプション |
説明 |
| ⭐ |
-v, --volumes
|
関連するボリュームも削除 |
| ⭐ |
--rmi all |
関連するイメージも削除 |
| 📝 |
--remove-orphans |
compose.yamlに定義がなくなったサービスのコンテナも削除 |
docker compose up -d --build # ビルドしてバックグラウンド起動
docker compose logs -f --tail 50 api # apiサービスのログを直近50行から追跡
docker compose exec db psql -U admin # dbサービスのコンテナでpsqlを起動
docker compose down -v # コンテナ・ネットワーク・ボリュームをまるごと削除
compose.yaml の基本構造
services:
web:
build: . # ローカルのDockerfileからビルド
image: myapp:latest
ports:
- "8080:80" # ホスト:コンテナ
volumes:
- ./html:/usr/share/nginx/html
environment:
- APP_ENV=production
env_file:
- .env
depends_on:
- db
restart: always
db:
image: postgres:16
volumes:
- db_data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=example
volumes:
db_data:
| 頻度 |
主要キー |
説明 |
| 🔥 |
build |
Dockerfileの場所を指定してビルド |
| 🔥 |
image |
使用するイメージを指定 |
| 🔥 |
ports |
ポートマッピング |
| 🔥 |
volumes |
ボリューム・ディレクトリのマウント |
| 🔥 |
environment / env_file
|
環境変数の設定 |
| ⭐ |
depends_on |
サービス間の起動順序を制御 |
| ⭐ |
restart |
再起動ポリシー |
| ⭐ |
networks |
接続するネットワークを指定 |
| 📝 |
healthcheck |
コンテナのヘルスチェック方法を定義 |
| 📝 |
profiles |
特定条件でのみ起動するサービスを定義 |
よく使う組み合わせ・Tips
# 変更を反映しつつログも見たいとき
docker compose up --build
# 特定サービスだけ再ビルド&再起動
docker compose up -d --build web
# コンテナが落ちた原因を確認
docker compose ps -a
docker compose logs --tail 100 web
# 中身をクリーンにして作り直す
docker compose down -v --remove-orphans
docker compose up -d --build
まとめ
Dockerは🔥マークのrun・ps・exec・logsが使えれば大半の日常操作はカバーできます。Composeはup・down・logs・execの4つを軸に、困ったときはdocker compose configで設定の展開結果を確認する、という流れを覚えておくと詰まりにくくなります。
関連記事: Linuxコマンドチートシート / Linuxコマンド オプション徹底解説編 / nanoエディタ操作チートシート