Как использовать секреты докеров без кластера роя?

В настоящее время мы представляем работающее приложение в одном контейнере докеров, приложению требуются всевозможные конфиденциальные данные для передачи в качестве переменных среды,

Я запускаю их команда, чтобы они не попадали в образ, а затем в репозиторий, однако я получаю очень небезопасную команду запуска,

Теперь я понимаю, что секреты докеров существуют, однако, как их использовать без развертывания кластера? или есть какой-либо другой способ защитить эти данные?

С уважением,

29
задан 29 August 2017 в 19:24
2 ответа

Вы не можете ... Он не поддерживает секреты без Swarm. Если только '' не может быть '' вы '' Swarm '', используя только один узел.

Другим решением было бы, я думаю, использовать стороннее программное обеспечение хранилища, подобное этому:

https: //www.vaultproject .io /

Но затем, чтобы использовать секреты в ваших контейнерах из Vault, вам нужно будет прочитать документ.

Надеюсь, это приведет вас к правильному пути для начала.

6
ответ дан 28 November 2019 в 20:01

Да , секреты можно использовать, если использовать составной файл . (Необязательно запускать рой)

Вы используете композиционный файл с 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

Вы должны увидеть, что ваш контейнер выдает ваш секрет.

.
22
ответ дан 28 November 2019 в 20:01

Теги

Похожие вопросы