背景:
我们在文件中使用registry_mirrors
&insecure_registries
选项。docker
daemon.json
我们想停止设置mirrors
硬编码的位置。
问题
可以在env variable
里面使用daemon.json
吗?因此,与其写ip
X.Y.Z.W:PORT
一个 ,不如写一个${REPO1}
。希望可以在REPO1
不重新启动的情况下更改 vardaemon
评论
解决方案必须允许在不重新启动守护程序的情况下更改repo
位置
编辑
无法在 daemon.json 1. ${VAR_NAME} 中使用以下内容
可能的解决方法
使用自定义主机名并在/etc/hosts
. ip
这允许在不重新启动守护程序的情况下更改 repo 。但它不允许改变port
或protocol
可能的解决方法 2
有些选项可以在守护程序运行时重新配置,而无需重新启动进程。我们在 Linux 中使用 SIGHUP 信号来重新加载,在 Windows 中使用全局事件,键为 Global\docker-daemon-config-$PID。可以在配置文件中修改选项,但仍会检查与提供的标志的冲突。如果存在冲突,守护进程无法重新配置自身,但它不会停止执行源
因此可以编辑registry
and do sudo systemctl reload docker
or sudo kill -SIGHUP $(pidof dockerd)
。这不会重新启动现有容器或守护进程本身