В настоящее время мы запускаем приложение в одном контейнере docker, приложению требуются все виды конфиденциальных данных, которые должны передаваться в качестве переменных среды,
Я помещаю их в команду запуска, чтобы они не попали в образ, а затем в репозиторий, однако в итоге я получаю очень небезопасную команду запуска,
Теперь я понимаю, что существуют секреты docker, однако, как я могу использовать их без развертывания кластера? или есть какой-нибудь другой способ защитить эти данные?
с уважением,
Да, вы можете использовать секреты, если вы используете создать файл. (Вам не нужно запускать рой).
Вы используете файл compose с докер-создание: есть документация для "секретов" в файле docker-compose.yml.
Я переключился на docker-compose, потому что хотел использовать секреты. Я рад, что сделал это, это кажется гораздо более чистым. Каждая служба сопоставляется с контейнером. И если вы когда-нибудь захотите вместо этого переключиться на управление роем, вы, по сути, уже там.
Примечание: Секреты не загружаются в среду контейнера, они монтируются в /run/secrets/
Вот пример:
1) Структура Проекта:
||--- docker-compose.yml|--- super_duper_secret.txt
2) docker-compose.yml содержимое:
version: "3.6"services: my_service: image: centos:7 entrypoint: "cat /run/secrets/my_secret" secrets: - my_secretsecrets: my_secret: file: ./super_duper_secret.txt
3) super_duper_secret.txt содержание:
Whatever you want to write for a secret really.
4) Запустите эту команду из корня проекта, чтобы убедиться, что контейнер действительно имеет доступ к вашему секрету (Docker должен быть запущен и установлен docker-compose):
docker-compose up --build my_service
Вы должны увидеть, как ваш контейнер выводит ваш секрет.
Ты не можешь... Он не поддерживает secrets без Swarm.Если только "может быть", вы "Роитесь", используя только один узел.
Другим решением было бы, я думаю, использовать стороннее программное обеспечение для хранилища, подобное этому:
https://www.vaultproject.io/
Но тогда, чтобы использовать секреты в ваших контейнерах из хранилища, вам нужно будет прочитать документ.
Надеюсь, это выведет вас на правильный путь для начала.