Введение
В этом практическом занятии (лабораторной работе) вы научитесь безопасно управлять конфиденциальными данными в Docker с использованием секретов (secrets). Вы начнете с создания Docker-секрета для хранения конфиденциальной информации.
После создания вы убедитесь, что секрет был успешно добавлен в вашу Docker-среду, перечислив существующие секреты. Наконец, вы попрактикуетесь в удалении секрета и подтвердите его удаление, снова перечислив секреты. Это практическое упражнение научит вас использовать основные команды для создания, перечисления и удаления Docker-секретов.
Создать секрет
На этом этапе вы научитесь создавать секреты (secrets) в Docker. Секреты Docker используются для управления конфиденциальными данными, такими как пароли, SSH-ключи и другие учетные данные, необходимые контейнеру во время выполнения. Использование секретов является более безопасным способом обработки конфиденциальной информации по сравнению с ее прямым хранением в образе контейнера или передачей в виде переменных окружения.
Перед созданием секрета убедимся, что у вас настроена необходимая Docker-среда. В виртуальной машине LabEx Docker уже предустановлен. Вы можете проверить версию Docker, выполнив следующую команду:
docker version
Вы должны увидеть вывод, похожий на этот, что указывает на то, что Docker установлен и запущен:
Client: Docker Engine - Community
Version: 20.10.21
API version: 1.41
Go version: go1.16.15
Git commit: baedd2a
Built: Tue Oct 25 17:58:10 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.21
API version: 1.41 (minimum version 1.12)
Go version: go1.16.15
Git commit: 363bd3a
Built: Tue Oct 25 17:56:32 2022
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: 1.6.8
GitCommit: 9cd335e8e55e68bf582ae4525b3a13ffa8a49392
Built: Tue Oct 25 17:54:39 2022
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
Built: Tue Oct 25 17:54:25 2022
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Built: Tue Oct 25 17:54:16 2022
Для создания секрета можно использовать команду docker secret create. Эта команда считывает конфиденциальные данные из стандартного ввода или файла и создает секрет в Docker.
Создадим простой секрет с именем my_password, содержащий значение s3cr3t. Мы передадим значение секрета в команду docker secret create с помощью конвейера (pipe).
echo "s3cr3t" | docker secret create my_password -
После выполнения команды Docker создаст секрет и выведет его идентификатор. Вывод будет похож на следующий:
<secret_id>
<secret_id> - это уникальный идентификатор только что созданного секрета. Имейте это в виду, так как вам может понадобиться он для будущих операций.
Просмотреть список секретов для проверки создания
На этом этапе вы научитесь перечислять существующие секреты (secrets) в Docker, чтобы убедиться, что секрет, созданный на предыдущем этапе, был успешно добавлен.
Для перечисления всех секретов, управляемых Docker, можно использовать команду docker secret ls. Эта команда выводит список секретов, включая их идентификатор, имя и временную метку создания.
Выполним команду, чтобы посмотреть секреты:
docker secret ls
В выводе должен быть виден секрет my_password, созданный на предыдущем этапе, а также его идентификатор и время создания. Вывод будет похож на следующий:
ID NAME CREATED UPDATED
<secret_id> my_password About a minute ago About a minute ago
Вы можете увидеть, что секрет my_password отображается в списке, что подтверждает его успешное создание. <secret_id> будет совпадать с идентификатором, выведенным при создании секрета.
Эта команда полезна для управления секретами и обеспечения их правильной настройки в вашей Docker-среде.
Удалить секрет
На этом этапе вы научитесь удалять секреты (secrets) в Docker. Удаление секретов важно для безопасности и очистки вашей Docker-среды, когда секреты больше не нужны.
Для удаления секрета можно использовать команду docker secret rm, за которой следует имя или идентификатор секрета. На предыдущих этапах мы создали секрет с именем my_password.
Удалим секрет my_password:
docker secret rm my_password
После выполнения команды Docker удалит секрет и выведет имя или идентификатор удаленного секрета. Вывод будет похож на следующий:
my_password
Это подтверждает, что секрет my_password был успешно удален из вашей Docker-среды.
Лучшей практикой является удаление секретов, когда они больше не используются, чтобы свести к минимуму риск несанкционированного доступа к конфиденциальной информации.
Просмотреть список секретов для проверки удаления
На этом этапе вы снова перечислите секреты (secrets) Docker, чтобы убедиться, что секрет my_password, удаленный на предыдущем этапе, больше не присутствует.
Для перечисления всех секретов используйте команду docker secret ls:
docker secret ls
На этот раз в выводе не должно быть секрета my_password. Если в вашей среде не было других секретов, вывод может выглядеть так:
ID NAME CREATED UPDATED
Если есть другие секреты, вы увидите их в списке, но my_password должен отсутствовать. Это подтверждает, что операция удаления прошла успешно.
Перечисление секретов после удаления - хороший способ убедиться, что конфиденциальные данные больше не хранятся в вашей Docker-среде.
Резюме
В этом практическом занятии (lab) вы научились безопасно управлять конфиденциальными данными в Docker с использованием секретов (secrets). Вы начали с проверки вашей Docker-среды, а затем создали секрет с именем my_password с помощью команды docker secret create, передав значение секрета из стандартного ввода.
После создания секрета вы использовали команду docker secret ls для перечисления существующих секретов и подтверждения успешного создания my_password. Наконец, вы практиковали удаление секрета с помощью команды docker secret rm и проверили его удаление, снова перечислив секреты, тем самым продемонстрировав полный жизненный цикл Docker-секрета.



