Секреты в Docker
Секрет сервиса кладёт файл в контейнер как скрытое значение, а не как обычную переменную. Текст не попадает в блок переменных окружения. Внутри копии его читают как файл в служебной папке.
Файл token.txt рядом
с описанием хранит слово
demo для учебного
примера, а не пароль
настоящего сервиса:
demo
В описании объявляют секрет
и отдают его сервису web
на alpine:
services:
web:
image: alpine
command: ["sleep", "300"]
secrets:
- token
secrets:
token:
file: ./token.txt
После фонового подъёма
файл /run/secrets/token
внутри содержит то же слово,
что лежало в token.txt.
Проверяют содержимое так:
docker compose up -d
Чтение секрета в работающем сервисе:
docker compose exec web cat /run/secrets/token
Положите в note.txt слово sample и опишите секрет note для сервиса app на alpine.
После фонового подъёма прочитайте /run/secrets/note внутри app и сравните с файлом на диске.