🐳

【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を押す。

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