🐳

図で理解する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」イメージは公式サイトから確認されます。
https://hub.docker.com/_/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