はじめに
Dockerをインストールしたものの、コマンドが多すぎてどこから手を付ければいいかわからない。そんな悩みを抱えている方は多いのではないでしょうか。
本記事では、Dockerの基本コマンドを体系的に解説します。コンテナの作成から停止、削除まで、日常的に使用する主要なコマンドを実践例とともに紹介します。この記事を読み終えると、以下のことができるようになります。
- コンテナとイメージの関係を正しく理解できる
docker runでコンテナを作成・起動できるdocker psでコンテナの状態を確認できるdocker logsやdocker execでコンテナの調査・操作ができる- イメージの取得・一覧表示・削除ができる
前提として、Docker Desktop等でDockerが利用可能な環境を準備済みであることを想定しています。まだ環境構築がお済みでない場合は、Docker Desktop導入ガイドを参照してください。
Docker基本コマンドとは
Docker CLIは、コンテナやイメージを操作するためのコマンドラインツールです。大きく分けて、以下のカテゴリに分類できます。
| カテゴリ | 主なコマンド | 用途 |
|---|---|---|
| コンテナ操作 | run, stop, start, rm | コンテナのライフサイクル管理 |
| コンテナ確認 | ps, logs, exec, inspect | コンテナの状態確認・調査 |
| イメージ操作 | pull, images, rmi, build | イメージの取得・管理 |
| システム | system prune, info | Docker環境の管理 |
本記事では、特に使用頻度の高いコンテナ操作とイメージ操作のコマンドに焦点を当てて解説します。
コンテナとイメージの関係
Dockerコマンドを理解するうえで、コンテナとイメージの関係を把握することは非常に重要です。
イメージとは
イメージは、コンテナを作成するための読み取り専用のテンプレートです。アプリケーションの実行に必要なすべてのファイル(OS、ライブラリ、アプリケーションコード、設定ファイルなど)がレイヤー構造で格納されています。
block-beta
columns 1
App["アプリケーション層"]
Deps["依存ライブラリ層 (npm, pip等)"]
Runtime["ランタイム/ミドルウェア層 (Node.js, Python等)"]
BaseOS["ベースOS層 (Alpine, Ubuntu等)"]コンテナとは
コンテナは、イメージから作成される実行可能なインスタンスです。イメージを「設計図」とするならば、コンテナは「設計図から作られた実際の建物」に相当します。
flowchart LR
subgraph Image["イメージ"]
nginx["イメージ\n(nginx)\n読取専用"]
end
subgraph Containers["コンテナ"]
C1["コンテナ1 (実行中)"]
C2["コンテナ2 (停止中)"]
C3["コンテナ3 (実行中)"]
end
nginx -->|"docker run"| C1
nginx -->|"docker run"| C2
nginx -->|"docker run"| C3コンテナのライフサイクル
コンテナには以下の状態があり、各コマンドで状態を遷移させます。
flowchart TD
Image["イメージ"]
Created["Created"]
Running["Running"]
Stopped["Stopped"]
Deleted["Deleted"]
Image -->|"docker create"| Created
Created -->|"docker start"| Running
Image -->|"docker run\n(create + start)"| Running
Running -->|"docker stop"| Stopped
Stopped -->|"docker start / docker restart"| Running
Stopped -->|"docker rm"| Deletedよく使うコンテナ操作コマンド
docker run - コンテナの作成と起動
docker runは、イメージからコンテナを作成し、起動するコマンドです。Dockerで最も頻繁に使用するコマンドの1つです。
基本構文
|
|
シンプルな実行例
|
|
よく使うオプション
| オプション | 説明 | 使用例 |
|---|---|---|
-d |
バックグラウンド実行(デタッチモード) | docker run -d nginx |
-it |
インタラクティブモード + 疑似TTY割り当て | docker run -it ubuntu bash |
--name |
コンテナに名前を付ける | docker run --name myapp nginx |
-p |
ポートマッピング(ホスト:コンテナ) | docker run -p 8080:80 nginx |
-v |
ボリュームマウント | docker run -v /host/path:/container/path nginx |
-e |
環境変数を設定 | docker run -e MYSQL_ROOT_PASSWORD=secret mysql |
--rm |
終了時にコンテナを自動削除 | docker run --rm alpine echo "Hello" |
実践例: Nginxをバックグラウンドで起動
|
|
実践例: Ubuntuコンテナに入って操作
|
|
docker stop - コンテナの停止
実行中のコンテナを停止するコマンドです。コンテナ内のプロセスにSIGTERMシグナルを送信し、猶予時間(デフォルト10秒)後にSIGKILLで強制終了します。
基本構文
|
|
実行例
|
|
docker start - コンテナの再起動
停止中のコンテナを再び起動するコマンドです。以前の状態(環境変数、ボリュームマウントなど)を保持したまま起動します。
基本構文
|
|
実行例
|
|
docker restart - コンテナの再起動
実行中または停止中のコンテナを再起動するコマンドです。stopとstartを連続して実行するのと同等の動作をします。
|
|
docker rm - コンテナの削除
停止中のコンテナを削除するコマンドです。削除したコンテナは復元できないため、注意が必要です。
基本構文
|
|
実行例
|
|
コンテナの状態確認・ログ取得・コマンド実行
docker ps - コンテナ一覧の表示
実行中のコンテナ一覧を表示するコマンドです。コンテナの状態確認で最も使用頻度の高いコマンドです。
基本構文
|
|
実行例
|
|
出力例と各項目の説明
|
|
| 項目 | 説明 |
|---|---|
| CONTAINER ID | コンテナの一意識別子(12文字の短縮形) |
| IMAGE | コンテナの作成元イメージ |
| COMMAND | コンテナ起動時に実行されるコマンド |
| CREATED | コンテナが作成されてからの経過時間 |
| STATUS | コンテナの現在の状態 |
| PORTS | ポートマッピング情報 |
| NAMES | コンテナの名前 |
docker logs - コンテナログの取得
コンテナの標準出力・標準エラー出力を確認するコマンドです。アプリケーションのデバッグやトラブルシューティングに欠かせません。
基本構文
|
|
実行例
|
|
docker exec - 実行中コンテナでコマンド実行
実行中のコンテナ内で新しいコマンドを実行するコマンドです。コンテナ内部の調査やデバッグに使用します。
基本構文
|
|
実行例
|
|
docker run -itとdocker exec -itの違い
| コマンド | 動作 | ユースケース |
|---|---|---|
docker run -it |
新しいコンテナを作成して起動 | 新規コンテナでの作業 |
docker exec -it |
既存の実行中コンテナに接続 | 稼働中コンテナの調査・デバッグ |
docker inspect - コンテナの詳細情報取得
コンテナやイメージの詳細な設定情報をJSON形式で取得するコマンドです。
|
|
イメージ管理コマンド
docker pull - イメージの取得
Docker Hub等のレジストリからイメージをダウンロードするコマンドです。
基本構文
|
|
実行例
|
|
タグについて
タグはイメージのバージョンを指定するための識別子です。タグを省略するとlatestが自動的に適用されます。
| タグ例 | 説明 |
|---|---|
latest |
最新版(デフォルト) |
1.25 |
特定のバージョン |
1.25.3 |
特定のパッチバージョン |
alpine |
Alpine Linuxベース(軽量) |
slim |
必要最小限の構成 |
docker images - イメージ一覧の表示
ローカルに保存されているイメージの一覧を表示するコマンドです。
基本構文
|
|
実行例
|
|
出力例
|
|
docker rmi - イメージの削除
ローカルのイメージを削除するコマンドです。
基本構文
|
|
実行例
|
|
イメージが削除できない場合
イメージを使用しているコンテナが存在する場合、削除に失敗します。その場合は、先にコンテナを削除するか、-fオプションで強制削除してください。
|
|
クリーンアップコマンド
開発を続けていると、不要なコンテナやイメージが蓄積します。以下のコマンドで定期的にクリーンアップすることをおすすめします。
|
|
コマンド早見表
日常的に使用するDockerコマンドをまとめました。
コンテナ操作
| コマンド | 説明 |
|---|---|
docker run -d --name NAME IMAGE |
バックグラウンドでコンテナ起動 |
docker run -it IMAGE bash |
インタラクティブモードで起動 |
docker run -p 8080:80 IMAGE |
ポートマッピングして起動 |
docker stop NAME |
コンテナ停止 |
docker start NAME |
コンテナ起動 |
docker restart NAME |
コンテナ再起動 |
docker rm NAME |
コンテナ削除 |
docker rm -f NAME |
実行中コンテナを強制削除 |
コンテナ確認・操作
| コマンド | 説明 |
|---|---|
docker ps |
実行中コンテナ一覧 |
docker ps -a |
全コンテナ一覧 |
docker logs NAME |
ログ表示 |
docker logs -f NAME |
ログをリアルタイム追跡 |
docker exec -it NAME bash |
コンテナ内でシェル起動 |
docker inspect NAME |
詳細情報表示 |
イメージ操作
| コマンド | 説明 |
|---|---|
docker pull IMAGE:TAG |
イメージ取得 |
docker images |
イメージ一覧 |
docker rmi IMAGE |
イメージ削除 |
docker image prune |
未使用イメージ削除 |
まとめ
本記事では、Dockerの基本コマンドについて解説しました。
- コンテナとイメージの関係: イメージは読み取り専用のテンプレート、コンテナはイメージから作成される実行インスタンス
- コンテナ操作:
docker runで作成・起動、docker stopで停止、docker startで再起動、docker rmで削除 - 状態確認:
docker psでコンテナ一覧、docker logsでログ確認、docker execでコンテナ内操作 - イメージ管理:
docker pullで取得、docker imagesで一覧表示、docker rmiで削除
これらのコマンドを使いこなせるようになれば、Dockerの日常的な操作は問題なく行えるようになります。次のステップとして、ボリュームやネットワークの設定、Dockerfileによるイメージ作成に進むことをおすすめします。