21
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Image(イメージ)操作

コマンド 説明 よく使うオプション
docker pull イメージをレジストリから取得 :tag(タグ指定)
docker push イメージをレジストリに送信 なし
docker images / docker image ls イメージ一覧を表示 -a(中間も含む), -q(IDのみ)
docker build Dockerfileからイメージをビルド -t(タグ), -f(Dockerfile指定), --no-cache
docker tag 既存イメージに別タグを付与 なし
docker rmi / docker image rm イメージを削除 -f(強制)
docker image prune 未使用イメージを一括削除 -a(タグなしも含めすべて)
docker history イメージのレイヤー履歴を表示 --no-trunc(省略しない)
docker save イメージをtarファイルに出力 -o [ファイル]
docker load tarファイルからイメージを読み込み -i [ファイル]
docker inspect イメージの詳細情報をJSON表示 なし

Container(コンテナ)操作

起動・停止・削除

コマンド 説明 よく使うオプション
docker run イメージから新規コンテナを作成して起動 -d, -it, --name, -p, -v, -e, --rm, --network, --restart
docker start 停止中のコンテナを起動 -a(アタッチ)
docker stop コンテナを停止(SIGTERM) -t [秒](タイムアウト)
docker restart コンテナを再起動 -t [秒]
docker kill コンテナを強制停止(SIGKILL) -s [シグナル]
docker pause / docker unpause プロセスを一時停止 / 再開 なし
docker rm コンテナを削除 -f(起動中も強制), -v(ボリュームも削除)
docker container prune 停止中コンテナを一括削除 なし

docker run の主要オプション

オプション 意味
-d デタッチモード(バックグラウンド実行)
-it -i(標準入力接続)+ -t(TTY割当)。シェル起動の定番
--name [名前] コンテナ名を指定
-p ホスト:コンテナ ポート公開(例: -p 8080:80
-v ホスト:コンテナ ボリュームマウント
-e KEY=VALUE 環境変数を設定
--env-file [ファイル] 環境変数をファイルから読み込み
--rm 終了時に自動削除
--network [名前] 接続先ネットワークを指定
--restart [policy] 再起動ポリシー(no / on-failure / always / unless-stopped
-w [パス] 作業ディレクトリを指定
-u [ユーザー] 実行ユーザーを指定

状態確認・操作

コマンド 説明 よく使うオプション
docker ps 起動中コンテナを一覧表示 -a(停止中も), -q(IDのみ), --filter
docker logs コンテナのログを表示 -f(追従), --tail [数], --since [時間]
docker exec 起動中コンテナでコマンド実行 -it(対話シェル), -u(ユーザー指定)
docker attach 起動中コンテナの標準入出力に接続 なし
docker top コンテナ内のプロセス一覧 なし
docker stats リソース使用量をリアルタイム表示 --no-stream(1回だけ)
docker inspect コンテナ詳細をJSON表示 --format(テンプレート)
docker cp ホスト⇔コンテナ間でファイルコピー なし
docker rename コンテナ名を変更 なし
docker commit コンテナの状態から新しいイメージを作成 -m [メッセージ], -a [作者]
docker diff コンテナのファイル変更を表示 なし
docker port 公開ポートを表示 なし

attachexec の使い分け: attach は既存プロセス(PID 1)に繋ぐので Ctrl+C でコンテナが落ちる。実務で使うのはほぼ exec です。


Network(ネットワーク)操作

コマンド 説明 よく使うオプション
docker network ls ネットワーク一覧を表示 なし
docker network create ネットワークを作成 --driver [bridge/overlay], --subnet
docker network rm ネットワークを削除 なし
docker network inspect ネットワーク詳細を表示 なし
docker network connect コンテナをネットワークに接続 --ip [IP]
docker network disconnect コンテナをネットワークから切断 -f(強制)
docker network prune 未使用ネットワークを一括削除 なし

注意点として、デフォルトの bridge ネットワークではコンテナ名による名前解決ができません。複数コンテナを連携させるなら、必ず docker network create でカスタムネットワークを作る必要があります(Composeなら自動でやってくれます)。

Volume(ボリューム)操作

コマンド 説明 よく使うオプション
docker volume ls ボリューム一覧を表示 なし
docker volume create ボリュームを作成 --driver
docker volume rm ボリュームを削除 -f(強制)
docker volume inspect ボリューム詳細を表示(保存先パスなど) なし
docker volume prune 未使用ボリュームを一括削除 -a(全て)

マウント方法の比較

種類 書き方 用途
named volume -v mydata:/path DB等のデータ永続化。Docker管理
bind mount -v $(pwd)/data:/path 開発時のソース同期。ホスト依存
tmpfs --tmpfs /path メモリ上の一時領域

Docker Compose

docker-compose(ハイフン版・v1)は非推奨です。docker compose(スペース版・v2)を使います。

コマンド 説明 よく使うオプション
docker compose up サービスを起動 -d(バックグラウンド), --build(再ビルド)
docker compose down サービス停止 + コンテナ削除 -v(ボリュームも削除), --rmi all(イメージも削除)
docker compose start / stop サービスの起動 / 停止のみ なし
docker compose restart サービスを再起動 なし
docker compose ps サービスの状態一覧 -a(停止中も)
docker compose logs サービスのログ表示 -f(追従), --tail [数]
docker compose exec 起動中サービスでコマンド実行 -it
docker compose run 使い捨てコンテナでコマンド実行 --rm
docker compose build サービスをビルド --no-cache, --pull
docker compose pull イメージを取得 なし
docker compose config compose.yamlを検証・整形表示 なし
docker compose top サービスのプロセス一覧 なし

システム管理・掃除

コマンド 説明 よく使うオプション
docker system df Dockerが使っているディスク容量を表示 -v(詳細)
docker system prune 停止コンテナ・ダングリングイメージ・未使用ネットワークを一括削除 -a(タグ付きイメージも), --volumes(ボリュームも)
docker system info Docker環境の情報を表示 なし
docker version Dockerのバージョンを表示 なし
docker login レジストリにログイン -u [ユーザー]
docker logout レジストリからログアウト なし
docker events リアルタイムでイベントを表示 --since, --until

docker system prune -a --volumes は強力ですが、本番環境ではDB用ボリュームまで吹き飛ばす危険があるので使用厳禁です。

ビルド(buildx / BuildKit)

Docker v23以降は BuildKit が標準ビルダーです。マルチプラットフォームビルドが必要な場合は buildx を使います。

コマンド 説明 よく使うオプション
docker buildx ls ビルダー一覧を表示 なし
docker buildx create 新しいビルダーを作成 --name, --use
docker buildx build マルチプラットフォーム対応ビルド --platform linux/amd64,linux/arm64, --push, --load
docker buildx du ビルドキャッシュの容量を表示 なし
docker buildx prune ビルドキャッシュを削除 -a(全て)
docker buildx imagetools inspect マルチアーキテクチャイメージの確認 なし

Apple Silicon (M1/M2) Macで本番Linux(x86_64)向けイメージを作る場合は --platform linux/amd64 の指定が必須です。

トラブルシューティング用コマンド

症状別に最初に叩くべきコマンドの早見表です。

症状 確認コマンド
コンテナが起動しない docker logs [name]
Exit Codeを知りたい docker inspect [name] --format '{{.State.ExitCode}}'
ポート衝突 docker ps でポート確認、ホスト側は lsof -i :8080
外部に繋がらない docker exec -it [name] shcurl / ping
イメージサイズが大きすぎる docker history [image]
ディスクが足りない docker system dfdocker system prune
ネットワーク疎通確認 docker network inspect [network]
環境変数の確認 docker inspect [name] --format '{{.Config.Env}}'

参考リンク

21
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
16

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?