Вы должны различать Docker Daemon и Docker CLI. Первый - это сервис, который фактически выполняет всю работу - создает и запускает контейнеры. Второй - исполняемый файл, используемый для отправки команд демону .
Исполняемый файл (интерфейс командной строки Docker) является легковесным и использует /var/run/docker.sock
для доступа к демону (по умолчанию фактически существуют разные транспорты).
Когда вы запускаете свой контейнер с -v /var/run/docker.sock:/var/run/docker.sock
, вы на самом деле делитесь демоном вашего хоста для docker CLI в контейнере. Таким образом, вам все еще нужно установить CLI Docker внутри контейнера, чтобы использовать Docker, но вам не нужно настраивать демон внутри (что довольно сложно и требует привилегированного режима).
Заключение
Установите док-интерфейс CLI внутри контейнера, поделитесь сокетом и наслаждайтесь. Но при использовании узла docker хоста вы, вероятно, будете путать с подключаемыми томами монтирования, поскольку демон не видит внутреннюю файловую систему контейнера.