★悩み★
・Dockerのコンテナイメージを作成する手順を知りたいな。
・コンテナイメージを作りたいけど、Dockerfileの作り方が分からないな。
・Dockerfileとdocker buildコマンドでコンテナイメージをどう作るのかな。
こういった「悩み」に答えます。
★本記事の内容★
① DockerfileとbuildでDockerコンテナイメージを作成するための準備を紹介
④ DockerfileとbuildでDockerのコンテナイメージを作成する手順をご紹介
これからご紹介する「DockerfileとbuildでDockerイメージを作成する手順」を実践したことで、30分以内で「Dockerコンテナイメージを作成」できました。
記事の前半では「Dockerのインストール手順」を解説しつつ、記事の後半では「Dockerfileとdocker buildコマンドでDockerコンテナイメージを作成する手順」を紹介します。
この記事を読み終えることで、「Dockerコンテナイメージを作成できる」状態になります。
DockerfileとbuildでDockerコンテナイメージを作成するための準備
「DockerfileとbuildでDockerコンテナイメージを作成するための準備」に関してご紹介します。
★Dockerfileとbuildでコンテナイメージを作成するための準備の流れ★
手順1:Dockerをインストール
手順2:Dockerを起動
上記の流れで、「Dockerfileとbuildでコンテナイメージを作成するための準備」ができます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年5月31日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「Dockerfileとbuildでコンテナイメージを作成するための準備の流れ」の各手順に関してご説明します。
手順1:Dockerをインストール
「手順1:Dockerをインストール」に関してご説明します。
Dockerのコンテナイメージを作成するためには、Dockerをインストールする必要があります。
「Dockerのインストール手順」に関しては、以下の記事「ステップ1:Dockerをインストール」をご覧ください。
既にDockerをインストールされている方は、本手順を省略してください。
以上で、「手順1:Dockerをインストール」は完了です。
手順2:Dockerを起動【コンテナイメージ作成に必要】
「手順2:Dockerを起動」に関してご説明します。
Dockerのコンテナイメージを作成するためには、Dockerを起動する必要があります。
Dockerを起動するために、以下のコマンドを「端末」または「ターミナル」で順に実行してください。
# systemctl start docker
# systemctl status docker | grep running
Active: active (running) since 土 2021-05-31 01:14:44 JST; 1min 27s ago
#
コマンド実行後、「running」が表示された場合、「正常にDockerが起動した」と判断できます。
以上で、「手順2:Dockerを起動」は完了です。
上記の流れで、Dockerfileとdocker buildコマンドでDockerのコンテナイメージを作成するための準備ができました。
DockerfileとbuildでDockerコンテナイメージを作成する手順
「Dockerfileとdocker buildコマンドでDockerコンテナイメージを作成する手順」に関してご紹介します。
★Dockerfileとdocker buildコマンドでコンテナイメージを作成する流れ★
手順1:Dockerコンテナイメージで動作させたいプログラムの作成
手順2:Dockerfileの作成
手順3:Dockerfileとdocker buildコマンドでDockerコンテナイメージの作成
手順4:作成したDockerコンテナイメージの動作確認
上記の流れで、「Dockerfileとdocker buildコマンドでコンテナイメージを作成」ができます。
上記の各手順は、以下の日時と環境で動作確認済みです。
動作確認済み日時:2021年5月31日
動作確認済み環境:CentOS Linux release 7.7.1908 (Core)
以降で、上記「Dockerfileとdocker buildコマンドでコンテナイメージを作成する流れ」の各手順に関してご説明します。
手順1:Dockerコンテナイメージで動作させたいプログラムの作成
「手順1:Dockerコンテナイメージで動作させたいプログラムの作成」に関してご説明します。
Dockerコンテナイメージで動作させたいプログラムを作成しましょう。今回は、「PythonのFastAPIでREST API(GET)」をDockerコンテナイメージ内で動作させます。
Dockerコンテナイメージ内で動作させる「PythonのFastAPIでREST API(GET)の作成手順」に関しては、以下の記事をご覧ください。
以上で、「手順1:Dockerイメージ内で動作させたいプログラムの作成」は完了です。
手順2:Dockerfileの作成【docker buildを実行するために必要】
「手順2:Dockerfileの作成」に関してご説明します。
Dockerコンテナイメージを作成するためには、Dockerfileが必要です。
★Dockerfileとは★
Dockerのコンテナイメージを作成する元となるファイルです。Dockerfileには、「パッケージのインストール」や「アプリの起動コマンド」などを記載します。
Dockerfileとは(公式サイト)
「PythonのFastAPIでREST API(GET)を起動する」コンテナイメージを作成するために、以下のDockerfileを作りましょう。
FROM python:3.8-alpine
# コンテナイメージ内において、作業用ディレクトリ(/app)を作成
WORKDIR /app
# 「PythonのFastAPIでREST API(GET)を実現する」プログラムを/appへコピー
COPY requirements.txt .
COPY main.py .
# コンテナイメージ内で必要なパッケージをインストール
RUN apk add --no-cache build-base \
&& pip install --no-cache-dir --trusted-host pypi.python.org -r requirements.txt \
&& apk del build-base
# コンテナイメージ内で、 「PythonのFastAPIでREST API(GET)を実現する」プログラムを8000ポートで起動
EXPOSE 8000
CMD ["uvicorn", "main:app", "--reload", "--host", "0.0.0.0", "--port", "8000"]
上記のファイルを「Dockerfile」というファイル名で保存しましょう。
以上で、「手順2:Dockerfileの作成」は完了です。
手順3:Dockerfileとdocker buildコマンドでDockerコンテナイメージの作成
「手順3:Dockerfileとdocker buildコマンドでDockerコンテナイメージの作成」に関してご説明します。
「PythonのFastAPIでREST API(GET)」を起動するDockerコンテナイメージを作成しましょう。
「PythonのFastAPIでREST API(GET)」を起動するDockerのコンテナイメージを作成するために、以下のディレクトリ構成になっているか確認してください。
# cat requirements.txt
uvicorn
fastapi
# tree
.
├── Dockerfile # 手順2で作成したDockerfile
├── main.py # 手順1で作成したPythonのプログラム
└── requirements.txt
0 directories, 3 files
#
Dockerコンテナイメージを作成するために、以下のコマンドを順に実行します。
# docker build -t fastapi:1 .
# docker images | grep fastapi
fastapi 1 5950e0da1480 6 seconds ago 51.9MB
コマンド実行後、「fastapi 1」が出力された場合、「Dockerfileとdocker buildコマンドでDockerコンテナイメージを正常に作成できた」と判断できます。
docker buildコマンドの記述形式が気になる方は、以下の公式サイトを確認してください。
docker buildコマンドのリファレンス(公式サイト)
以上で、「手順3:Dockerfileとdocker buildコマンドでDockerコンテナイメージの作成」は完了です。
手順4:作成したDockerコンテナイメージの動作確認
「手順4:作成したDockerコンテナイメージの動作確認」に関してご説明します。
作成したDockerコンテナイメージを起動して、動作を確認してみましょう。
手順3で作成したDockerコンテナイメージを起動するために、以下のコマンドを実行して下さい。
# docker run -p 8000:8000 -ti fastapi:1
コマンド実行後、Dockerコンテナイメージ内で起動した「PythonのFastAPIでREST API(GET)」プログラムの動作確認をするために、以下のコマンドを実行しましょう。
# curl http://127.0.0.1:8000/
{"text":"hello!!"}
コマンンド実行後、上記のように「{“text”:”hello!!”}」が出力された場合、「正常にDockerコンテナイメージが動作した」と判断できます。
以上で、「手順4:作成したDockerコンテナイメージの動作確認」は完了です。
上記の流れで、自分自身で作成したプログラムをDockerのコンテナイメージ化することができました。
ちなみに、「dockerの使い方をもっと知りたい」方は、以下の参考書がオススメです。
動画で学びたいという方には、以下がオススメです。
【まとめ】DockerfileとbuildでDockerイメージを作成する手順
今回の記事を通して、「DockerfileとbuildでDockerイメージを作成する手順」をご紹介することで、以下の悩みを解消しました。
★悩み★
・Dockerのコンテナイメージを作成する手順を知りたいな。
・コンテナイメージを作りたいけど、Dockerfileの作り方が分からないな。
・Dockerfileとdocker buildコマンドでコンテナイメージをどう作るのかな。
「Dockerfileとdocker buildコマンドでDockerコンテナイメージを作成する手順は?」で悩んでいるあなたにこの記事が少しでも役に立てれば幸いです。
コメント