- Dockerを使い始めたけどDockerfileで使えるコマンドがよくわからないので調べてみました
- 公式にDockerfile Referenceがあるので実はそんなに困らないですが…
FROM
- ベースイメージを指定します
- 必須
MAINTAINER
- イメージの作成者を記述できます
RUN
- コマンドを実行します
- パッケージのインストールなどで多用するコマンドです
CMD
- docker run時に実行されるコマンドです
- /bin/sh -c で実行されるようです
EXPOSE
- 外部に公開するポートを指定します
ENV
- 環境変数を設定します
ADD
- 指定したファイル・ディレクトリをコンテナ内にコピーします
- URLの指定が可能
- tarファイルは自動解凍する
COPY
- こちらも指定したファイル・ディレクトリをコンテナ内にコピーします
- URLの指定不可、自動解凍もしません
-
ADD
は不要な処理までし兼ねないのでこちらを使ったほうが安全な場合があるようです
-
ENTRYPOINT
- docker run時に実行されるコマンドです
-
CMD
とよく似ていますが、多少違いがあるようです- Dockerfile の書き方「私的」なベストプラクティスなどで解説されてます
- docker runの引数で指定されたCMDがENTRYPOINTの引数として扱われるようです
VOLUME
- 外部からマウント可能なボリュームを指定します
- データの永続化が可能となります
USER
- コンテナで使用されるユーザ名/UIDです
WORKDIR
- 作業ディレクトリを変更します
- cdをイメージすると良さそうです
ONBUILD
- 次のビルドの最後に実行されるコマンドを仕込むことができます
- DockerfileのONBUILDで具体的に解説されてます