【问题标题】:Enable Docker Remote API - raspberry pi / raspbian启用 Docker 远程 API - raspberry pi / raspbian
【发布时间】:2017-03-28 05:52:03
【问题描述】:

我的出发点是:

所以我编辑 /etc/init/docker.conf 并将 DOCKER_OPTS 变量的 2 次出现更新为:

DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'

然后,列出 docker 图像的简单测试失败:

$ service docker restart
$ curl -X GET http://10.143.0.218:4243/images/json
curl: (7) Failed to connect to 10.143.0.218 port 4243: Connection refused

Docker 版本是:

$ sudo docker version
Client:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 19:06:36 2016
OS/Arch:      linux/arm

Server:
 Version:      1.12.3
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   6b644ec
 Built:        Wed Oct 26 19:06:36 2016
 OS/Arch:      linux/arm

【问题讨论】:

  • 您在 RPi 上使用什么操作系统?
  • Raspbian GNU/Linux 8 (jessie)

标签: docker raspberry-pi remoteapi


【解决方案1】:

未对此进行测试,但如果是 Jessie,则默认使用 systemd 作为初始化系统 iirc,这对守护进程 (dockerd) 的配置和启动方式有影响。

所以您正在编辑 /etc/init/docker.conf 文件,但我认为它没有被读取/使用。

读取 Docker 中每个初始化系统上的 this article on different startup proceduresthis for specific systemd configuration

【讨论】:

    【解决方案2】:

    解决方法来自本页的cmets:http://www.virtuallyghetto.com/2014/07/quick-tip-how-to-enable-docker-remote-api.html

    [08/18/2016 at 6:00 am] Oliver Weise 说: 谢谢,这让我朝着正确的方向前进。但是自从 Ubuntu 16.04 凭借其 systemd docker 守护进程,/etc/default/docker 不再是 有效的。相反,您需要创建一个 systemd 放置文件。

    我把这样一个文件放在:/etc/systemd/system/docker.service.d/remote-api.conf

    附内容:

    [Service]
    ExecStart=
    ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2376 -H unix:///var/run/docker.sock
    

    (是的,需要双 ExecStart)

    运行之后:

    sudo systemctl daemon-reload // reloading daemon definitions
    sudo systemctl restart docker
    

    【讨论】:

    • 这基本上不是我的答案吗?
    • ^ 不。您的答案是阅读一堆显然没有明确回答问题的文档。 :-)
    • 这可能是正确的答案,但对我来说,如果不直接编辑 /lib/systems/system/docker.service,我无法让 API 正常工作。不管我把什么放在一个插入文件中,服务都会把它捡起来,但 API 只会绑定到守护进程套接字。 drop-in 方法可能是最好的方法,也许它没有成功的原因是安装 docker 的方法> 我使用的是:medium.freecodecamp.org/… 并且没有任何问题。
    • 我的位于 /etc/systemd/system/multi-user.target.wants/docker.service 并且我只更新了 tcp 行。树莓派
    猜你喜欢
    • 1970-01-01
    • 2015-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-14
    • 2013-09-10
    • 2017-04-11
    • 2015-07-29
    相关资源
    最近更新 更多