The default installation of docker-engine is accessed only from the local machine where it is installed.
If we want to make the docker to listen over the network which helps in working with docker remotely without logging into the machine where docker is installed.
Below is the simplest way to achieve it but this is not a secured way. We have tweak it further to make this secure,
Docker configuration file with its location: /etc/default/docker
By adding -H option with IP as 0.0.0.0 in the config file, we can make docker listen over the network.
Add DOCKER_OPTS="-H tcp://0.0.0.0:2375"
Save the file and restart the docker.
You can verify in browser, hit the URL in browser: http://192.168.1.11:2375/_ping
OK is the response returned if the setup is successful.
Here 192.168.1.11 is IP of docker installed the machine.
Now you can run docker commands remotely:
wagonsoft@Lenovo-G50-80:~$ sudo docker -H 18.104.22.168 ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cd12fff3cf09 ubuntu “bash” 4 hours ago Exited (0) 3 hours ago adoring_jang
e2695f761862 hello-world “/hello” 4 hours ago Exited (0) 2 minutes ago agitated_allen
Otherwise, we can try: chrome addon Simple Docker UI
Now docker will listen only on TCP port, so we have to use -H option even in the docker installed machine.
In order to make docker work without -H option in local, it has to listen on default unix socket.
To enable this add following in DOCKER_OPTS in /etc/default/docker,
Now DOCKER_OPTS looks like,
DOCKER_OPTS="-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"
Save the file and restart the docker,
service docker restart
Now we will be able to run docker without -H option in local.