Erstellen Sie einen Docker-Client in der VM, um ihn an den Docker-Daemon auf dem Host anzuhängen.

Erstellen Sie einen Docker-Client in der VM, um ihn an den Docker-Daemon auf dem Host anzuhängen.

Wie kann ich den Docker-Client auf einer Windows Server 2019-VM dazu bringen, eine Verbindung zur Docker-Engine auf dem Hostcomputer herzustellen, der Linux-Container in einer Moby-VM verwendet?

Mein Setup sieht wie folgt aus:

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

Ich versuche, verschachtelte Virtualisierung zu vermeiden, um Docker auf WinServer2019VM (E) zu verwenden. Ich konnte Linux Containers on Windows (LCOW) nicht innerhalb der VM (E) zum Laufen bringen, aber da LCOW noch experimentell ist, verzichte ich vorerst darauf.

Derzeit dockerverwendet der Befehl auf dem Host (B) Linux-Container unter Verwendung von MobyLinuxVM (D). Jetzt versuche ich, dockerden Befehl auf der VM (E) so zu konfigurieren, dass er genau dasselbe tut und sich genau wie (B) verhält, indem er sich an die Docker-Engine auf dem Host (B) anschließt und Linux-Container verwendet, die mit MobyLinuxVM (D) aktiviert sind.

Ich habe versucht, die Einstellung „Daemon auf tcp://localhost:2375 ohne TLS verfügbar machen“ auf Docker (B) auf dem Hostcomputer zu aktivieren und DOCKER_HOST="tcp://HOST_NAME:2376"auf der VM (E) einzustellen, aber das hat nicht funktioniert. Wie kann ich das machen? Danke!

Antwort1

Ich gehe davon aus, dass Ihre MobyLinuxVM (D) die VM von Docker Desktop ist, richtig?
Die Einstellung „Daemon auf tcp://localhost:2375 ohne TLS verfügbar machen“ lässt nur Verbindungen zu, die vom Host-Rechner (A) kommen.

Falls Du die Verbindung von einer anderen Maschine (in Deinem Fall von der VM (E)) aus herstellen möchtest, funktioniert dies nicht.

Versuchen Sie, die Docker Remote API mit einem Hilfscontainer auf MobyLinuxVM (D) zu öffnen.

Sehenhttps://gist.github.com/kekru/4e6d49b4290a4eebc7b597c07eaf61f2#enable-docker-remote-api

verwandte Informationen