【Docker学習】基本操作:作成・起動・停止・削除
はじめに
この記事では主に、マイナビ出版の「仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん」で学習したWindowsでのDockerの操作方法について備忘録目的でまとめていきます。基本的にまとめの文章表現は常態(だ・である調)で表現しています。
【リンク紹介】
・ Docker学習のまとめ記事一覧
・ これまで書いたシリーズ記事一覧
参考書籍について
より詳しく丁寧にDockerの使い方を知りたい方は「仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん」をお手に取ってみてください。概念をイメージイラストをたくさん使って説明されていて、非常にわかりやすい書籍です。
Docker Desktop for Windowsのインストール方法
Docker Desktop for Windowsのインストール方法については、Qiita記事Windows 11にDocker Desktopを入れる手順(令和5年最新版)を参考にされてください。
1. 基本用語
現状の理解できている範囲での表現で定義します。理解が深まり次第追記予定。
1.1. Docker
データやプログラムを隔離できる仕組みのこと。
1.1.1. Docker Engine
Dockerを操作するソフトウェアのこと。
1.1.2. Docker Desktop
Dockerの実行に必要なLinuxを含むパッケージのこと。
1.2. コンテナ
データやプログラムを隔離した空間。Dockerはこの空間を操作する仕組み。
1.2.1. コンテナのライフサイクル
コンテナの「作る」、「起動する」、「停止する」、「破棄する」の一連の流れのこと。
2. dockerコマンドの基本形
docker 上位コマンド 副コマンド (オプション) 対象 (引数)
2.1. コマンド
上位コマンドと副コマンドに分けられる。副コマンドは他動詞(○○する)のような役割をし、上位コマンドは目的語(△△を)のような役割をする。
2.1.1. 上位コマンド一覧
| 上位コマンド | 内容 |
|---|---|
| container | コンテナの操作を行う機能 |
| image | イメージの操作を行う機能 |
| volume | ボリュームの操作を行う機能 |
| network | ネットワークの操作を行う機能 |
| checkpoint | 現在の状態を一時的に保存し、後でその時点に戻ることができる。実験的な機能 |
| node | Docker Swarmのノードを管理する機能 |
| plugin | プラグインを管理する機能 |
| secret | Docker Swarmのシークレット情報を管理する機能 |
| stack | Docker Swarmのサービスを管理する機能 |
| swarm | Docker Swarmを管理する機能 |
| system | Docker Engineの情報を取得する |
2.1.2. 主な上位コマンドの副コマンド
2.1.2.1. containerコマンド
| 副コマンド | 内容 | 主なオプション |
|---|---|---|
| start | コンテナを開始する | -i: コンテナの標準入力をアタッチする |
| stop | コンテナを停止する | |
| create | Dockerイメージからコンテナを作成する | --name: コンテナ名を指定 -e: 環境変数を指定 -p: ポート番号を指定 -v: ボリュームをマウントする |
| run | Dockerイメージをダウンロードし、コンテナを作成して起動する。 | --name: コンテナ名を指定 -p: ポート番号を指定 -v: ボリュームをマウント --net: コンテナをネットワークに接続 -e: 環境変数を指定 -d: バックグラウンドで実行 -i: コンテナに操作端末をつなぐ -t: 特殊キーを使用可能にする -help: 使い方を表示 |
| rm | 停止したコンテナを削除する | -f: コンテナが実行中でも強制的に削除 -v: コンテナと紐づけられているすべての匿名ボリュームを削除 |
| exec | 実行中のコンテナ内でプログラムを実行する | -i: 新しいプロセスの標準入力をアタッチする -t: 疑似端末(Pseudo-TTY)の割り当て ※通常-itのようにセットで使用する |
| ls | コンテナ一覧を表示する | -a: 停止しているコンテナも含めて表示 |
| cp | DockerコンテナとDockerホスト間でファイルをコピーする | |
| commit | Dockerコンテナをイメージに変換する |
2.1.2.2. imageコマンド
| 副コマンド | 内容 | 主なオプション |
|---|---|---|
| pull | Docker Hubなどのリポジトリからイメージをダウンロードする | |
| rm | Dockerイメージを削除する | |
| ls | 自分がダウンロードしたイメージ一覧を表示する | |
| build | Dockerイメージを作成する | -t |
2.1.2.3. valumeコマンド
| 副コマンド | 内容 | 主なオプション |
|---|---|---|
| create | ボリュームを作る | --name |
| inspect | ボリュームの詳細情報を表示する | |
| ls | ボリュームの一覧を表示する | -a |
| prune | 現在マウントされていないボリュームをすべて削除する | |
| rm | 指定したボリュームを削除する |
2.1.2.4. networkコマンド
| 副コマンド | 内容 | 主なオプション |
|---|---|---|
| connect | コンテナをネットワークに接続する | |
| disconnect | コンテナをネットワークから切断する | |
| create | ネットワークを作る | |
| inspect | ネットワークの詳細情報を表示する | |
| ls | ネットワークの一覧を表示する | |
| prume | 現在コンテナがつながっていないネットワークをすべて削除する | |
| rm | 指定したネットワークを削除する |
2.1.3. 単独コマンド
| 単独コマンド | 内容 | 主なオプション |
|---|---|---|
| login | Dockerレジストリにログインする | -u -p |
| logout | Dockerレジストリからログアウトする | |
| search | Dockerレジストリで検索する | |
| version | Docker Enginおよびコマンドのバージョンを表示する |
2.1.3.1. versionコマンド
C:\Users\userneme>docker version
実行結果は以下の通り。
Client:
Version: 28.4.0
API version: 1.51
Go version: go1.24.7
Git commit: d8eb465
Built: Wed Sep 3 20:59:40 2025
OS/Arch: windows/amd64
Context: desktop-linux
Server: Docker Desktop 4.47.0 (206054)
Engine:
Version: 28.4.0
API version: 1.51 (minimum version 1.24)
Go version: go1.24.7
Git commit: 249d679
Built: Wed Sep 3 20:57:37 2025
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.7.27
GitCommit: 05044ec0a9a75232cad458027ca83437aae3f4da
runc:
Version: 1.2.5
GitCommit: v1.2.5-0-g59923ef
docker-init:
Version: 0.19.0
GitCommit: de40ad0
2.2. オプション
コマンドに対する細かな設定をするもの。オプションはコマンドによってことなり、文字列のルールもコマンド作成者によって異なる。
2.3. 対象
上位コマンド(他動詞:○○する)、副コマンド(目的語:△△を)に対する対象を指定する。
2.4. 引数
対象に対して文字コードの指定やポート番号の指定などを書く。
3. コンテナの作成・起動・停止・削除
3.1. コンテナの一覧表示
コンテナを作成する前に、コンテナの一覧を表示するコマンドdocker psを確認する。
# 動いているコンテナの一覧を表示する
docker ps
# 存在するコンテナの一覧を表示する
docker ps -a
実行結果は以下の通り。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
実行した結果の見方は以下の表のとおり。
| 項目 | 内容 |
|---|---|
| CONTAINER ID | コンテナID。ランダムな数字が振られる |
| IMAGE | 元となったイメージ名 |
| COMMAD | コンテナにデフォルトで起動するように構成されているプログラム名 |
| CREATED | 作られてから経過した時間 |
| STATUS | 現在のステータス。動いている場合は「Up」、動いていない場合は「Exited」を表示される |
| PORTS | 割り当てられているポート番号が、「ホストのポート番号->コンテナのポート番号」の形式で表示される(ポート番号が同じ場合は->以降は表示されない) |
| NAMES | コンテナ名 |
3.2. 作成・起動・停止
Apacheのイメージhttpsdを使って、コンテナsample-apacheを作成する。
- Apache: Webサーバ機能を提供するソフトウェアApacheが動いているサーバにファイルを置くと、Webサイトとしてファイルを閲覧することができる。
3.2.1. アタッチモード
最初にdオプションを付けずにアタッチモード(コンテナの標準出力をターミナルに表示)でコンテナを作成し、起動して停止する。
参考資料:docker runのdオプションの使い方と使いどころ
# アタッチモードで起動する
C:\Users\username>docker run --name sample-apache httpd
Unable to find image 'httpd:latest' locally
latest: Pulling from library/httpd
6c19a85825c3: Pull complete
fbb3c2cad9f8: Pull complete
4f4fb700ef54: Pull complete
12844f4198f6: Pull complete
8c7716127147: Pull complete
af3b83c443ec: Pull complete
Digest: sha256:ca375ab8ef2cb8bede6b1bb97a943cce7f0a304d5459c05235b47bc2dccb98cd
Status: Downloaded newer image for httpd:latest
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
[Tue Oct 14 13:39:11.562088 2025] [mpm_event:notice] [pid 1:tid 1] AH00489: Apache/2.4.65 (Unix) configured -- resuming normal operations
[Tue Oct 14 13:39:11.562383 2025] [core:notice] [pid 1:tid 1] AH00094: Command line: 'httpd -D FOREGROUND'
停止はCntrl + Cを押す。
[Tue Oct 14 13:49:58.182510 2025] [mpm_event:notice] [pid 1:tid 1] AH00491: caught SIGTERM, shutting down
C:\Users\username>
3.2.2. デタッチモード
次にdオプションを付けてデタッチモード(バックグラウンドで実行)でコンテナを作成し、起動して停止する。
参考資料:docker runのdオプションの使い方と使いどころ
# デタッチモードで起動する
C:\Users\username>docker run --name sample-detach -d httpd
C:\Users\username>docker run --name sample-detach -d httpd
c2a45a6928615418eba8f1214bb4da67f9e00a3138245116eaebe96d71b696a3
C:\Users\username>
停止はdocker stopコマンドを実行する。
docker stop sample-detach
C:\Users\username>docker stop sample-detach
sample-detach
C:\Users\username>
コンテナを一覧表示して確認する。
C:\Users\username>docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c2a45a692861 httpd "httpd-foreground" 5 minutes ago Exited (0) About a minute ago sample-detach
7ee6de8eadc7 httpd "httpd-foreground" 21 minutes ago Exited (0) 11 minutes ago sample-apache
3.4. 削除
docker rmコマンドでコンテナを削除する。
C:\Users\username>docker rm sample-apache
sample-apache
C:\Users\username>docker rm sample-detach
sample-detach
コンテナを一覧表示して削除されたことを確認する。
C:\Users\username>docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Discussion