【Ubuntu + Nginx】Dockerfile を使った Docker イメージの作成手順

Windows

Dockerfile を使った Docker イメージの作成手順

前回の記事で、コマンドのみで Docker イメージを作成する手順を解説いたしました。



その中で紹介した手順では、1つ1つコマンドを実行し Web サイトとして機能する Docker イメージを作成する方法です。
しかし、それではあまり効率的とは言えません。近年、クラウド化の流れにともない「環境構築はコードで自動化を!」という、Infrastructure as Code(IaC)の考え方が定着してきました。
Docker イメージを作成する場合も同様で IaC の考え方があり、それが Dockerfile にあたります。

そこで、今回は、Dockerfile を使った Docker イメージの作成方法を解説したいと思います。



スポンサーリンク

スポンサーリンク

スポンサーリンク

事前準備

まず、事前準備として Dcoker Engine の設定を変更します。もしかすると、Dcoker Engine の設定は変更しなくてもよいのかもしれませんが、著者の環境では Dcoker Engine の設定を変更しなかった場合、ビルドができませんでした。


Docker Desktop for Windows のダッシュボードから、Setting を開き [Docker Engine] をクリックします。

画像クリックで拡大画像を表示します

buildkit を false に変更し、[Apply & Restart] をクリックすると、Docker が再起動され、buildkit の設定が反映されます。

これで、事前準備は完了です。




Dockerfile の準備

Dockerfile の準備手順を解説いたします。なお、Dockerfile の作成などの作業に関しては、Visual Studio Code(以下、VSCode と呼びます)から実行いたします。

VSCode の入手方法に関しては、別の記事でまとめています。VSCode の入手方法をご覧になりたい方はこちらをクリックしてください。


VSCode の起動

Ubuntu をターミナルから開き、VSCode を起動するため、以下のコマンドを実施します。

code .
画像クリックで拡大画像を表示します


本稿の手順では、Dockerfile を作成済みディレクトリ「/home/tamao/docker-test」に配置します。したがって、「code .」を実行するディレクトリは /home/tamao/docker-test」となります。



VSCode が起動できました。

画像クリックで拡大画像を表示します




Dockerfile の作成

続いて、Dockerfile の作成手順を解説いたします。


VSCode で [新しいファイル] をクリックし、ファイル名に Dcokerfile と入力します。

画像クリックで拡大画像を表示します
画像クリックで拡大画像を表示します




次に、作成した Dcokerfile に実行したい命令文を入力し保存します。

画像クリックで拡大画像を表示します

これで、Dcokerfile の準備が完了です。


以下は、Dcokerfile の入力例です。
Ubuntu を使い、パッケージのアップデート、タイムゾーンの変更、また、nginx をインストールを実行する命令文を入力しています。

FROM ubuntu:latest

ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update && apt-get install -y tzdata
RUN ln -fs /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
RUN dpkg-reconfigure --frontend noninteractive tzdata
RUN apt-get install -y nginx

CMD ["nginx", "-g", "daemon off;"]



Docker イメージとコンテナの作成

Dcokerfile が作成できたら、続いては、Docker イメージとコンテナの作成手順を解説いたします。

前提として、イメージやコンテナには何も設定していない状態から開始いたします。
なお、以下は「Docker Desktop for Windows」のダッシュボードから、Docker イメージとコンテナを確認した画面イメージです。何も設定されていないことがわかります。

画像クリックで拡大画像を表示します
画像クリックで拡大画像を表示します



Docker イメージの作成

では、Docker イメージの作成手順を解説いたします。


VSCode からターミナルを開きます。

画像クリックで拡大画像を表示します



次に、Docker イメージを作成するため、以下のコマンドを実施します。

docker build -t ubuntu-customize-image .
画像クリックで拡大画像を表示します
画像クリックで拡大画像を表示します




「docker」ウィンドウからイメージを確認します。

画像クリックで拡大画像を表示します

「ubuntu-customize-image」 という名前のイメージが作成できました。



コンテナの作成

続いて、コンテナの作成手順を解説いたします。


コンテナを作成するため、以下のコマンドを実施します。

docker run -it -d -p 8080:80 --name ubuntu-customize-container ubuntu-customize-image
画像クリックで拡大画像を表示します
画像クリックで拡大画像を表示します





「docker」ウィンドウからコンテナを確認します。

画像クリックで拡大画像を表示します

「ubuntu-customize-container」という名前のコンテナが作成できました。



「localhost:8080」にアクセスし、Web サイトの状況を確認します。

画像クリックで拡大画像を表示します

Nginx が実行しています。

Web サイトにアクセスすると Nginx のデフォルトページが表示されます。


Nginx はフォアグラウンドで起動しているため、「localhost:8080」にアクセスすると、Nginx のデフォルトページが表示されます。

Nginx のフォアグラウンド起動設定は、Dcokerfile の最後行です。




まとめ

以上が、Dockerfile を利用した、Docker イメージの作成手順となります。

いかがでしたでしょうか?

Dockerfile を利用すれば、Dockerfile に命令文に従い簡単に Docker イメージを作成することが可能です。
これで、環境構築作業で戸惑うことがなくなるのではないでしょうか。
手動で環境を構築していると作業ミスでハマって、思わぬ作業が追加される場合もあるかと思いますが、Dockerfile を使って Docker イメージを作成すれば、そんな心配も軽減できるはずです。

また、手動で Docker イメージを作成するよりも Dockerfile を使って Docker イメージを作成した方が、はるかに簡単ですので、Dockerfile を極めれば Docker を活用する上で非常に有利になると思いますので、よろしければ、Dockerfile を勉強してみてはいかがでしょうか。

Docker コマンドに関しては、Docker ドキュメント日本語化プロジェクトを参考にしています。



次回は、作成した Docker イメージを Docker Hub へプッシュし、その Docker イメージを使用する手順を解説いたします。よろしければご覧ください。





本稿をご覧になっていただいている読者様の中で、もし、インフラエンジニアを目指している方、もしくはインフラエンジニアに興味がある方がいらっしゃれば、スクールで学ぶことも「あり 」です。
いくつかインフラ系の技術が学べるスクールをピックアップいたしましたので、ご検討の一助となれば幸いです。

 スクール  受講料  受講期間  ポイント
ササエル 19,800円 14レッスン 初級のインフラエンジニアに特化したオンラインスクールです。インフラエンジニアを目指すなら、まずはここから!?
98,000円 15レッスン 初級の次は中級も学べます。
TechAcademy [テックアカデミー] 174,900円(※1) 4週間プラン コースにより、若干、インフラ要素あり。また、学べる言語が細分化されているので、目的に合ったコースが選べます。
【CCNAコース ウズウズカレッジ】 33,000円/月 1ヶ月~ 応募資格を満たしていれば、無料特待プランで受講料が無料!?
初心者OK!KENスクール 187,000円(※2) 50時間 ネットワークコースのLinuxレベル1取得講座。Webサーバーの構築まで学べます。
119,900円(※2) 30時間 ネットワークコースのWindows Server構築講座。クライアントOSの管理操作を学べます。
※1.フロントエンドコースの料金です。学生の場合、料金は163,900円と割引があります。
※2.スクール提携企業特別割引の場合、受講料が10~15% OFF、入会金無料。学生割引特典の場合、全講座料金 20% OFF。




最後までお読みいただきありがとうございました。


では。


スポンサーリンク

スポンサーリンク

Windows
スポンサーリンク
たまおをフォローする
スポンサーリンク
たまーのテクノロジー
タイトルとURLをコピーしました