启用Docker远程API - raspberry pi / raspbian



我的出发点是:

  • 如何使用docker远程api创建容器?

所以我编辑/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

解决方案来自本页的评论: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 drop文件。

我把这样一个文件放在:/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

没有测试过这个,但是如果它是Jessie,那么它默认使用systemd作为初始化系统iirc,这意味着守护进程(dockerd)是如何配置和启动的。

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

阅读本文,了解Docker中每个初始化系统的不同启动过程,这是针对特定的systemd配置的。

相关内容

  • 没有找到相关文章

最新更新