8

我正在尝试daemon.jsonDocker Desktop for Windows上进行更改(安装了 Windows 10 Aniversary 最新更新)1.13.0-rc5,因此我可以像这样更改"hosts": []设置:

{
  "hosts": [
    "tcp://0.0.0.0",
    "http://0.0.0.0"
  ]
}

但是,使用设置应用程序更改设置后,我收到此错误:

Docker 守护程序失败并显示消息:无法使用文件 C:\ProgramData\docker\config\daemon.json 配置 Docker 守护程序:以下指令在配置文件中都指定为标志:主机:(来自标志:[npipe :////./pipe/docker_engine_windows],来自文件:[tcp://0.0.0.0 http://0.0.0.0]

看起来守护程序已经以-H标志启动,并且 json 配置未与其合并。

那么,我们如何通过 json 文件或更改 dockerd 启动参数来更改这些设置?

4

1 回答 1

2

您有一个与问题 22339类似的案例:

这是意料之中的;您不能同时将选项指定为标志和配置文件 ( daemon.json)。
如果您更改DOCKER_OPTSDOCKER_OPTS=""并重新启动,那么它应该可以工作。我们明确不“合并”这些配置。

或者添加 docker.conf

[Service]
ExecStart=
ExecStart=/path/to/dockerd
# or
ExecStart=/path/to/dockerd daemon

但官方立场依旧:

配置中没有错误systemd,要覆盖systemd单元文件中的默认值,您可以使用插入文件,如“自定义 Docker 守护程序选项”中所述。

如果同时提供了标志和选项,则产生错误daemon.json是实现时的设计决策(通常,标志应始终优先于配置文件);自动合并选项不是一个选项,因为这会导致意想不到的结果(是要覆盖选项还是添加到选项?)

PR 27473被拒绝,问题 21559

于 2017-01-07T06:12:59.600 回答