docker 配置:daemon.json 在 docker daemon 中拥有套接字和 IP
Posted
技术标签:
【中文标题】docker 配置:daemon.json 在 docker daemon 中拥有套接字和 IP【英文标题】:docker configuration: daemon.json to have socket and IP in docker daemon 【发布时间】:2017-02-24 09:21:38 【问题描述】:将我的 OpenSUSE docker 主机更新到最新版本 1.12.6 后,我不能让 docker 守护进程同时监听套接字和 IP。
如果我包括
"hosts": ["tcp://192.168.1.1:2376"]
在我的 daemon.json 中,它正确绑定到该 IP,我可以从我的 Intranet 连接到 docker,但它不会打开本地套接字,因此我可以在本地执行 docker 命令。如果我删除该主机条目,本地 docker 命令可以工作(默认配置),但显然我无法从 Intranet 访问主机。
将 fd:// 添加到主机 JSON 数组将不起作用。我在重新启动 docker 服务时收到一条错误消息,指出没有可用的套接字。
我的问题是:在 daemon.json “hosts” 条目中包含什么配置,不仅可以添加 tcp 主机,还可以添加套接字?
【问题讨论】:
问题是“hosts”选项会覆盖 docker 默认值而不是追加。所以你必须同时指定 unix 套接字(像 docker ps -a 一样连接)和 tcp 套接字。 【参考方案1】:默认情况下你必须编辑
/etc/docker/daemon.json
文件内容:
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2376"]
如果需要/想要,您还可以添加其他套接字。
如果你想使用一些网络客户端,你可能需要添加 CORS:
"api-enable-cors": true,
"api-cors-header": "*",
"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"]
【讨论】:
unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: hosts: (from flag: [unix://], from file: [unix:///var/run/docker.sock tcp://0.0.0.0:2375])
but /etc/systemd/system/docker.service.d/docker.conf
with ``` [Service] ExecStart= ExecStart=/usr/bin/dockerd ``` 有帮助(抱歉格式错误)以上是关于docker 配置:daemon.json 在 docker daemon 中拥有套接字和 IP的主要内容,如果未能解决你的问题,请参考以下文章
docker 配置文件:/etc/docker/daemon.json