Фильтрация секретов по меткам (labels)
На этом этапе вы научитесь фильтровать секреты на основе меток (labels). Метки - это пары ключ-значение, которые вы можете прикрепить к объектам 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
, вы увидите все четыре секрета:
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
Это покажет как labeled_secret
, так и dev_secret
, так как у обоих есть ключ метки environment
:
ID NAME CREATED
<secret_id_3> labeled_secret About 2 minutes ago
<secret_id_4> dev_secret About 2 minutes ago
Фильтрация по меткам - гибкий способ управления и извлечения секретов на основе ваших собственных определенных категорий.