启用Docker Remote API – 覆盆子pi / raspbian
我的出发点是:
- 如何使用docker远程API来创build容器? ,
所以我编辑/etc/init/docker.conf
并更新了2次DOCKER_OPTSvariables:
DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
然后,一个简单的testing列出泊坞窗图像失败:
$ 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
没有testing过,但是如果是Jessie,那么它默认使用systemd作为init系统iirc,这对守护进程( dockerd
)的configuration和启动dockerd
。
所以你正在编辑/etc/init/docker.conf
文件,但我不认为正在被读取/使用。
请阅读Docker中每个init系统的不同启动过程中的这篇文章 ,以及针对特定系统configuration的文章 。
解决scheme来自这个网页的评论: 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
不再有效。 相反,您需要创build一个systemd的dropin文件。我把这样一个文件放在:
/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