Как использовать секреты докера без скопления роя?
В настоящее время мы работаем с приложением в одном док-контейнере, приложению нужны все виды конфиденциальных данных, которые должны передаваться как переменные среды,
Я помещаю их в команду запуска, чтобы они не попадали в образ, а затем в репозиторий, однако я получаю очень небезопасную команду запуска,
Теперь я понимаю, что секреты докеров существуют, однако, как я могу использовать их без развертывания кластера? или есть ли другой способ обезопасить эти данные?
С уважением,
3 ответа
Вы не можете... Это не поддерживает секреты без Роя. Если только вы не можете быть "Роем", используя только один узел.
Другое решение было бы, я думаю, использовать стороннее программное обеспечение хранилища, как этот:
Но затем, чтобы использовать секреты в ваших контейнерах из Убежища, вам нужно прочитать документ.
Надеюсь, что это приведет вас к правильному пути, чтобы начать.
Да, вы можете использовать секреты, если вы используете композитный файл. (Вам не нужно запускать рой).
Вы используете файл compose с 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_secret
secrets:
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
Вы должны увидеть, как ваш контейнер выводит ваш секрет.
Да (но на самом деле Нет)
Нет. В настоящее время Docker не поддерживает конфигурацию и секреты, если вы не в группе.
Но в спецификациях компоновки докера есть конфигурации и секретные спецификации компоновки.
Итак, как это работает?
На самом деле он создает том докера , чтобы вы поверили, что функциональность здесь, точнее, это монтирование Bind.
Это большая разница с Swarm, если вы хотите развернуть свое приложение удаленно!
пример
services:
test:
image: alpine
secrets:
- source: my_secret
secrets:
my_secret:
file: $PWD/secret
относительно идентичен этому
services:
test:
image: alpine
volumes:
- $PWD/secret:/run/secrets/my_secret:ro
Если вы смотрите на свои объемы сdocker inspect <container>
если вы используете secret, вы увидите, что ваши секреты — это просто локальные тома привязки