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