После очередного обновления docker-а столкнулся с неприятной ситуацией когда попытка подключиться к docker-у удалённо приводила просто к зависанию клиента.
Итак изначально docker ставился в CentOS 7 по умолчанию, никаких особых настроек не было сделано и всё работало. Но в связи с возникшей проблемой пришлось таки разбираться как же скормить ему опции для запуска.
В CentOS начиная с версии 7 запуск демонов производится через systemd. Соответственно вся настройка должна выполняться именно через unit файлы systemd.
Итак создаём Unit файл для докера:
1 | $ sudo mkdir -p /etc/systemd/system/docker.service.d |
В созданный файл записываем следующее содержимое:
1 | [Service] |
Пустой ExecStart= обязателен — он как бы говорит нам не использовать значение ExecStart системного unit-файла. А уже повторный вызов устанавливает новое значение.
-H fd://позволяетsystemdобщаться сdocker-ом, без этого невозможно удалённое подключение-H unix:///var/run/docker.sockпозволяет подключаться к докеру его собственным процессам, без этого не могут стартовать процессы докера
В дефолтном unit-файле докера запуск dockerd производится без параметров и видимо настройки по умолчанию не создают сокет для systemd (-H fd://).

Комментарии