あったらいいなDockerオプション設定一覧

## 概要

あったらいいなDockerオプション設定一覧の作成

:::note warn
抜けている部分もあります。
詳細は公式リファレンスを確認してください。
:::


## オプション設定表

| docker-compose | Dockerfile | 意味 |
|-------------------| ---------------------|------------|
| build   || 構築時に適用するオプションを指定します。 |
| context| | Dockerfile があるディレクトリのパスや Git リポジトリの URL を指定（相対パス）|
|dockerfile |  | Dockerfile の代わりになるものです。 |
|args | ARG| 構築時に build のオプション（args）を追加。値によって環境構築を変える時に利用|
|cap_add, cap_drop| | コンテナのケーパビリティ（capabilities）を追加・削除する |
|command|CMD|デフォルトのコマンドを上書きする|
|cgroup_parent　|　|コンテナに対し、オプションの親グループを指定します。|
|container_name||デフォルトで生成される名前の代わりに、カスタム・コンテナ名を指定します。|
|devices||デバイス・マッピングの一覧を表示します。docker クライアントで作成する際の --device と同じ形式を使います。|
|depends_on||サービス間の依存関係を指定する。<br>`docker-compose up` の場合、 依存関係のある順番に従ってサービスを起動します。<br>`docker-compose up サービス（の名称） `の場合、自動的に サービス の依存関係を処理します。
|dns||DNS サーバの設定を変更します。|
|dns_search||DNS の検索ドメインを変更します。|
|tmpfs||コンテナ内にテンポラリ・ファイルシステムをマウントします。|
|entrypoint|ENTRYPOINT|デフォルトの entrypoint を上書きします。|
|env_file||ファイル上の定義から環境変数を追加します。|
|environment|ENV|環境変数を追加します。|
|expose|EXPOSE|ホストマシン上で公開するポートを指定せずに、コンテナの公開（露出）用のポート番号を指定します。<br>これらはリンクされたサービス間でのみアクセス可能になります。内部で使うポートのみ指定できます。|
|extends||現在のファイルから別のファイルにサービスを拡張するもので、設定のオプションを追加します。|
|external_links||対象の docker-compose.yml の外にあるコンテナだけでなく、Compose の外にあるコンテナとリンクします。|
|extra_hosts||ホスト名を割り当てます。|
|image||コンテナを実行時に元となるイメージを指定します。|
|labels|LABEL|Docker ラベル を使いコンテナにメタデータを追加します。|
|links||コンテナを他のサービスとリンクします。|
|logging||サービスに対してログ記録の設定をします。|
|network_mode||ネットワーク・モードです。 docker クライアントで --net パラメータを使うのと同じ働きです|
|networks||ネットワークに参加する時、トップ・レベルの network キー のエントリを参照します。|
|aliases||エイリアス（ホスト名の別名）は、ネットワーク上のサービスに対してです。同一ネットワーク上の他のコンテナが、サービス名またはこのエイリアスを使い、サービスのコンテナの１つに接続します。|
|IPv4 アドレス、IPv6 アドレス||サービスをネットワークに追加する時、コンテナに対して静的な IP アドレスを割り当てます。|
|pid||PID モードはホストの PID モードを設定します。有効化したら、コンテナとホスト・オペレーティング・システム間で PID アドレス空間を共有します。<br>コンテナにこのフラグを付けて起動したら、他のコンテナからアクセスできるだけでなく、ベアメタル・マシン上の名前空間などから操作できるようになります。|
|ports||公開用のポートです。<br>ホスト側とコンテナ側の両方のポートを指定（ ホスト側:コンテナ側 ）できるだけでなく、コンテナ側のポートのみも指定できます（ホスト側はランダムなポートが選ばれます）。|
|security_opt||各コンテナに対するデフォルトのラベリング・スキーマ（labeling scheme）を上書きします。|
|stop_signal||コンテナに対して別の停止シグナルを設定します。デフォルトでは stop で SIGTERM を使います。 stop_signal で別のシグナルを指定したら、 stop 実行時にそのシグナルを送信します|
|ulimits||コンテナのデフォルト ulimits を上書きします。|
|volumes, volume_driver|VOLUME|マウント・パスまたは名前を付けたボリュームは、オプションでホストマシン（ ホスト:コンテナ ）上のパス指定や、アクセス・モード（ ホスト:コンテナ:rw ） を指定できます。 |
|volumes_from||他のサービスやコンテナ上のボリュームをマウントします。オプションで、読み込み専用のアクセス（ ro ）や読み書き（ rw ）を指定できます。|
||MAINTAINER|生成するイメージの Author （作者）フィールドを指定します。|
||RUN|既存イメージ上の新しいレイヤで、あらゆるコマンドを実行し、その結果をコミットする命令です。コミットの結果得られたイメージは、 Dockerfile の次のステップで使われます。|
||COPY| <ソース> にある新しいファイルやディレクトリをコピーするもので、コンテナ内のファイルシステム上にある <送信先> に指定されたパスに追加します。|
||USER|ユーザ名か UID を使います。|
||WORKDIR| Dockerfile で RUN 、 CMD 、 ENTRYPOINT 、 COPY 、 ADD 命令実行時の作業ディレクトリ（working directory）を指定します。もし WORKDIR が存在しなければ、 Dockerfile 命令内で使用しなくてもディレクトリを作成します。|
||ONBUILD|メージに対して最終的に実行する トリガ 命令を追加します。|
||STOPSIGNAL|コンテナを終了する時に送信するための、システム・コール・シグナルを設定します。|
||HEALTHCHECK|・HEALTHCHECK [オプション] CMD コマンド （コンテナ内でコマンドを実行して、コンテナの正常性を確認）<br>・HEALTHCHECK NONE （ベース・イメージからのヘルスチェック継承を無効化）|
||SHELL|シェル形式でコマンド実行時における、デフォルトのシェルを上書きします。|


## おわりに
`Dockerfile`, `docker-compose.yml`で設定可能なオプションについてまとめました。

## 参考

[Compose ファイル・リファレンス](https://docs.docker.jp/v1.12/compose/compose-file.html#network-configuration-reference)
[Dockerfile リファレンス](https://docs.docker.jp/v1.12/engine/reference/builder.html#copy)