ざっくりとまとめておきます。公式ドキュメントもあるので、そちらで確認するとより深い理解ができるはずです。私も読んでおきます。
Dockerfileで使っているコードの意味
結論
- FROM ベース(親)画像を指定します。
- LABEL メタデータを提供します。 メンテナ情報を含めるのに良い場所です。
- ENV 永続的な環境変数を設定します。
- RUN コマンドを実行してイメージレイヤを作成します。 パッケージをコンテナにインストールするために使用されます。
- COPY ファイルとディレクトリをコンテナにコピーします。
- ADD ファイルとディレクトリをコンテナにコピーします。 ローカルの.tarファイルをアンパックできます。
- CMD 実行中のコンテナにコマンドと引数を提供します。 パラメータは上書きできます。 CMDは1つだけです。
- WORKDIR あとに続く説明の作業ディレクトリを設定します。
- ARG ビルド時にDockerに渡す変数を定義します。
- ENTRYPOINT 実行中のコンテナにコマンドと引数を提供します。 引数は存続します。
- EXPOSE ポートを公開します。
- VOLUME 永続データにアクセスして保存するためのディレクトリマウントポイントを作成します。
- Docker公式ドキュメント