【发布时间】:2017-08-16 16:40:37
【问题描述】:
免责声明:
在一台装有 Ubuntu 14.04 的旧机器上,使用 Upstart 作为初始化系统,我通过在 /etc/default/docker 上定义 DOCKER_OPTS 启用了 HTTP API。它有效。
$ docker version
Client:
Version: 1.11.2
(...)
Server:
Version: 1.11.2
(...)
问题:
此解决方案不适用于最近安装 Ubuntu 16.04 和 SystemD 的机器。
如最近安装的文件顶部所述/etc/default/docker:
# Docker Upstart and SysVinit configuration file
#
# THIS FILE DOES NOT APPLY TO SYSTEMD
#
# Please see the documentation for "systemd drop-ins":
# https://docs.docker.com/engine/articles/systemd/
#
(...)
当我在 Docker documentation page 上为 SystemD 检查此信息时,我需要填写一个 daemon.json 文件,但正如 reference 中所述,有些属性不言自明,但其他属性可能解释不足。
话虽如此,我正在寻求帮助来转换它:
DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock -G myuser --debug"
到daemon.jsonobject?
注意事项
PS1:我知道daemon.json 默认有debug: true。
PS2:可能是group: "myuser",它会像这样或与字符串数组一起工作。
PS3:我主要关心的是同时使用 SOCK 和 HTTP。
编辑(2017 年 8 月 8 日) 阅读接受的答案后,请查看@white_gecko 答案以获取有关此问题的更多信息。
【问题讨论】:
-
请注意,如果您按照此处的任何步骤操作,您将创建一个未加密的远程 root 登录到服务器,而无需任何密码或凭据。对于任何可以通过网络访问您的主机的人来说,以 root 身份运行容器并安装主机文件系统是微不足道的。强烈建议保护此套接字:docs.docker.com/engine/security/https
标签: json ubuntu docker systemd docker-api