今回は、Dcokerfileについて調べてみようと思います。
Dockerfileとは
Dockerイメージを作る時に必ず必要な設定ファイルです。このファイル内に作成されたインストラクションを参照してイメージが作られます。
基本的にDcokerfileという名前を使用し、ファイル名を変更したい場合はBuild時に追加オプションを与えなければならないです。(-f)
インストラクション
FROM
該当Dockerイメージのベースイメージを指定します。
mysqlを指定する場合は、以下となります。

COPY
- ホストマシンのファイルやディレクトリをDockerコンテナ内にコピーします。
- イメージがBuildされる時1回のみ実行されます。

RUN
- Dockerイメージを実行する命令を定義します。(Docker内で。)
- COPYと同じく、Buildされる時1回のみ実行されます。
- 特に命令がない場合は、使用しないです。
以下はTest.javaをjavacでコンパイルしています。

ADD
基本はCOPYと同じで、以下の機能が追加であります。
- sourceがremote URLであればダウンロード後、destinationにコピーします。
- sourceがよく使われている圧縮ファイルの形式(zipなど)であれば、解凍をしてくれます。
- sourceがremote URL + 圧縮ファイルの形式であれば、解凍しません。
CMD
コンテナ内で実行するプロセス(命令)を指定します。これはイメージを実行するたびに実行される命令です。
CMDはDockerfile内に1つだけ作成できます。複数作成すると一番最後にある命令だけが実行されます。
以下はmysqldを実行しています。

終わりに
今日、調べたインストラクション意外にもいくつかのインストラクションが存在しているようですが、現在は使っていないため、使っているインストラクションのみ調べてみました。
Spring本が読み終わったらDockerの本を読んでみたいと思います。運用やチーム作業にも効率が爆発的に上がるので、知っておく必要を感じました。。

「Dockerfileとは」への1件のフィードバック