Можно ли использовать переменные среды внутри файла конфигурации демона докеров
задний план:
Мы используем registry_mirrors
& insecure_registries
варианты в docker
daemon.json
файл. Мы хотели бы прекратить указывать местоположениеmirrors
жестко запрограммированный.
Вопрос
Можно ли использовать env variable
внутри daemon.json
? Поэтому вместо того, чтобы писатьip
X.Y.Z.W:PORT
можно было бы написать ${REPO1}
. Надеюсь, можно будет изменитьREPO1
var без перезапуска daemon
Замечания
Решение должно позволять изменять repo
местоположение без перезапуска демона
РЕДАКТИРОВАТЬ
невозможно использовать следующий код внутри daemon.json 1. ${VAR_NAME}
Возможный обходной путь
Используйте собственное имя хоста и переопределите его в /etc/hosts
. Это позволяет менять репоip
без перезапуска демона. Но это не позволяет изменитьport
или protocol
Возможное решение 2
Некоторые параметры можно перенастроить во время работы демона без необходимости перезапуска процесса. Мы используем сигнал SIGHUP в Linux для перезагрузки и глобальное событие в Windows с ключом Global\docker-daemon-config-$PID. Параметры можно изменить в файле конфигурации, но все равно будут проверяться конфликты с предоставленными флагами. Демон не может перенастроить себя, если есть конфликты, но он не остановит источник выполнения
Так что можно отредактировать registry
и делать sudo systemctl reload docker
или sudo kill -SIGHUP $(pidof dockerd)
. При этом не перезапускаются ни существующие контейнеры, ни сам демон.