Все шаги актуальны для дистрибутивов с systemd (проверенно на CentOS 7 и Ubuntu 18.04)
Смотрим команду запуска Docker:
grep "ExecStart" /usr/lib/systemd/system/docker.service
У Ubuntu 18.04 путь немного отличается, "/lib/systemd/system/docker.service"
Получаем что-то похожее:
ExecStart=/usr/bin/dockerd
Теперь создадим файл override.conf, для этого достаточно ввести:
systemctl edit docker
Туда вставляем следующее:
[Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
Для Ubuntu 18.04:
[Service] ExecStart= ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
ExecStart должно быть две, причем первая с пустым значением. На предыдущем шаге мы посмотрели команду запуска, и добавили к ней параметры для TCP.
Перечитываем конфигурацию демона:
systemctl daemon-reload
Перезапускаем Docker и смотрим его статус:
systemctl restart docker
systemctl status docker
Если все хорошо, то можно еще проверить, что Docker слушает порт:
netstat -anp | grep ":2375"
Теперь можно удаленно выполнять Docker команды, только стоит учесть, что никакой проверки подлинности в этой схеме нет.