改变"主持人" /" -h" daemon.json

时间:2017-01-07 04:59:15

标签: docker docker-for-windows docker-desktop

我尝试更改 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启动参数?

1 个答案:

答案 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