ラベルでシークレットをフィルタリングする
このステップでは、ラベルに基づいてシークレットをフィルタリングする方法を学びます。ラベルは、シークレットを含む Docker オブジェクトに付けることができるキーと値のペアで、オブジェクトを整理して分類するために使用されます。ラベルでフィルタリングすることは、複雑な環境でシークレットを管理する強力な方法です。
まず、新しいシークレットを作成し、作成時にラベルを追加しましょう。labeled_secret
という名前のシークレットを作成し、environment=production
というラベルを追加します。
以下のコマンドを実行して、ラベル付きのシークレットを作成します。
echo "production_value" | docker secret create --label environment=production labeled_secret -
このコマンドは、前の docker secret create
コマンドと似ていますが、--label environment=production
フラグを追加して、シークレットにラベルを付けています。
次に、異なるラベルを持つ別のシークレットを作成しましょう。このシークレットの名前を dev_secret
とし、environment=development
というラベルを付けます。
以下のコマンドを実行します。
echo "development_value" | docker secret create --label environment=development dev_secret -
ここで docker secret ls
を使ってすべてのシークレットを一覧表示すると、3 つのシークレットがすべて表示されます。
docker secret ls
出力には、my_secret
、another_secret
、labeled_secret
、dev_secret
が表示されます。
environment=production
というラベルが付いたシークレットのみを表示するようにフィルタリングするには、--filter label=environment=production
オプションを使用できます。
以下のコマンドを実行します。
docker secret ls --filter label=environment=production
出力には labeled_secret
のみが表示されるはずです。
ID NAME CREATED
<secret_id_3> labeled_secret About a minute ago
同様に、environment=development
というラベルが付いたシークレットをフィルタリングするには、--filter label=environment=development
を使用します。
以下のコマンドを実行します。
docker secret ls --filter label=environment=development
これにより、dev_secret
のみが表示されます。
ID NAME CREATED
<secret_id_4> dev_secret About a minute ago
また、特定のラベルキーを持つシークレットを、その値に関係なくフィルタリングすることもできます。その場合は --filter label=environment
を使用します。
以下のコマンドを実行します。
docker secret ls --filter label=environment
これにより、environment
というラベルキーを持つ labeled_secret
と dev_secret
の両方が表示されます。
ID NAME CREATED
<secret_id_3> labeled_secret About 2 minutes ago
<secret_id_4> dev_secret About 2 minutes ago
ラベルでフィルタリングすることは、独自に定義したカテゴリに基づいてシークレットを管理し、取得する柔軟な方法です。