Dockerについて勉強しようと思ったので、メモがてらに書きます。
Dockerfileとは
このファイルに書いた通りの環境が構築できるような感じです。
どんなイメージをベースにするのか、走らせたいコマンドはあるかなど、ここでちゃんと指定しないと上手く動かなかったり、コンテナごとの設定が変わったりします。
どうやって指定するのか
主に使われる命令コードは以下のリストです。
FROM: ベース(親)画像を指定します。
LABEL: メタデータを提供します。 メンテナ情報を含めるのに良い場所です。
ENV: 永続的な環境変数を設定します。
RUN: コマンドを実行してイメージレイヤを作成します。 パッケージをコンテナにインストールするために使用されます。
COPY: ファイルとディレクトリをコンテナにコピーします。
ADD: ファイルとディレクトリをコンテナにコピーします。 ローカルの.tarファイルをアンパックできます。
CMD: 実行中のコンテナにコマンドと引数を提供します。 パラメータは上書きできます。 CMDは1つだけです。
WORKDIR: あとに続く説明の作業ディレクトリを設定します。
ARG: ビルド時にDockerに渡す変数を定義します。
ENTRYPOINT: 実行中のコンテナにコマンドと引数を提供します。 引数は存続します。
EXPOSE: ポートを公開します。
VOLUME: 永続データにアクセスして保存するためのディレクトリマウントポイントを作成します。
docker build
を実行するとこのファイルで指定した命令通りにコンテナが作られます。