Kann Docker in VMware ausgeführt werden?

24

Ich verwende VMware Workstation für meine Entwickleranforderungen und muss verschiedene VMs für Diff-Umgebungen warten.

Docker scheint daher das Ausführen von Diff-Umgebungen in Containern zu ermöglichen

  1. Kann ich in meiner Windows 10 x 64-VM Docker ausführen und verschiedene Images und Container verwenden, um meinen Code zu entwickeln, zu erstellen und zu testen? (Denken Sie daran, dass meine Entwicklungsumgebung in VMware Workstation ausgeführt wird, während Docker VirtualBox verwendet.)

  2. Wie versende / nehme ich meine App (Code + Datenbank + Web-API + .....) in die Produktion? Muss die Produktionsmaschine Docker wir gut laufen lassen?

Bitte helfen Sie zu klären.

Aktualisieren

Mit VMWare meine ich VMWare Workstation Pro.

Hamza Ahmed Zia
quelle

Antworten:

14

Ja , es ist durchaus möglich, Docker in einer VM auszuführen. Docker ist eine einfache Virtualisierungslösung, die Hardware nicht virtualisiert, sodass Sie nicht von Problemen betroffen sind, die für verschachtelte VMs typisch sind.

Die Portbindung kann jedoch etwas schwierig sein, da Sie Ihre dev-env-VM in VMware irgendwie mit Docker-VM in VirtualBox verbinden müssen.

Möglicherweise treten auch Probleme auf, wenn Sie die Ordner des Hosts für einen Dienst in einem Docker-Container verfügbar machen möchten. Die Dateisysteme von Windows sind im Vergleich zu Linux in Bezug auf die Berechtigungsgranularität begrenzt, und einige Dienste mögen das nicht. (Dieses Problem ist nicht Docker-spezifisch)

Im Allgemeinen ist Ihre App in der Produktion nicht an Docker gebunden. Dockerisierte Dienste kommunizieren mit der Welt über ein Netzwerk, nicht anders als bei regulären Diensten. Eine App, die für Docker (oder allgemein für Clouds) entwickelt wurde, ist möglicherweise ausfallsicherer und leichter zu warten.

gronostaj
quelle
6

In diesem Blog wird genau beschrieben, wie Docker unter Windows mit VMWare Workstation verwendet wird. Sie können sogar Windows 7 verwenden.

https://stefanscherer.github.io/yes-you-can-docker-on-windows-7/

Installieren Sie zuerst den Chocolatey-Paketmanager für Windows (dies ist ein einzeiliger Befehl)

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

Installieren Sie anschließend Docker, um die VMWare-Arbeitsstation zu verwenden

choco install -y docker  
choco install -y docker-machine  
choco install -y docker-machine-vmwareworkstation  

Erstellen Sie eine Standard-VM

docker-machine --native-ssh create -d vmwareworkstation default  

Legen Sie Ihre Umgebungsvariablen fest

docker-machine env | iex

Jetzt können Sie loslegen.

dampfbetrieben
quelle
Ausgezeichnet! Vielen Dank für das Teilen. PS: Die letzte Zeile ist für PowerShell ohne "| iex", die in
cmd
Chocolatey war neu für mich, das war ein guter
ccook
1
Nur für den Fall, dass jemand anderes dies versucht, ohne den Link zu lesen, sollte der Befehl "Create a default vm" lauten: docker-machine --native-ssh create -d vmwareworkstation default(Anmerkung fehlt "-")
Neil
2
  1. Ja, Sie können docker unter Windows ausführen. Windows unter VMWare funktioniert ebenfalls. Wir führen Docker auf Linux-Servern unter VMWare aus.
  2. Am cleversten wäre es, Docker auch auf Ihrer Produktionsmaschine zu haben, aber es wäre möglich, Ihre Daten aus den Containern zu kopieren. Das empfehle ich aber nicht.
    Mit können Sie docker saveIhre Docker-Bilder in Dateien speichern.
    Ich denke, es ist erwähnenswert, dass es nicht empfohlen wird, mehrere Anwendungen in demselben Container auszuführen, und es wird nicht empfohlen, Daten in Ihren Containern zu speichern. Verwenden Sie hierfür Volumes.
Mikael Kjær
quelle
Vielen Dank für Ihre Antwort, aber bitte klären Sie haben gesagt, "Windows unter VMWare funktioniert auch", aber haben Sie gemeint, "Docker unter VMWare funktioniert auch"?
Hamza Ahmed Zia
@HamzaAhmedZia "VMWare" Was genau? ESXi? Arbeitsplatz? Sei genau und bearbeite deine Frage. Workstation gibt es nur unter Linux und Windows.
Ramhound
@ Ramhound Ich meine Workstation. Aktualisierte Frage
Hamza Ahmed Zia
@HamzaAhmedZia Im Kontext von Workstation gibt der Autor dieser Antwort an, dass Sie Docker in einer Windows VMWare Workstation-VM ausführen können.
Ramhound
@Mikael Was empfehlen Sie für den Versand an die Produktion, da Sie nicht empfehlen, Daten aus den Containern zu kopieren?
Hamza Ahmed Zia
0

Es gibt einen großen Unterschied zwischen dem Docker-Host (Linux oder Windows):

Auf dem Windows Docker-Host in einer VMware Workstation (auf Ihrem physischen Windows) haben Sie also eine geschachtelte HyperV Linux-VM! Dies ist kein großes Problem. Achten Sie lediglich darauf, die verschachtelte Virtualisierung zu aktivieren.

François

François YACOB
quelle
Dieser Punkt zum Hosten einer HyperV-VM durch Windows ist falsch, wenn Docker für Windows im Windows-Containermodus ausgeführt und LCoW nebeneinander verwendet wird. Es hat andere Probleme, aber die verknüpften Artikel über die Agnostizität von Docker basierend auf dem Host-Betriebssystem sind bestenfalls kurzsichtig, wenn man davon ausgeht, wohin Moby Project mit Windows Container-basiertem Docker auf Win 10 geht Die Blutungskante saugt immer noch Blut und ist nicht auf das Gefährdungsniveau der bloßen Vorderkante abgesunken. Zu diesem Zeitpunkt sieht es nach weiteren sechs Monaten aus, bis es als täglicher Fahrer einsatzbereit ist.
Tetsujin no Oni
0

Das Ausführen von Docker-Containern führt zu Problemen bei der Portbindung.

Ist es eine gute Praxis, Docker in der virtuellen Maschine auszuführen? Die Architektur als Referenz

Host-Betriebssystem -> VirtualMachine -> Hypervisor -> Server-Betriebssystem -> Docker

Ist es eine gute Übung .. :)

Manikandan Ram
quelle