イメージ操作 (Image Management) ✨
Dockerイメージの検索、取得、管理、ビルド、共有などを行います。
イメージの一覧表示: docker images
ローカルに存在する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 pull
レジストリ(デフォルトは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
タグが使用されます。
イメージの削除: docker rmi
ローカルから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
イメージのビルド: docker build
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
既存のイメージに新しい名前(タグ)を付けます。イメージの実体はコピーされません。
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 push
ローカルのイメージをリモートレジストリ(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
)。
イメージの詳細情報表示: docker inspect
イメージに関する詳細な情報(レイヤー、環境変数、設定など)をJSON形式で表示します。
docker inspect [OPTIONS] IMAGE [IMAGE...]
例:
docker inspect nginx:latest
--format
オプションで特定の情報だけを抽出できます。
# イメージのアーキテクチャを表示
docker inspect --format='{{.Architecture}}' nginx
イメージの履歴表示: docker history
イメージがどのように構築されたか、各レイヤーの履歴を表示します。
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
イメージの保存: docker save
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 load
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
指定したイメージから新しいコンテナを作成し、実行します。非常に多くのオプションがあります。
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
現在実行中のコンテナの一覧を表示します。
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}}" |
コンテナの停止: docker stop
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
コンテナの起動: docker start
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
コンテナの再起動: docker restart
1つ以上のコンテナを再起動します。
docker restart [OPTIONS] CONTAINER [CONTAINER...]
オプション | 説明 | 例 |
---|---|---|
-t , --time |
停止シグナルを送信してから強制終了するまでの待機時間(秒)。 | docker restart -t 5 my-container |
例:
docker restart my-nginx my-db
コンテナの削除: docker rm
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
コンテナのログ(標準出力/標準エラー出力)を表示します。
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
コンテナの詳細情報表示: docker inspect
コンテナに関する詳細な情報(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
実行中のコンテナ内で実行されているプロセスを表示します。
docker top CONTAINER [ps OPTIONS]
例:
docker top my-web-server
# psコマンドのオプションを渡す (例: aux)
docker top my-container aux
コンテナのリソース使用状況表示: docker stats
実行中のコンテナのリソース使用状況(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
コンテナ内のすべてのプロセスを一時停止します。
docker pause CONTAINER [CONTAINER...]
例:
docker pause my-running-app
コンテナの再開: docker unpause
docker pause
で一時停止したコンテナ内のプロセスを再開します。
docker unpause CONTAINER [CONTAINER...]
例:
docker unpause my-running-app
コンテナの名前変更: docker rename
既存のコンテナの名前を変更します。
docker rename CONTAINER NEW_NAME
例:
docker rename old-name new-name
コンテナファイルシステムの変更差分表示: docker diff
コンテナのファイルシステム内で、イメージ作成時から変更または追加/削除されたファイルやディレクトリを表示します。
docker diff CONTAINER
出力の意味:
A
– 追加 (Add)C
– 変更 (Change)D
– 削除 (Delete)
例:
docker diff my-container
コンテナの実行と接続 (Running & Connecting) 💻
実行中のコンテナ内でコマンドを実行したり、コンテナとの間でファイルをコピーしたりします。
実行中のコンテナでコマンド実行: docker exec
実行中のコンテナ内で新しいコマンドを実行します。デバッグや一時的な操作に便利です。
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
実行中のコンテナの標準入力、標準出力、標準エラー出力にアタッチします。主にフォアグラウンドで起動したコンテナに再接続する際に使用します。
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
ホストとコンテナ間でファイルやディレクトリをコピーします。
# ホストからコンテナへコピー
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 network ls
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 network create
新しい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
実行中のコンテナをネットワークに接続します。
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
コンテナをネットワークから切断します。
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
ネットワークの詳細情報表示: docker network inspect
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
ネットワークの削除: docker network rm
1つ以上のネットワークを削除します。コンテナが接続されていないネットワークのみ削除できます。
docker network rm NETWORK [NETWORK...]
例:
docker network rm my-unused-net
未使用のネットワーク(どのコンテナにも接続されていないカスタムネットワーク)を一括削除するには docker network prune
を使用します。
docker network prune
ボリューム操作 (Volumes) 💾
コンテナのデータを永続化し、コンテナ間でデータを共有するためのボリュームを作成・管理します。
ボリュームの一覧表示: docker volume ls
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 volume create
新しい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
ボリューム名を省略すると、ランダムな名前のボリュームが作成されます。
ボリュームの詳細情報表示: docker volume inspect
1つ以上のボリュームに関する詳細な情報(マウントポイント、ドライバー、ラベルなど)をJSON形式で表示します。
docker volume inspect [OPTIONS] VOLUME [VOLUME...]
例:
docker volume inspect my-app-data
--format
オプションで特定の情報だけを抽出できます。
# ボリュームのマウントポイントを表示
docker volume inspect --format='{{.Mountpoint}}' my-app-data
ボリュームの削除: docker volume rm
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
どのコンテナにも使用されていないボリュームを一括で削除します。
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 up
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 down
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
オプションを付けるとボリューム内のデータが削除されるため、注意が必要です。
サービスのコンテナ一覧表示: docker compose ps
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
サービスのコンテナログを表示します。
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
実行中のサービスのコンテナ内でコマンドを実行します。
docker compose exec [OPTIONS] SERVICE COMMAND [ARG...]
オプションは docker exec
と同様のものが多く利用可能です (-d
, -T
(TTY無効化), -e
, -u
, -w
など)。-it
は docker exec
と同様には直接指定せず、TTYが必要な場合は自動的に割り当てられます。
例:
# webサービスのコンテナでbashをインタラクティブに実行
docker compose exec web bash
# dbサービスのコンテナで環境変数を表示
docker compose exec db printenv
サービスのイメージビルド: docker compose build
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 |
サービスのイメージ取得: docker compose pull
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
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="*" |
その他のComposeコマンド
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システム情報の表示: docker info
Dockerデーモンの設定や状態(コンテナ数、イメージ数、ストレージドライバ、OS情報など)に関する広範な情報を表示します。
docker info [OPTIONS]
オプション | 説明 | 例 |
---|---|---|
-f , --format |
Goテンプレートを使用して出力形式をカスタマイズします。 | docker info --format '{{.NCPU}} CPUs, {{.MemTotal}} MB Memory' |
Dockerバージョン情報の表示: docker version
Dockerクライアントとデーモンのバージョン情報、APIバージョン、Goバージョンなどを表示します。
docker version [OPTIONS]
オプション | 説明 | 例 |
---|---|---|
-f , --format |
Goテンプレートを使用して出力形式をカスタマイズします。 | docker version --format 'Client: {{.Client.Version}}\nServer: {{.Server.Version}}' |
Dockerディスク使用量の表示: docker system df
Dockerが使用しているディスク容量の内訳(イメージ、コンテナ、ボリューム、ビルドキャッシュ)を表示します。
docker system df [OPTIONS]
オプション | 説明 | 例 |
---|---|---|
-v , --verbose |
各項目についてより詳細な情報を表示します。 | docker system df -v |
--format |
Goテンプレートを使用して出力形式をカスタマイズします。 | docker system df --format "Image Size: {{.ImagesSize}}" |
未使用リソースの一括削除: docker system prune
使用されていない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イベントの監視: docker system events
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 login
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 logout
Dockerレジストリからログアウトします。
docker logout [SERVER]
例:
# Docker Hubからログアウト
docker logout
# プライベートレジストリからログアウト
docker logout my.private.registry.com
レジストリ内のイメージ検索: docker search
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
コメント