dockerコマンド チートシート

cheatsheet

イメージ操作 (Image Management) ✨

Dockerイメージの検索、取得、管理、ビルド、共有などを行います。

ローカルに存在するDockerイメージの一覧を表示します。

docker images [OPTIONS] [REPOSITORY[:TAG]]
オプション 説明
-a, --all すべての中間イメージを含むイメージを表示します。 docker images -a
-q, --quiet イメージIDのみを表示します。 docker images -q
--digests イメージのダイジェストを表示します。 docker images --digests
--filter, -f 指定した条件に基づいてイメージをフィルタリングします (例: dangling=true, label=key=value, before=image:tag, since=image:tag)。 docker images --filter "dangling=true"
--format Goテンプレートを使用して出力形式をカスタマイズします。 docker images --format "{{.ID}}: {{.Repository}}"

レジストリ(デフォルトはDocker Hub)からDockerイメージを取得します。

docker pull [OPTIONS] NAME[:TAG|@DIGEST]
オプション 説明
-a, --all-tags リポジトリ内のすべてのタグ付きイメージを取得します。 docker pull -a ubuntu
--disable-content-trust イメージの署名検証を無効にします(デフォルトは有効)。 docker pull --disable-content-trust myimage:latest
--platform サーバーがマルチプラットフォーム対応の場合、特定のプラットフォームのイメージを取得します(例: linux/amd64, linux/arm64)。 docker pull --platform linux/arm64 nginx
-q, --quiet 進捗情報を抑制し、静かに出力します。 docker pull -q alpine

タグを指定しない場合、デフォルトで:latestタグが使用されます。

ローカルから1つまたは複数のイメージを削除します。

docker rmi [OPTIONS] IMAGE [IMAGE...]
オプション 説明
-f, --force コンテナが使用中のイメージでも強制的に削除します。⚠️ 注意して使用してください。 docker rmi -f myimage:latest
--no-prune タグ付けされていない親イメージを削除しません。 docker rmi --no-prune image-id

イメージを削除する前に、そのイメージを使用しているコンテナを停止・削除する必要があります(-fオプションを使わない場合)。

未使用のイメージ(danglingイメージ)を一括削除するには docker image prune を使用します。

docker image prune [OPTIONS]

-aオプションを付けると、コンテナで使用されていない全てのイメージを削除します。

docker image prune -a

Dockerfileとコンテキスト(通常はDockerfileが含まれるディレクトリ)からDockerイメージをビルドします。

docker build [OPTIONS] PATH | URL | -
オプション 説明
-t, --tag 作成するイメージに名前とタグを付けます (name:tag形式)。複数指定可能。 docker build -t myapp:1.0 .
-f, --file 使用するDockerfileのパスを指定します(デフォルトはコンテキストルートのDockerfile)。 docker build -f Dockerfile.dev -t myapp:dev .
--build-arg ビルド時にDockerfile内で使用できる変数を設定します (VARNAME=value形式)。 docker build --build-arg USER=admin -t myapp .
--no-cache ビルド時にキャッシュを使用しません。 docker build --no-cache -t myapp .
--platform ターゲットプラットフォームを指定してビルドします。Buildxが必要な場合があります。 docker build --platform linux/amd64 -t myapp-amd64 .
--progress プログレス出力のタイプを設定します (auto, plain, tty)。plainはCI環境で役立ちます。 docker build --progress=plain -t myapp .
--secret ビルド中に使用するシークレットファイルをマウントします (例: id=mysecret,src=/path/to/secret)。Buildx (BuildKit) が必要です。 docker build --secret id=mysecret,src=mysecret.txt -t myapp .
--ssh ビルド中にSSHエージェントソケットやキーをマウントします (例: default or id=mykey,src=/path/to/key)。Buildx (BuildKit) が必要です。 docker build --ssh default -t myapp .

コンテキスト(PATH)はビルドに必要なファイルが含まれるディレクトリです。通常はカレントディレクトリ(.)を指定します。

既存のイメージに新しい名前(タグ)を付けます。イメージの実体はコピーされません。

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

例:

# ローカルの myapp:latest イメージに myregistry.com/myuser/myapp:v1 というタグを付ける
docker tag myapp:latest myregistry.com/myuser/myapp:v1

主にイメージをレジストリにプッシュする前に、リポジトリ名を含むタグを付けるために使用されます。

ローカルのイメージをリモートレジストリ(Docker Hubやプライベートレジストリなど)にアップロード(プッシュ)します。

docker push [OPTIONS] NAME[:TAG]
オプション 説明
-a, --all-tags 指定したリポジトリのすべてのタグをプッシュします。 docker push -a myregistry.com/myuser/myapp
--disable-content-trust イメージの署名をスキップします(デフォルトは有効)。 docker push --disable-content-trust myimage:latest

プッシュする前に、docker login コマンドでレジストリにログインしておく必要があります。また、イメージ名には通常、レジストリのホスト名(Docker Hubの場合はユーザー名)を含める必要があります(例: username/repository:tag)。

イメージに関する詳細な情報(レイヤー、環境変数、設定など)をJSON形式で表示します。

docker inspect [OPTIONS] IMAGE [IMAGE...]

例:

docker inspect nginx:latest

--formatオプションで特定の情報だけを抽出できます。

# イメージのアーキテクチャを表示
docker inspect --format='{{.Architecture}}' nginx

イメージがどのように構築されたか、各レイヤーの履歴を表示します。

docker history [OPTIONS] IMAGE
オプション 説明
-H, --human サイズと日付を人間が読みやすい形式で表示します。 docker history -H ubuntu:latest
--no-trunc 出力を省略せずに表示します。 docker history --no-trunc myapp:latest
-q, --quiet イメージIDのみを表示します。 docker history -q myimage

例:

docker history myapp:1.0

1つ以上のイメージをtarアーカイブとしてファイルに保存します。オフライン環境へのイメージ転送などに使用します。

docker save [OPTIONS] IMAGE [IMAGE...] > output.tar

または

docker save -o output.tar IMAGE [IMAGE...]

例:

docker save myapp:latest nginx:alpine > images.tar
docker save -o images.tar myapp:latest nginx:alpine

docker saveで作成したtarアーカイブからイメージを読み込みます。

docker load [OPTIONS] < input.tar

または

docker load -i input.tar
オプション 説明
-i, --input 標準入力ではなく、tarアーカイブファイルを指定します。 docker load -i images.tar
-q, --quiet 進捗情報を抑制します。 docker load -q -i images.tar

例:

docker load < images.tar
docker load -i images.tar

コンテナ操作 (Container Lifecycle) 🚀

コンテナの作成、起動、停止、再起動、削除など、ライフサイクル全般を管理します。

指定したイメージから新しいコンテナを作成し、実行します。非常に多くのオプションがあります。

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
オプション 説明
-d, --detach コンテナをバックグラウンドで実行し、コンテナIDを表示します。 docker run -d nginx
-it -i (--interactive) と -t (--tty) の組み合わせ。インタラクティブなプロセス(シェルなど)を実行するために使用します。 docker run -it ubuntu bash
--name コンテナに名前を付けます。指定しない場合はランダムな名前が付けられます。 docker run --name my-nginx -d nginx
-p, --publish ホストとコンテナのポートをマッピングします (hostPort:containerPort)。 docker run -d -p 8080:80 nginx
-v, --volume ホストのディレクトリや名前付きボリュームをコンテナにマウントします (hostPath:containerPath または volumeName:containerPath)。 docker run -v /mydata:/data myimage
docker run -v my-volume:/app/data myimage
-e, --env コンテナ内の環境変数を設定します (KEY=VALUE)。 docker run -e MYVAR=myvalue myimage
--env-file 環境変数をファイルから読み込みます。 docker run --env-file ./env.list myimage
--rm コンテナが終了したときに自動的に削除します。一時的なタスクに便利です。 docker run --rm ubuntu echo "Hello"
--network コンテナを接続するネットワークを指定します。 docker run --network my-net myimage
--restart コンテナの再起動ポリシーを指定します (no, on-failure[:max-retries], always, unless-stopped)。 docker run -d --restart unless-stopped redis
--user, -u コンテナ内でコマンドを実行するユーザー名またはUID (およびオプションでグループ名またはGID) を指定します。 docker run -u nobody myimage
docker run -u 1000:1000 myimage
--platform コンテナを実行するプラットフォームを指定します(イメージがマルチプラットフォーム対応の場合)。 docker run --platform linux/amd64 myimage

docker createコマンドはコンテナを作成しますが、起動はしません。docker startで後から起動できます。

現在実行中のコンテナの一覧を表示します。

docker ps [OPTIONS]
オプション 説明
-a, --all 停止中のコンテナを含む、すべてのコンテナを表示します。 docker ps -a
-q, --quiet コンテナIDのみを表示します。 docker ps -q
-s, --size ファイルシステムの合計サイズを表示します。 docker ps -s
-n, --last 最後に作成されたn個のコンテナを表示します(状態に関わらず)。 docker ps -n 5
-l, --latest 最後に作成されたコンテナを表示します(状態に関わらず)。-n 1 と同等。 docker ps -l
--filter, -f 指定した条件に基づいてコンテナをフィルタリングします (例: status=exited, name=my-container, ancestor=image:tag)。 docker ps --filter "status=running"
docker ps -a -f "status=exited"
--format Goテンプレートを使用して出力形式をカスタマイズします。 docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}"

1つ以上の実行中のコンテナを停止します。まずSIGTERMシグナルを送信し、指定時間(デフォルト10秒)後に応答がなければSIGKILLを送信します。

docker stop [OPTIONS] CONTAINER [CONTAINER...]
オプション 説明
-t, --time SIGKILLを送信するまでの待機時間(秒)。 docker stop -t 30 my-container

例:

docker stop my-nginx container-id

docker killコマンドは、SIGTERMを送信せずに直接SIGKILLを送信してコンテナを強制停止します。

docker kill my-container

1つ以上の停止中のコンテナを起動します。

docker start [OPTIONS] CONTAINER [CONTAINER...]
オプション 説明
-a, --attach コンテナの標準出力/標準エラー出力にアタッチします。 docker start -a my-container
-i, --interactive コンテナの標準入力にアタッチします (通常-aと併用)。 docker start -ai my-interactive-container

例:

docker start my-stopped-container

1つ以上のコンテナを再起動します。

docker restart [OPTIONS] CONTAINER [CONTAINER...]
オプション 説明
-t, --time 停止シグナルを送信してから強制終了するまでの待機時間(秒)。 docker restart -t 5 my-container

例:

docker restart my-nginx my-db

1つ以上の停止中のコンテナを削除します。

docker rm [OPTIONS] CONTAINER [CONTAINER...]
オプション 説明
-f, --force 実行中のコンテナを強制的に削除します (SIGKILLを使用)。⚠️ 注意して使用してください。 docker rm -f my-running-container
-v, --volumes コンテナに関連付けられている匿名ボリュームを削除します。 docker rm -v my-container-with-volume
-l, --link 指定されたリンクを削除します (非推奨)。

例:

docker rm my-stopped-container container-id

停止しているすべてのコンテナを一括削除するには docker container prune を使用します。

docker container prune

コンテナのログ(標準出力/標準エラー出力)を表示します。

docker logs [OPTIONS] CONTAINER
オプション 説明
-f, --follow ログ出力をストリーミングします (tail -fのように)。 docker logs -f my-app
--tail ログの最後のN行を表示します (デフォルトはall)。 docker logs --tail 100 my-app
-t, --timestamps 各ログ行にタイムスタンプを追加します。 docker logs -t my-app
--since 指定したタイムスタンプ以降のログを表示します (例: 2023-10-27T10:00:00 or 42m)。 docker logs --since 1h my-app
--until 指定したタイムスタンプ以前のログを表示します。 docker logs --until 2023-10-27T12:00:00 my-app
--details ログに追加の詳細情報 (属性や環境変数など) を表示します。 docker logs --details my-app

例:

docker logs my-nginx

コンテナに関する詳細な情報(IPアドレス、ポートマッピング、ボリューム、設定など)をJSON形式で表示します。

docker inspect [OPTIONS] CONTAINER [CONTAINER...]

例:

docker inspect my-container

--formatオプションで特定の情報だけを抽出できます。

# コンテナのIPアドレスを表示
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' my-container

実行中のコンテナ内で実行されているプロセスを表示します。

docker top CONTAINER [ps OPTIONS]

例:

docker top my-web-server
# psコマンドのオプションを渡す (例: aux)
docker top my-container aux

実行中のコンテナのリソース使用状況(CPU、メモリ、ネットワークI/O、ディスクI/O)をライブストリームで表示します。

docker stats [OPTIONS] [CONTAINER...]
オプション 説明
-a, --all 実行中および停止中のコンテナの統計を表示します。 docker stats -a
--format Goテンプレートを使用して出力形式をカスタマイズします。 docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"
--no-stream ライブストリームせず、現在の統計情報を一度だけ表示します。 docker stats --no-stream my-container
--no-trunc コンテナIDを省略せずに表示します。 docker stats --no-trunc

例:

# 全ての実行中コンテナの統計を表示
docker stats
# 特定のコンテナの統計を表示
docker stats my-container1 my-container2

コンテナ内のすべてのプロセスを一時停止します。

docker pause CONTAINER [CONTAINER...]

例:

docker pause my-running-app

docker pauseで一時停止したコンテナ内のプロセスを再開します。

docker unpause CONTAINER [CONTAINER...]

例:

docker unpause my-running-app

既存のコンテナの名前を変更します。

docker rename CONTAINER NEW_NAME

例:

docker rename old-name new-name

コンテナのファイルシステム内で、イメージ作成時から変更または追加/削除されたファイルやディレクトリを表示します。

docker diff CONTAINER

出力の意味:

  • A – 追加 (Add)
  • C – 変更 (Change)
  • D – 削除 (Delete)

例:

docker diff my-container

コンテナの実行と接続 (Running & Connecting) 💻

実行中のコンテナ内でコマンドを実行したり、コンテナとの間でファイルをコピーしたりします。

実行中のコンテナ内で新しいコマンドを実行します。デバッグや一時的な操作に便利です。

docker exec [OPTIONS] CONTAINER COMMAND [ARG...]
オプション 説明
-d, --detach コマンドをバックグラウンドで実行します。 docker exec -d my-container touch /tmp/file
-it インタラクティブなセッション(シェルなど)を開始します。 docker exec -it my-container bash
-e, --env コマンド実行時に環境変数を設定します。 docker exec -e MYVAR=value my-container printenv
-u, --user コマンドを実行するユーザーを指定します。 docker exec -u nobody my-container whoami
-w, --workdir コマンドを実行するコンテナ内のワーキングディレクトリを指定します。 docker exec -w /app my-container pwd

例:

# コンテナ内のファイル一覧を表示
docker exec my-container ls /app
# インタラクティブシェルを起動
docker exec -it my-container /bin/sh

実行中のコンテナの標準入力、標準出力、標準エラー出力にアタッチします。主にフォアグラウンドで起動したコンテナに再接続する際に使用します。

docker attach [OPTIONS] CONTAINER
オプション 説明
--detach-keys アタッチをデタッチするためのキーシーケンスを指定します (デフォルトは ctrl-p,ctrl-q)。 docker attach --detach-keys="ctrl-c" my-container
--no-stdin コンテナの標準入力 (STDIN) にアタッチしません。 docker attach --no-stdin my-container
--sig-proxy すべての受信シグナルをコンテナのプロセスにプロキシします(TTYがない場合はデフォルトでtrue)。 docker attach --sig-proxy=false my-container

例:

docker attach my-interactive-container

docker exec -it と似ていますが、attach はコンテナのメインプロセスに接続するのに対し、exec は新しいプロセスを起動します。アタッチ中に Ctrl+C を押すと、コンテナのメインプロセスが終了する可能性があるため注意が必要です(--sig-proxy=false で挙動が変わります)。デタッチするにはデフォルトで Ctrl+P -> Ctrl+Q を順に押します。

ホストとコンテナ間でファイルやディレクトリをコピーします。

# ホストからコンテナへコピー
docker cp [OPTIONS] SRC_PATH CONTAINER:DEST_PATH

# コンテナからホストへコピー
docker cp [OPTIONS] CONTAINER:SRC_PATH DEST_PATH
オプション 説明
-a, --archive アーカイブモード (cp -a と同様)。パーミッションなどを保持します。 docker cp -a /local/data/. my-container:/app/data
-L, --follow-link コピー元のシンボリックリンクをたどります。 docker cp -L my-container:/app/config.link /local/config

例:

# ホストの app.conf をコンテナ my-nginx の /etc/nginx/ にコピー
docker cp app.conf my-nginx:/etc/nginx/app.conf
# コンテナ my-app の /app/logs ディレクトリをホストのカレントディレクトリにコピー
docker cp my-app:/app/logs .

ネットワーク操作 (Networking) 🌐

Dockerコンテナ間の通信や外部との接続を管理するためのネットワークを作成・管理します。

Dockerネットワークの一覧を表示します。

docker network ls [OPTIONS]
オプション 説明
-q, --quiet ネットワークIDのみを表示します。 docker network ls -q
--filter, -f 指定した条件に基づいてネットワークをフィルタリングします (例: driver=bridge, name=my-net)。 docker network ls --filter driver=overlay
--format Goテンプレートを使用して出力形式をカスタマイズします。 docker network ls --format "{{.ID}}: {{.Name}} ({{.Driver}})"

新しいDockerネットワークを作成します。

docker network create [OPTIONS] NETWORK
オプション 説明
-d, --driver 使用するネットワークドライバーを指定します (bridge, host, overlay, macvlan など。デフォルトは bridge)。 docker network create --driver bridge my-bridge-net
--subnet CIDR形式でネットワークのサブネットを指定します。 docker network create --subnet=172.18.0.0/16 my-custom-net
--gateway メインサブネットのIPv4またはIPv6ゲートウェイを指定します。 docker network create --subnet=172.18.0.0/16 --gateway=172.18.0.1 my-custom-net
--ip-range このネットワークからコンテナに割り当てるIPアドレスの範囲を指定します。 docker network create --subnet=192.168.5.0/24 --ip-range=192.168.5.64/28 my-ranged-net
--attachable (Swarmモードのoverlayネットワーク用) Swarmサービスだけでなく、スタンドアロンコンテナも接続できるようにします。 docker network create -d overlay --attachable my-attachable-overlay
-o, --opt ドライバー固有のオプションを設定します。 docker network create -d macvlan --subnet=192.168.1.0/24 --gateway=192.168.1.1 -o parent=eth0 my-macvlan-net
--internal ネットワークを外部から隔離します。このネットワーク上のコンテナは外部と通信できません。 docker network create --internal my-internal-net
--label ネットワークにメタデータ(ラベル)を設定します。 docker network create --label project=myapp my-app-net

例:

docker network create my-app-net

実行中のコンテナをネットワークに接続します。

docker network connect [OPTIONS] NETWORK CONTAINER
オプション 説明
--ip コンテナに割り当てるIPv4アドレスを指定します。 docker network connect --ip 172.18.0.10 my-custom-net my-container
--ip6 コンテナに割り当てるIPv6アドレスを指定します。 # (IPv6が有効なネットワークで)
docker network connect --ip6 2001:db8::10 my-ipv6-net my-container
--alias ネットワーク内でコンテナが持つ別名を指定します。他のコンテナはこの名前で接続できます。 docker network connect --alias db my-app-net my-db-container
--link 別のコンテナへのリンクを追加します (非推奨、代わりにDNS解決を使用)。
--driver-opt ネットワークドライバー固有のオプションを指定します。 # (特定のドライバーでのみ有効なオプション)

例:

docker network connect my-app-net my-running-container

コンテナをネットワークから切断します。

docker network disconnect [OPTIONS] NETWORK CONTAINER
オプション 説明
-f, --force 実行中のコンテナを強制的にネットワークから切断します。 docker network disconnect -f my-app-net my-container

例:

docker network disconnect my-app-net my-container

1つ以上のネットワークに関する詳細な情報(接続されているコンテナ、設定など)をJSON形式で表示します。

docker network inspect [OPTIONS] NETWORK [NETWORK...]

例:

docker network inspect bridge my-app-net

--formatオプションで特定の情報だけを抽出できます。

# ネットワークに接続されているコンテナのリストを表示
docker network inspect --format='{{range .Containers}}{{.Name}} {{.IPv4Address}}{{println}}{{end}}' my-app-net

1つ以上のネットワークを削除します。コンテナが接続されていないネットワークのみ削除できます。

docker network rm NETWORK [NETWORK...]

例:

docker network rm my-unused-net

未使用のネットワーク(どのコンテナにも接続されていないカスタムネットワーク)を一括削除するには docker network prune を使用します。

docker network prune

ボリューム操作 (Volumes) 💾

コンテナのデータを永続化し、コンテナ間でデータを共有するためのボリュームを作成・管理します。

Dockerボリュームの一覧を表示します。

docker volume ls [OPTIONS]
オプション 説明
-q, --quiet ボリューム名のみを表示します。 docker volume ls -q
--filter, -f 指定した条件に基づいてボリュームをフィルタリングします (例: dangling=true, name=my-data, driver=local, label=key=value)。 docker volume ls --filter dangling=true
--format Goテンプレートを使用して出力形式をカスタマイズします。 docker volume ls --format "{{.Name}}: {{.Driver}}"

新しいDockerボリュームを作成します。

docker volume create [OPTIONS] [VOLUME]
オプション 説明
-d, --driver 使用するボリュームドライバーを指定します (デフォルトは local)。 docker volume create --driver local my-local-volume
--label ボリュームにメタデータ(ラベル)を設定します。 docker volume create --label owner=devteam my-dev-data
--opt, -o ドライバー固有のオプションを設定します (例: NFSボリュームのマウントオプションなど)。 docker volume create --driver local --opt type=nfs --opt o=addr=192.168.1.10,rw --opt device=:/data/share my-nfs-volume

例:

docker volume create my-app-data

ボリューム名を省略すると、ランダムな名前のボリュームが作成されます。

1つ以上のボリュームに関する詳細な情報(マウントポイント、ドライバー、ラベルなど)をJSON形式で表示します。

docker volume inspect [OPTIONS] VOLUME [VOLUME...]

例:

docker volume inspect my-app-data

--formatオプションで特定の情報だけを抽出できます。

# ボリュームのマウントポイントを表示
docker volume inspect --format='{{.Mountpoint}}' my-app-data

1つ以上のボリュームを削除します。コンテナで使用されていないボリュームのみ削除できます。

docker volume rm [OPTIONS] VOLUME [VOLUME...]
オプション 説明
-f, --force ボリュームを強制的に削除します (非推奨、データ損失の可能性)。 # docker volume rm -f volume-in-use # 通常は失敗する

例:

docker volume rm my-unused-volume other-volume

どのコンテナにも使用されていないボリュームを一括で削除します。

docker volume prune [OPTIONS]
オプション 説明
-f, --force 確認プロンプトなしで削除を実行します。 docker volume prune -f
--filter 指定したラベルに基づいて削除するボリュームをフィルタリングします (例: label!=keep)。 docker volume prune --filter "label!=important"

⚠️ この操作は元に戻せません。削除されるボリュームをよく確認してください。

Docker Compose (Multi-container Applications) ⚙️

docker-compose.yml ファイルを使用して、複数のコンテナで構成されるアプリケーションを定義・実行・管理します。

最近のDockerバージョンでは docker compose (スペース区切り) が推奨されていますが、docker-compose (ハイフン区切り) も依然として利用可能です。ここでは主に docker compose を使用します。

docker-compose.yml に定義されたサービス(コンテナ)をビルド(必要であれば)、作成、起動します。

docker compose up [OPTIONS] [SERVICE...]
オプション 説明
-d, --detach コンテナをバックグラウンドで起動します。 docker compose up -d
--build 起動前にイメージをビルドします。 docker compose up --build
--force-recreate 設定が変更されていなくてもコンテナを再作成します。 docker compose up --force-recreate
--no-recreate コンテナが既に存在する場合、再作成しません。--force-recreate とは逆の動作。 docker compose up --no-recreate
--no-build イメージをビルドせずに起動します。ローカルにイメージが存在しない場合はエラーになります。 docker compose up --no-build
--remove-orphans Composeファイルで定義されなくなったサービスのコンテナを削除します。 docker compose up -d --remove-orphans
-V, --renew-anon-volumes 匿名ボリュームを再作成します。データが失われる可能性があります。 docker compose up -V
--scale 特定のサービスのコンテナ数を指定します (SERVICE=NUM)。 docker compose up -d --scale worker=3
-f, --file デフォルト (docker-compose.yml) 以外のComposeファイルを指定します。複数指定可能。 docker compose -f docker-compose.yml -f docker-compose.override.yml up
--project-name, -p デフォルト(カレントディレクトリ名)以外のプロジェクト名を指定します。コンテナ名などに影響します。 docker compose -p myproject up

特定のサービスのみを起動することも可能です。

docker compose up -d web db

docker compose up で起動したコンテナ、ネットワーク、ボリュームなどを停止・削除します。

docker compose down [OPTIONS]
オプション 説明
--rmi イメージを削除します (all: 全イメージ, local: タグなしイメージ)。 docker compose down --rmi all
-v, --volumes Composeファイルで定義された名前付きボリュームと、コンテナに紐づく匿名ボリュームを削除します。 docker compose down -v
--remove-orphans Composeファイルで定義されなくなった(孤児の)コンテナを削除します。 docker compose down --remove-orphans

⚠️ -v オプションを付けるとボリューム内のデータが削除されるため、注意が必要です。

Composeプロジェクトのコンテナの状態を表示します。

docker compose ps [OPTIONS] [SERVICE...]
オプション 説明
-q, --quiet コンテナIDのみを表示します。 docker compose ps -q
--services サービス名のみを表示します。 docker compose ps --services
--filter 指定した条件に基づいてコンテナをフィルタリングします (例: status=running)。 docker compose ps --filter status=running
-a, --all 停止中のコンテナも含めて表示します。 docker compose ps -a

サービスのコンテナログを表示します。

docker compose logs [OPTIONS] [SERVICE...]

オプションは docker logs と同様のものが多く利用可能です (-f, --tail, -t, --since など)。

例:

# 全サービスのログをストリーミング
docker compose logs -f
# webサービスの最後の10行を表示
docker compose logs --tail 10 web

実行中のサービスのコンテナ内でコマンドを実行します。

docker compose exec [OPTIONS] SERVICE COMMAND [ARG...]

オプションは docker exec と同様のものが多く利用可能です (-d, -T(TTY無効化), -e, -u, -w など)。-itdocker exec と同様には直接指定せず、TTYが必要な場合は自動的に割り当てられます。

例:

# webサービスのコンテナでbashをインタラクティブに実行
docker compose exec web bash
# dbサービスのコンテナで環境変数を表示
docker compose exec db printenv

Composeファイルで定義されたサービスのイメージをビルドまたは再ビルドします。

docker compose build [OPTIONS] [SERVICE...]
オプション 説明
--no-cache ビルド時にキャッシュを使用しません。 docker compose build --no-cache web
--pull ビルド前に常に新しいバージョンのベースイメージを取得しようとします。 docker compose build --pull
--progress プログレス出力のタイプを設定します (auto, plain, tty)。 docker compose build --progress=plain
--build-arg サービスにビルド引数を設定します (VAR=VAL)。 docker compose build --build-arg USER=guest web

Composeファイルで定義されたサービスのイメージをレジストリから取得します。

docker compose pull [OPTIONS] [SERVICE...]
オプション 説明
-q, --quiet 進捗情報ではなく、イメージ名のみを出力します。 docker compose pull -q
--ignore-buildable ビルド可能なサービスは無視して、プルのみを行います。 docker compose pull --ignore-buildable
--no-parallel イメージを並列ではなく順次プルします。(古いComposeバージョンでは --parallel が逆の意味) docker compose pull --no-parallel
--include-deps 依存関係のあるサービスのイメージもプルします。 docker compose pull --include-deps web

Composeファイルを検証し、マージされた設定内容を表示します。

docker compose config [OPTIONS]
オプション 説明
-q, --quiet エラーのみを表示し、設定内容は出力しません。検証のみ行いたい場合に便利です。 docker compose config -q
--services サービス名の一覧を表示します。 docker compose config --services
--volumes ボリューム名の一覧を表示します。 docker compose config --volumes
--hash="*" 各サービスの設定ハッシュを表示します。どのサービスの設定が変更されたかを確認するのに役立ちます。 docker compose config --hash="*"
  • docker compose start [SERVICE...]: 停止中のサービスを開始します。
  • docker compose stop [SERVICE...]: 実行中のサービスを停止しますが、コンテナは削除しません。
  • docker compose restart [SERVICE...]: サービスを再起動します。
  • docker compose pause [SERVICE...]: サービスのコンテナを一時停止します。
  • docker compose unpause [SERVICE...]: 一時停止中のサービスのコンテナを再開します。
  • docker compose rm [OPTIONS] [SERVICE...]: 停止中のサービスのコンテナを削除します。
  • docker compose kill [OPTIONS] [SERVICE...]: サービスのコンテナを強制停止します (SIGKILL)。
  • docker compose push [SERVICE...]: サービスのイメージをレジストリにプッシュします。
  • docker compose create [SERVICE...]: サービス用のコンテナを作成しますが、起動はしません。
  • docker compose run [OPTIONS] SERVICE [COMMAND] [ARG...]: サービス用のコンテナを一度だけ実行します。ポートマッピングなどが通常と異なる場合があります。主に一時的なタスク実行に使用します。

システム情報と管理 (System Info & Management) ℹ️

Dockerデーモンの情報表示、ディスク使用量の確認、未使用リソースのクリーンアップなどを行います。

Dockerデーモンの設定や状態(コンテナ数、イメージ数、ストレージドライバ、OS情報など)に関する広範な情報を表示します。

docker info [OPTIONS]
オプション 説明
-f, --format Goテンプレートを使用して出力形式をカスタマイズします。 docker info --format '{{.NCPU}} CPUs, {{.MemTotal}} MB Memory'

Dockerクライアントとデーモンのバージョン情報、APIバージョン、Goバージョンなどを表示します。

docker version [OPTIONS]
オプション 説明
-f, --format Goテンプレートを使用して出力形式をカスタマイズします。 docker version --format 'Client: {{.Client.Version}}\nServer: {{.Server.Version}}'

Dockerが使用しているディスク容量の内訳(イメージ、コンテナ、ボリューム、ビルドキャッシュ)を表示します。

docker system df [OPTIONS]
オプション 説明
-v, --verbose 各項目についてより詳細な情報を表示します。 docker system df -v
--format Goテンプレートを使用して出力形式をカスタマイズします。 docker system df --format "Image Size: {{.ImagesSize}}"

使用されていないDockerリソース(停止したコンテナ、danglingイメージ、未使用ネットワーク、未使用ボリューム、ビルドキャッシュ)を一括で削除します。

docker system prune [OPTIONS]
オプション 説明
-a, --all 停止中のコンテナと、どのコンテナからも参照されていない全ての未使用イメージ(danglingイメージだけでなく)を削除します。 docker system prune -a
--volumes 未使用のボリュームも削除します(デフォルトでは削除されません)。 docker system prune --volumes
-f, --force 確認プロンプトなしで削除を実行します。 docker system prune -f
--filter 指定したラベルに基づいて削除するリソースをフィルタリングします (例: label!=keep)。 docker system prune --filter "label!=persistent"

⚠️ この操作は元に戻せません。-a--volumesオプションを使用する場合は特に注意し、削除されるリソースをよく確認してください。

個別のリソースタイプごとに prune コマンドも用意されています:

  • docker container prune: 停止中のコンテナを削除
  • docker image prune: danglingイメージを削除 (-aで未使用イメージ全て)
  • docker network prune: 未使用ネットワークを削除
  • docker volume prune: 未使用ボリュームを削除
  • docker builder prune: ビルドキャッシュを削除

Dockerデーモンからのリアルタイムイベント(コンテナの開始/停止、イメージのpull/削除など)をストリーミング表示します。

docker system events [OPTIONS]
オプション 説明
--since 指定したタイムスタンプ以降のイベントを表示します。 docker system events --since '1h'
--until 指定したタイムスタンプまでのイベントを表示します。 docker system events --until '2023-10-27T10:00:00'
-f, --filter イベントをフィルタリングします (例: type=container, event=start, image=nginx)。 docker system events --filter 'type=container' --filter 'event=stop'
--format Goテンプレートを使用して出力形式をカスタマイズします。 docker system events --format '{{.Type}} {{.Action}}: {{.Actor.Attributes.name}}'

レジストリ操作 (Registry & Repository) ☁️

Docker Hubやプライベートレジストリへのログイン、ログアウト、イメージ検索などを行います。

Dockerレジストリ(デフォルトはDocker Hub)にログインします。プライベートリポジトリへのアクセスやイメージのプッシュに必要です。

docker login [OPTIONS] [SERVER]
オプション 説明
-u, --username ユーザー名を指定します。指定しない場合はプロンプトが表示されます。 docker login -u myuser my.private.registry.com
-p, --password パスワードを指定します。指定しない場合はプロンプトが表示されます。 # プロンプトで入力する方が安全
docker login -u myuser -p mypassword
--password-stdin 標準入力からパスワードを読み込みます。スクリプトなどで安全にパスワードを渡すのに便利です。 echo "mypassword" | docker login --username myuser --password-stdin my.private.registry.com

サーバー名を省略するとDocker Hubにログインします。

# Docker Hubにログイン
docker login
# プライベートレジストリにログイン
docker login my.private.registry.com

Dockerレジストリからログアウトします。

docker logout [SERVER]

例:

# Docker Hubからログアウト
docker logout
# プライベートレジストリからログアウト
docker logout my.private.registry.com

Docker Hub(または設定されたレジストリ)で公開されているイメージを検索します。

docker search [OPTIONS] TERM
オプション 説明
--filter, -f 検索結果をフィルタリングします (例: is-official=true, stars=N)。 docker search --filter is-official=true python
docker search --filter stars=100 alpine
--limit 表示する検索結果の最大数を指定します (デフォルトは25)。 docker search --limit 50 ubuntu
--format Goテンプレートを使用して出力形式をカスタマイズします。 docker search --format "{{.Name}}: {{.StarCount}} stars" nginx
--no-trunc 説明文 (Description) を省略せずに表示します。 docker search --no-trunc redis

例:

docker search mysql

コメント

タイトルとURLをコピーしました