是否可以在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
中重新定义它。这允许在不重新启动守护程序的情况下更改repoip
但不允许更改端口
或协议
可能的解决办法2
当守护进程运行时,可以重新配置某些选项,而无需重新启动进程。我们在Linux中使用SIGHUP信号来重新加载,在Windows中使用键为global\docker daemon config-$PID的全局事件。这些选项可以在配置文件中修改,但仍将检查是否与提供的标志冲突。如果存在冲突,守护进程将无法重新配置自身,但它不会停止执行
因此可以编辑注册表
并执行sudo systemctl reload docker
或sudo kill-SIGHUP$(pidof dockerd)
。这不会重新启动现有容器,也不会重新启动守护进程本身