Docker — API over TCP

Все шаги актуальны для дистрибутивов с 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 команды, только стоит учесть, что никакой проверки подлинности в этой схеме нет.

Метки: Метки