More than 5 years have passed since last update.
Dockerfile のコマンド一覧
25
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 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 とかに変更できたりする。 |
参考文献
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme
