Docker Remote API on Ubuntu 16.04.2
I was recently tasked with an issue to allow an application, deployed using docker-compose
, to launch containers
and I did not want to go the docker-in-docker route.
I then figured that using the Docker Remote API to provide this functionality would be sufficient, however, I had difficulties on how to enable the tcp
Socket on distributions running systemd
like Ubuntu 16.04.2, as adding
DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
to /etc/default/docker
does not work.
This is what I pieced together from the Internet:
Edit the file /lib/systemd/system/docker.service
:
$ sudo vi /lib/systemd/system/docker.service
Append the following to the ExecStart=/usr/bin/dockerd -H fd://
line:
-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
Reload systemd
:
$ sudo systemctl daemon-reload
Restart docker
:
$ sudo systemctl restart docker
Test with curl
:
$ curl -X GET http://0.0.0.0:2375/_ping
The above should respond with OK
.
Hope someone out there finds this helpful.
NOTE: This provides un-encrypted and un-authenticated direct access to the daemon.
Leave a comment