図で理解するDockerコマンド
はじめに
2013年に誕生したDockerは、アプリケーション開発や運用において広く活用されており、現在ではデファクトスタンダードとなりつつあります。
しかし、初学者にとっては「コンテナとは何か」「コマンドの使い方が直感的でない」といった理由から、取っ付きにくいと感じることも少なくありません。
本記事では、Dockerコンテナのライフサイクルを図解し、コマンドの動きを視覚的に理解できるように解説します。
【インプット編】Dockerコマンドをイラストを見て理解する
Dockerコマンドの形式
本題に入る前にDockerコマンドの形式を理解しましょう。
Dockerコマンドで一番使用されるdocker container runを例にします。

docker container runというのは「containerをrun(=実行)する」という意味です。
dockerの後に 「操作する対象」 を書きます。上の例だとcontainerに対して操作します。
containerの後に 「何を行うのか」 を書きます。上の例だとrunします(=実行)。
参考:主なdockerコマンド_樹形図

【全体像】Dockerコマンドとコンテナの変化
※今回は「自分が持っているホストPCにコンテナを構築・削除する操作」をします。

① docker image pull
DockerHubで管理しているイメージをダウンロード(pull)する
② docker image build
DockerHubでダウンロードしたイメージ、開発者が作成したDockerFileをもとに「自作イメージ」を作成する。
DockerFileはDockerHubで管理されているイメージに、設定を追加するために開発者が作成します。(DockerHubで管理されているイメージ通りにコンテナを作成したい場合はDockerFileは不要)
③ docker container create
「自作イメージ」をもとに「コンテナ」を作成します。
④ docker container start
「コンテナ」を実行させます。
①~④の操作を docker container run でまとめて実行
docker container runの1コマンドで①~④のコマンドを実行します。
① docker image pull -> ② docker image build -> ③ docker container create -> ④ docker container start
⑤ docker container stop
「コンテナ」を停止させます。
⑥ docker container rm
「コンテナ」を削除します。
【アウトプット編】Dockerコマンドを使ってみよう!
Python・Flaskのコンテナを作成してみます。
① DockerHubから「python」イメージの「3.10」バーションをpullします。
$ docker image pull python:3.10
Docker Hubで公開されている「python」イメージは公式サイトから確認されます。
② DockerHubでダウンロードした「python 3.10バージョン」のイメージと、開発者が作成したDockerFileをもとに「自作イメージ」(今回はpython-image 1.0バージョン、というイメージを作成しました)を作成する
# docker build -t <イメージ名>:<タグ> .
#「.」はDockerfileのあるディレクトリ。
$ docker build -t python-image:1.0 .
Dockerfileの中身は以下
FROM python:3.10 # ベースのイメージを指定
RUN pip install flask==2.1.0 # Flaskのバージョン2.1.0をインストール
③ 前ステップで作成した「自作イメージ」(今回は「python-image 1.0バージョン」を前ステップで作成しました)
# docker container create --name <コンテナ名> <イメージ名>:<タグ>
$ docker container create --name python-container python-image:1.0
④ 作成したコンテナを実行させます。
# docker container start <コンテナIDまたはコンテナ名>
docker container start python-container
⑤ 作成したコンテナを停止させます。
# docker container stop <コンテナIDまたはコンテナ名>
docker container stop python-container
⑥ コンテナを削除します。
# docker container rm <コンテナIDまたはコンテナ名>
docker container rm python-container
終わりに
Dockerのコマンドを図解しながら解説することで、コマンドの動作を直感的に理解できるようにまとめました。次回は、実際のプロジェクトでよく使われるdocker-composeについて取り上げる予定です。お楽しみに!
Discussion