こんにちは、インフラエンジニアの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によるアプリケーション実行環境構築