このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。

Docker超入門:Dockerコンテナの一生(ライフサイクル)を追体験

Dockerコンテナの一生(ライフサイクル)を追体験

 Dockerのコンテナは、生まれてから削除されるまでに一連の流れを辿ります。これを ライフサイクル と呼びます。イメージの取得からコンテナの作成・実行・停止・削除までを順番に追体験していくことで、コンテナがどのように管理されているのかが自然と理解できるようになります。ここでは、nginxイメージを例に、その一生を詳しく解説していきます。

コンテナのライフサイクルの流れ

コンテナは次のように状態を遷移していきます。

① イメージのダウンロード(pull)

② コンテナの作成

③ コンテナの実行

④ コンテナの停止

⑤ コンテナの削除

この流れに対応するコマンドを知ると、Dockerを自在に扱えるようになります。

① イメージのダウンロード(pull)

まずは利用したいイメージを取得します。ここではnginxを例にします。

docker pull nginx

タグを指定しなければ latest が取得されます。

出力例

既にnginxのイメージがある場合は、下のような出力となります。

PS C:\Users\joeac> docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
Digest: sha256:d5f28ef21aabddd098f3dbc21fe5b7a7d7a184720bc07da0b6c9b9820e97f25e
Status: Image is up to date for nginx:latest
docker.io/library/nginx:latest

確認には以下を使います。

docker image ls

出力例

PS C:\Users\joeac> docker image ls
REPOSITORY   TAG       IMAGE ID       CREATED       SIZE
nginx        latest    d5f28ef21aab   5 weeks ago   279MB
項目説明
REPOSITORYイメージ名
TAGバージョンや識別子
IMAGE IDイメージの固有ID
CREATED作成日時
SIZE容量

② コンテナの作成と ③ コンテナの実行

作成と実行は同時に行えます。以下のコマンドでnginxコンテナを起動します。

docker container run --name webserver3 -d -p 8080:80 nginx
部分意味
docker container run新しいコンテナを作成し起動
--name webserver3コンテナ名を指定
-dデタッチモード(バックグラウンド起動)
-p 8080:80ホスト8080 → コンテナ80へポートマッピング
nginx使用するイメージ

-dオプション はWebサーバーのように常時動かすサービスで便利です。
-pオプション は「ホストポート:コンテナポート」の形式で指定します。

出力例

PS C:\Users\joeac> docker container run --name webserver3 -d -p 8080:80 nginx
e1e60c6a90ec98e7b1dd7016d367a0a2df90ea7aba545d1b6b753a90dfbe9d64

 Webブラウザで http://localhost:8080 を開くと「Welcome to nginx!」が表示され、動作確認ができます。

④ コンテナの停止

実行中のコンテナは次のコマンドで停止します。

docker stop webserver3

出力例

PS C:\Users\joeac> docker stop webserver3
webserver3

停止後、ブラウザをリロードすると、ページは表示されなくなります。
これでコンテナがサービスを提供していないことが確認できます。

③ 再びコンテナの実行

一度停止したコンテナは再度起動可能です。

docker start webserver3

出力例

PS C:\Users\joeac> docker start webserver3
webserver3

再びブラウザでアクセスすると「Welcome to nginx!」が戻ってきます。

⑤ コンテナの削除

不要になったコンテナは削除します。削除にはまず停止が必要です。

PS C:\Users\joeac> docker stop webserver3
webserver3
PS C:\Users\joeac> docker container rm webserver3
webserver3

もし削除できない場合は、強制削除のオプションをつけます。

docker container rm -f webserver3

主なコマンドとオプション一覧

コマンド説明
docker pull イメージ名イメージを取得
docker image lsイメージ一覧を表示
docker container runコンテナを作成・実行
docker stop コンテナ名コンテナを停止
docker start コンテナ名停止中のコンテナを起動
docker container rm コンテナ名コンテナを削除
docker container rm -f コンテナ名コンテナを強制削除
オプション説明
--nameコンテナ名を指定
-dデタッチモード(バックグラウンド実行)
-p A:BホストAポートとコンテナBポートを関連付け

まとめ

 Dockerコンテナは「イメージを取得して → 作って → 実行して → 停止して → 削除する」というシンプルな流れで一生を終えます。それぞれの段階で対応するコマンドを覚えれば、Dockerの基本的な使い方はバッチリです。
この流れを何度か追体験すると、Dockerの操作に自然と慣れていきます。