このドキュメントで説明されているソフトウェアはサポートされていないか、拡張サポートが提供されています。
現在サポートされているリリースにアップグレードすることをお薦めします。

4.10 ラベルを使用したメタデータの定義

バージョン1.6.0のDockerから、ラベルを使用してDockerデーモンやDockerコンテナおよびDockerイメージにメタデータを追加できるようになりました。

Dockerfileでは、次のようにLABEL命令により、1つ以上のキーと値のペアを含むイメージ・ラベルを定義します。

LABEL com.mydom.dept="ITGROUP" \
      com.mydom.version="1.0.0-ga" \
      com.mydom.is-final \
      com.mydom.released="June 6, 2015"

この例では、名前空間の競合を防ぐために、逆引きDNSフォーマット(com.mydom.)で各キー名の先頭にデーモン名が付けられています。 各キーは常に文字列として表され、Dockerによって解釈されません。 値を省略すると、メタデータ内のキーの有無を使用して、リリース・ステータスなどの情報をエンコードできます。 バックスラッシュ文字を使用すると、ラベル定義を複数の行にわたって拡張できます。

次のように、docker inspectコマンドを使用して、イメージに関連付けられているラベルを表示できます。

$ docker inspect 7ac15076dcc1
...
"Labels": {
    "com.mydom.dept": "ITGROUP",
    "com.mydom.version": "1.0.0-ga",
    "com.mydom.is-final": "",
    "com.mydom.release-date": "June 6, 2015"
}
...

次のように、docker imagesおよびdocker psコマンドで--filter "label=key[=value]"オプションを指定して、メタデータ値が設定されているイメージおよび実行中のコンテナをリストできます。

$ docker images --filter "label=com.mydom.dept='DEVGROUP'"
$ docker ps --filter "label=com.mydom.is-beta2"
$ docker ps --filter "label=env=Oracle\ Linux\ 6"

コンテナについては、次のようにdocker createおよびdocker runコマンドで--label key=[value]オプションを使用して、キーと値のペアを定義できます。

$ docker run -i -t --rm testapp:1.0 --label run="11" --label platform="Oracle Linux 6"

Docker Engineについては、--label key=[value]オプションを使用するか(コマンドラインからdockerを開始する場合)、またはDocker構成ファイル/etc/sysconfig/dockerを編集することができます。

OPTIONS="--label com.mydom.dept='DEVGROUP'"

コンテナおよびDockerデーモンは一時的なものであり、既知の環境で実行されているので、通常は、キー名に逆引きドメイン名の接頭辞を適用する必要はありません。