是否可以在docker守护程序配置文件中使用环境变量 背景:

是否可以在docker守护程序配置文件中使用环境变量 背景:,docker,docker-registry,docker-daemon,docker-registry-mirror,Docker,Docker Registry,Docker Daemon,Docker Registry Mirror,我们在docker

我们在
docker
文件中使用
registry\u镜像
不安全的注册
选项。我们想停止设置
镜像的位置
硬编码

问题: 是否可以在
daemon.json
内部使用
env变量
?因此,与其写
ip
X.Y.Z.W:PORT
,不如写
${REPO1}
。希望可以在不重新启动
守护进程的情况下更改
REPO1
var

评论 解决方案必须允许在不重新启动守护程序的情况下更改
repo
位置

编辑 无法在daemon.json中使用以下内容 1. ${VAR_NAME}

可能的解决办法 使用自定义主机名并在
/etc/hosts
中重新定义它。这允许在不重新启动守护程序的情况下更改repo
ip
不允许更改
端口
协议

可能的解决办法2 当守护进程运行时,可以重新配置某些选项,而无需重新启动进程。我们在Linux中使用SIGHUP信号来重新加载,在Windows中使用键为global\docker daemon config-$PID的全局事件。这些选项可以在配置文件中修改,但仍将检查是否与提供的标志冲突。如果存在冲突,守护进程将无法重新配置自身,但它不会停止执行

因此可以编辑
注册表
并执行
sudo systemctl reload docker
sudo kill-SIGHUP$(pidof dockerd)
。这不会重新启动现有容器,也不会重新启动守护进程本身