はじめに
Dockerイメージから特定のラベルが含まれているか判定する方法を解説します。
Dockerのラベル
まず、そもそもDockerのラベルについて、簡単に解説します。
Dockerのラベルは、イメージやコンテナに付与できるメタデータです。Dockerfileでは、LABELというインストラクションで設定できます。
Docker object labels
Learn about labels, a tool to manage metadata on Docker objects.
このDockerのラベルですが、**OCI Image Specificationではアノテーション(Annotation)**と呼ばれています。
image-spec/annotations.md at main · opencontainers/image-spec
OCI Image Format. Contribute to opencontainers/image-spec development by creating an account on GitHub.
特定のラベルがあるか判定
一覧を取得する
docker inspectとjqコマンドでラベル一覧を取得できます。
1docker inspect <image name or image ID> --format="{{json .Config.Labels}}" | jq1❯ docker inspect nginx --format="{{json .Config.Labels}}" | jq
2{
3 "maintainer": "NGINX Docker Maintainers <[email protected]>"
4}見つからない場合にエラーコードを返す
さらにgrepコマンドを使うことで、見つからない場合にエラーコード1を返すようにできます。
1docker inspect <image name or image ID> --format="{{json .Config.Labels}}" | jq | grep <pattern>echo $?で確認すると、マッチするラベルがあれば0を、見つからない場合は1が返ってきていることが確認できます。
1❯ docker inspect nginx --format="{{json .Config.Labels}}" | jq | grep hoge
2
3❯ echo $?
41
5
6❯ docker inspect nginx --format="{{json .Config.Labels}}" | jq | grep maintainer
7 "maintainer": "NGINX Docker Maintainers <[email protected]>"
8
9❯ echo $?
100参考
Share
関連記事
Docker Composeでfirestoreのローカル環境を構築
2024.05.13
【Docker】レジストリとリポジトリ
2021.08.29
Docker Composeでコンテナ間通信
2021.10.08
【Docker】Data Volumeで永続データを扱う
2021.09.12




