我尝试更改 Docker Desktop for Windows 上的daemon.json
(安装了Windows 10 Aniversary最新更新)1.13.0-rc5
,以便我可以更改{{1}设置如下:
"hosts": []
但是,使用设置应用程序更改设置后,我收到此错误:
Docker守护程序失败并显示消息:无法配置Docker 守护进程文件C:\ ProgramData \ docker \ config \ daemon.json :. 以下指令既指定为标志又指定为 配置文件:hosts :(来自flag: [npipe:////./pipe/docker_engine_windows],来自文件:[tcp://0.0.0.0 http://0.0.0.0])
看起来守护程序已经以{
"hosts": [
"tcp://0.0.0.0",
"http://0.0.0.0"
]
}
标志启动,并且json配置未与其合并。
那么,我们如何通过json文件更改这些设置或更改dockerd启动参数?
答案 0 :(得分:2)
issue 22339有类似的案例:
这是预期的;您不能将选项指定为标志和配置文件(
daemon.json
) 如果您将DOCKER_OPTS
更改为DOCKER_OPTS=""
并重新启动,那么它应该可以正常运行。我们明确地不“合并”这些配置。
或者在docker.conf中添加
[Service]
ExecStart=
ExecStart=/path/to/dockerd
# or
ExecStart=/path/to/dockerd daemon
但官方立场仍然存在:
systemd
配置中没有错误,要覆盖systemd
单元文件中的默认值,您可以使用插入式文件,如“Custom Docker daemon options”中所述。如果提供
daemon.json
中的标志和选项都是在实现时的设计决策(通常,标志应始终优先于配置文件),则会产生错误;自动合并选项不是一个选项,因为这会导致意外结果(意图是覆盖选项,还是添加到选项?)
PR 27473被拒绝了issue 21559。