我正在尝试在Docker Desktop for Windows(安装了Windows 10周年纪念最新更新)1.13.0-rc5
上更改daemon.json
,这样我就可以像这样更改"hosts": []
设置:
{
"hosts": [
"tcp://0.0.0.0",
"http://0.0.0.0"
]
}
然而,在使用设置应用程序更改设置后,我得到了这个错误:
Docker守护进程失败,返回消息:无法配置Docker具有文件C:\ProgramData\docker\config\daemon.json的守护进程:以下指令同时指定为标志和配置文件:主机:(来自标志:[npipe:////./pipe/docker_engine_windows],来自文件:[tcp://0.0.0.0http://0.0.0.0])
看起来守护进程已经用-H
标志启动,并且json配置没有与其合并。
那么,我们如何通过json文件或更改dockerd启动参数来更改这些设置呢?
您也有类似的问题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被拒绝,发布21559。