Создайте клиент Docker в виртуальной машине для подключения к демону Docker на хосте

Создайте клиент Docker в виртуальной машине для подключения к демону Docker на хосте

Как подключить Docker Client на виртуальной машине Windows Server 2019 к Docker Engine на хост-машине, использующей контейнеры Linux в виртуальной машине Moby?

Моя настройка выглядит следующим образом:

(A) Windows 10
(B)     Docker
(C)     Hyper-V
(D)        MobyLinuxVM
(E)        WinServer2019VM
(F)            Docker

Я пытаюсь избежать вложенной виртуализации, чтобы использовать Docker на WinServer2019VM (E). Мне не удалось заставить Linux Containers on Windows (LCOW) работать внутри VM (E), но поскольку LCOW все еще является экспериментальным, я пока от него воздержусь.

Сейчас dockerкоманда на хосте (B) использует контейнеры Linux с помощью MobyLinuxVM (D). Теперь я пытаюсь заставить dockerкоманду на виртуальной машине (E) делать то же самое и действовать точно так же, как (B), прикрепляясь к движку Docker на хосте (B) и используя контейнеры Linux, включенные с помощью MobyLinuxVM (D).

Я попробовал включить настройку "Expose daemon on tcp://localhost:2375 without TLS" на Docker (B) на хост-машине и установить DOCKER_HOST="tcp://HOST_NAME:2376"на виртуальной машине (E), но это не сработало. Как мне это сделать? Спасибо!

решение1

Я предполагаю, что ваш MobyLinuxVM (D) — это виртуальная машина Docker Desktop, верно?
Настройка «Expose daemon on tcp://localhost:2375 without TLS» разрешает только соединения, исходящие от хост-машины (A).

Если вы хотите подключиться с другой машины (в вашем случае с виртуальной машины (E)), это не сработает.

Попробуйте открыть Docker Remote API с помощью вспомогательного контейнера на MobyLinuxVM (D)

Видетьhttps://gist.github.com/kekru/4e6d49b4290a4eebc7b597c07eaf61f2#enable-docker-remote-api

Связанный контент