All steps are relevant for distributions with systemd (tested on CentOS 7 and Ubuntu 18.04)
We look at the Docker launch command:
grep "ExecStart" /usr/lib/systemd/system/docker.service
Ubuntu 18.04 has a different path, "/lib/systemd/system/docker.service"
We get something similar:
ExecStart=/usr/bin/dockerd
Now create the "override.conf" file, just enter:
systemctl edit docker
We insert the following there:
[Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
For Ubuntu 18.04:
[Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
ExecStart should be two, the first with an empty value. In the previous step, we looked at the launch command, and added parameters for TCP to it.
Reload the configuration of the daemon:
systemctl daemon-reload
Restart Docker and see its status:
systemctl restart docker
systemctl status docker
If all is well, then you can still verify that Docker is listening on the port:
netstat -anp | grep ":2375"
Now you can remotely execute Docker commands, but you should consider that there is no authentication in this scheme.