Enable Docker Remote API – raspberry pi / raspbian
My starting point is:
- How to use docker remote api to create container?,
so I edit
/etc/init/docker.conf and update 2 occurrences of the DOCKER_OPTS variable to:
DOCKER_OPTS='-H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock'
Then, a simple test to list docker images fails:
$ 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 version is:
$ 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
2 Solutions collect form web for “Enable Docker Remote API – raspberry pi / raspbian”
Not tested this, but if it’s Jessie, then it uses systemd by default as the init system iirc, and this has implications for how the daemon (
dockerd) is configured and started.
So you’re editing the
/etc/init/docker.conf file but I don’t think that’s being read / used.
Take a read of this article on different startup procedures on each init system in Docker, and this for specific systemd configuration.
The solution comes from the comments of this page: http://www.virtuallyghetto.com/2014/07/quick-tip-how-to-enable-docker-remote-api.html
[08/18/2016 at 6:00 am] Oliver Weise says:
Thanks, that put me in the right direction. However since Ubuntu 16.04
with its systemd docker daemon the
/etc/default/dockeris no longer
effective. Instead you need to create a systemd dropin file.
I placed such a file under:
With the contents:
[Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://127.0.0.1:2376 -H unix:///var/run/docker.sock
(Yes, the double ExecStart is necessary)
After that run:
sudo systemctl daemon-reload // reloading daemon definitions sudo systemctl restart docker