escape |
Dockerfile が現状唯一サポートしている Parser Directive。 Dockerfile 内でエスケープする文字を指定することができる。デフォルトだと \(バックスラッシュ) が指定されている。 |
FROM |
- build stage を初期化して(multi stage build とかやる場合は、複数回 FROM を書くことになる)、ベースイメージをセットするためのコマンド。 - だいたいは公式にリリースされているイメージから引っ張ってくることが多い。 - ARG コマンドは唯一 FROM の前に来ていいコマンド。 |
RUN |
ビルド時に任意のコマンドを実行できるコマンド。 RUN の場合、 /bin/sh -c 。 RUN ["exec", "foo", "bar"] の場合、他の "exec" の部分で /bin/bash とか指定できる。 |
CMD |
- docker run か docker-compose run を実行するときに実行されるコマンド。 ENTRYPOINT あとに書けば追加の引数になる(その場合はJSON形式で書く必要がある)。 |
LABEL |
イメージにメタデータを付与するコマンド。バージョンはいくつだとか、作成者の名前とかをキーバリューで記入したりするのに使う。 |
MAINTAINER |
非推奨。作成者の名前をイメージに付与するコマンド。 LABEL の方を使うべき。 |
EXPOSE |
コンテナが公開するポートを指定するコマンド。ただ、これはコンテナ側から公開するだけなので、実際にホスト側からアクセスするには、 docker run -p 80:80 みたいな感じでバインドする必要がある。このあたりは、 docker-compose.yml で管理する方がシンプルな気がする。 |
ENV |
環境変数をセットするコマンド。 Dockerfile 内で定義して以降、使い回したり、値を上書きできたりする。 |
ADD |
- ホスト側のファイルをイメージ側の指定したディレクトリにコピーするコマンド。 - コピーするファイルが前回ビルドしたときから変わった場合、その ADD 以降のコマンドのキャッシュはすべて破棄される。 - gzip, bzip2 などの圧縮ファイルをコピーする場合、解凍してコピーされる。動きとしては tar -x と同じ。 |
COPY |
- ホスト側のファイルをイメージ側の指定したディレクトリにコピーするコマンド。 |
ENTRYPOINT |
- docker run か docker-compose run を実行するときに実行されるコマンド。実行時に CLI 上から引数を受け取ることができる。 |
VOLUME |
ホスト側のデータをマウントするディレクトリを指定するコマンド。 |
USER |
コンテナ内でのユーザー/グループ名を指定するコマンド。何も指定しない場合は root@imageID:/ のように root ユーザーが指定される。 |
WORKDIR |
作業ディレクトリを指定(ない場合は新しく作成)するコマンド。 |
ARG |
CLI 上から引数を代入するキーを指定するコマンド。 ARG <key> といった感じに書いておいて、 --build-arg <key>=<value> オプションで代入することで、 Dockerfile 内で の値は使い回しすることができる。 |
ONBUILD |
あるイメージをベースイメージとして他で使用する( FROM で引っ張ってくる)タイミングで実行するコマンド。 |
STOPSIGNAL |
コンテナを終了させる際に送信されるシグナル( man signal で出てくるシグナル)を指定するコマンド。正直言って何に使うのか皆目見当もつかない。 |
HEALTHCHECK |
コンテナを立ち上げている最中に一定間隔でCMDを実行させるコマンド。 |
SHELL |
Dockerfile 内で実行されるシェルコマンドの形式を上書きするコマンド。 Linux 環境の場合だと、デフォルトで /bin/sh -c として実行されるが、これを /bin/bash とかに変更できたりする。 |