Docker

【初心者向け】Dockerファイルとは?書き方を解説【Docker入門④】

こんにちは、インフラエンジニアのryuです。

今回は、初心者向けにDockerファイルとは何かを説明します。Dockerファイルとは、Dockerイメージを作成するための設定ファイルです。Dockerファイルの概要を理解して、Dockerファイルの書き方をマスターしましょう!

Dockerファイルとは?

Dockerファイルって何ですか?

Dockerファイルとは、Dockerイメージを作成するための設定値が書かれたファイルです。

今回の記事では、Dockerファイルについて解説したいと思います。

前回までの記事で、DockerHubからDockerイメージを取得して、コンテナを起動しました。今回はDockerイメージを自分で作成してみましょう。そのために必要なものがDockerファイルです。

前回までの記事はこちら↓

ではまず、Dockerファイルが何なのか詳しく説明します。

Dockerイメージを作成するために必要なDockerファイル

DockerファイルとはDockerイメージを作成するために必要な設定ファイルのことです。

この設定ファイルをビルドすることでDockerイメージが作成されます。

Dockerファイルがどんなものか理解できましたか?

Dockerファイルの作り方や、ビルドするコマンドも順番に解説します。

Dockerファイルの書き方

では、Dockerファイルを作成してみましょう。Dockerファイルの書き方を解説します。

まず、ファイルを作成します。ファイル名は”Dockerfile”という名前で作成しましょう。

次にファイルの中身を編集しましょう。

FROM nginx

このような感じです。

「FROM」イメージの元となるイメージを指定します。nginxはwebサーバーの一つです。

まずはこの状態でDockerイメージを作成しましょう。

「FROM」以外にも様々な設定ができます。その他の設定は記事の後半で解説します!

DockerファイルからDockerイメージを作成してみよう!

次に、DockerファイルからDockerイメージを作成してみましょう。使用するコマンドは”docker build”です。

“docker build”コマンドの使い方は以下の通り。

docker build -t nginx .
docker build [option] [path]

実行するとこのようになります。

“docker build”コマンドの最後に「.(ピリオド)」があることに注意してください。これはDockerファイルのある場所を指定します。「.(ピリオド)」は現在いる場所(カレントディレクトリ)を指定しています。

つまりカレントディレクトリにDockerファイルを保存しておく必要があります。

また”-t”のオプションでイメージに名前を付けています。

“docker image ls”コマンドを使用して、イメージが作成されていることを確認しましょう。

このようにnginxのイメージが作成されています。

nginxのイメージを起動させてみる

次に作成したイメージを起動させてみましょう。nginxはWebサーバーなので、Webページが見れたら成功です。

イメージを起動させるには”docker run”コマンドを使用します。詳しくは前回の記事で解説しているので、よく分からな方はこちらをご覧ください。

コマンドは以下のようになります。

docker run -d -p 8080:80 --name nginx nginx

前回の記事では無かった“-p”のオプションについて、解説します。“-p”のオプションでローカルPCのポートとコンテナのポートを結び付けます。nginxはtcp/80ポートでWebのリクエストを受け取ります。そのポートと自分のPCをマッピングしています。

イメージはこのような感じです。

ブラウザで確認してみましょう。ブラウザのURLを入力するところに”http://127.0.0.1:8080″と入力しましょう。そうすると自分のPCの8080ポートにrequestを投げます。

“-p”オプションでローカルPCの8080番ポートとコンテナの80番ポートがマッピングされているため、nginxのWebページがブラウザ上で表示されます。

ここまでで、Dockerファイルを作成して、コンテナ起動の流れを解説しました。次にDockerファイルで使われるコマンドについて解説します。

Dockerファイルのコマンド

次にDockerファイルの詳しい書き方を解説します。先ほどの例では、”FROM nginx”しか書いていません。

FROMコマンド以外にもいくつかのコマンドがあります。主な物は以下の通りです。

主なコマンド

Dockerfileで良く使う設定を紹介します。

  • RUN・・・コマンドの実行
  • CMD・・・コンテナ実行時のデフォルト処理を設定
  • ENV・・・環境変数の設定
  • ADD・・・ファイルの追加
  • ENTRYPOINT・・・コンテナを実行モジュールのようにして実行する設定
  • VOLUME・・・マウントポイントの作成
  • USER・・・後続のコマンドを指定したユーザーで実行
  • WORKDIR・・・

使い方の詳細はDockerのドキュメントをご覧ください。

https://docs.docker.jp/engine/reference/builder.html

Dockerファイルのサンプル

こちらがDockerファイルのサンプルになります。nodeのイメージを作成します。

FROM node:latest

WORKDIR /node
COPY . .

RUN npm install \
 && useradd -g node \
 && mv /root/.config /home/node/ \
 && chown -R node:node /scripts /home/node/.config

USER node

CMD ["npm", "start"]

先ほど説明した”docker build”コマンドを使用して、どのようなイメージが作成されるのか確認してみてください。

これでDockerファイルの作成方法の解説を終わります。Dockerファイルを自分で設定できるようになると、簡単にインフラを作ることができるので、初心者ぜひ覚えておきましょう!

次回の記事では、今回作成したDockerイメージをDockerHubにpushする方法を解説します。ぜひご覧ください。

Dockerをさらに詳しく勉強したい方はこちらのUdemyの講座が分かりやすいです。↓

ゼロからはじめる Dockerによるアプリケーション実行環境構築

ABOUT ME
ryu
大手メーカのIT部門でインフラエンジニアやってます。 サーバ、ネットワーク、セキュリティ、クラウドについて投稿します。 AI、ARも勉強中です! youtubeでも技術ネタを発信していきます。↓のアイコンよりご覧ください!