LoginSignup
22
28

More than 5 years have passed since last update.

Dockerfile のコマンド一覧

Last updated at Posted at 2018-11-18

前提

  • FROM と RUN くらいしか使ったことない
  • ドキュメントをなめたことない

といった方向け(つまり自分向け)

環境

  • Docker v18.09

TL;DR

コマンド名 詳細
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 rundocker-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 rundocker-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 とかに変更できたりする。

参考文献

22
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
28