Секреты Docker, передаваемые как переменная окружения - PullRequest
0 голосов
/ 25 сентября 2018

Я перевел докер в режим роя и сделал следующее:

echo "'admin'" | docker secret create password -
docker service create \
--network="host" \
--secret source=password,target=password \
-e PASSWORD='/run/secrets/password' \
<image>

Я не смог передать секретный пароль, созданный с помощью переменной среды, через сервис докера.

Пожалуйста, помогите мне, где я иду не так

С уважением, Сатьянвеш

1 Ответ

0 голосов
/ 25 сентября 2018

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

В вашем примере переменная среды PASSWORD будет просто содержать значение /run/secrets/password, которое является именем файла, а не * 1006.* пароль admin.

Допустимым использованием секретов докера будет то, что ваш образ докера считывает пароль из этого файла.Изучите документы здесь , особенно пример о MySQL:

переменные окружения MYSQL_PASSWORD_FILE и MYSQL_ROOT_PASSWORD_FILE, чтобы указывать на файлы / run / secrets / mysql_password и / run / secrets / mysql_root_password /.Образ mysql считывает строки пароля из этих файлов при первоначальной инициализации системной базы данных.

Короче говоря: ваш образ докера должен читать содержимое файла /run/secrets/password

...