こんにちは、インフラエンジニアのryuです。
今回は、初心者向けにDockerfileとは何かを説明します。Dockerfileは、Dockerイメージを作成するための設定ファイルです。Dockerfileの概要を理解して、Dockerfileの書き方をマスターしましょう。Dockerfileの書き方やDockerfileからイメージを作成する方法を解説します。
目次
Dockerfileとは?
Dockerfileって何ですか?
Dockerfileとは、Dockerイメージを作成するための設定値が書かれたファイルです。
今回の記事では、Dockerfileについて解説したいと思います。
前回までの記事で、DockerHubからDockerイメージを取得して、コンテナを起動しました。今回はDockerイメージを自分で作成してみましょう。そのために必要なものがDockerファイルです。
以前の記事はこちら↓
ではまず、Dockerfileが何なのか詳しく説明します。
Dockerイメージを作成するために必要なDockerfile
Dockerfileとは、Dockerイメージを作成するために必要な設定ファイルのことです。
この設定ファイルをビルドすることでDockerイメージが作成されます。
Dockerfileは、Dockerイメージの基となるファイルです。つまり、プログラムを動作させるサーバーなどの情報が記載されたファイルになります。
Dockerfileの作り方や、ビルドするコマンドも順番に解説します。
Dockerfileの書き方
では、Dockerfileを作成してみましょう。Dockerfileの書き方を解説します。
まず、ファイルを作成します。ファイル名は”Dockerfile”という名前で作成しましょう。
次にファイルの中身を編集しましょう。
FROM nginx
このような感じです。
Dockerfileの中身について
ファイルの中身について解説します。
「FROM」では、イメージの元となるイメージを指定します。nginxはwebサーバーの一つです。
まずはこの状態でDockerイメージを作成しましょう。
Dockerfileでは他にも様々な設定ができます。その他の設定は記事の後半で解説します!
DockerファイルからDockerイメージを作成してみよう!
次に、DockerファイルからDockerイメージを作成してみましょう。使用するコマンドは”docker build”です。
Dockerfileからイメージを作成する
“docker build”コマンドの使い方は以下の通り。
docker build -t nginx .
docker build [option] [path]
実行するとこのようになります。
コマンドの最後に「.(ピリオド)」があることに注意してください。これは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ファイルで使われるコマンドについて解説します。
Dockerfileの文法について
ここからはDockerfileの詳しい書き方を解説します。先ほどの例では、”FROM nginx”しか書いていません。
FROMコマンド以外にもいくつかのコマンドがあります。主な物は以下の通りです。
Dockerfileで使用する主なコマンド
Dockerfileで良く使う設定を紹介します。
- RUN・・・コマンドの実行
- CMD・・・コンテナ実行時のデフォルト処理を設定
- ENV・・・環境変数の設定
- ADD・・・ファイルの追加
- ENTRYPOINT・・・コンテナを実行モジュールのようにして実行する設定
- VOLUME・・・マウントポイントの作成
- USER・・・後続のコマンドを指定したユーザーで実行
- WORKDIR・・・
使い方の詳細はDockerのドキュメントをご覧ください。
https://docs.docker.jp/engine/reference/builder.html
Dockerfileとは?まとめ
これでDockerファイルの作成方法の解説を終わります。Dockerファイルを自分で設定できるようになると、簡単にインフラを作ることができるので、初心者ぜひ覚えておきましょう!
次回の記事では、今回作成したDockerイメージをDockerHubにpushする方法を解説します。ぜひご覧ください。
Dockerfileについてさらに勉強したい方はUdemyがおすすめ
Dockerfileについてさらに勉強したい方はUdemyがおすすめです。UdemyはITの講座が豊富にあるサイトです。参考書での勉強が苦手な方にはおすすめです。
以下のように、Dockerに関する講座が豊富にあります!
- セールだと1500円前後!
- 無料サンプル講義動画・無料講義動画あり!
- 気に入らなければ30日間返金保証!