Ubuntu 20.04 Server – Docker & Portainer auf  Hyper-V nested Problem Macvlan

1
1015

Wer einen Ubuntu Server mit Docker auf einem Hyper-V Server betreiben möchte, muss einige Dinge beachten da es ansonsten zu Problemen kommt.

Als erstes muss vor der Installation von Docker in der Ubuntu VM die nested Virtualisierung aktiviert werden. Das bedeutet, der Hyper-V erlaubt eine weiter Virtualisierung in einer virtuellen VM.

Der Befehl dazu ist als Administrator in der PowerShell auszuführen.

Nehmen wir an, der virtuelle Ubuntu Server wurde mit dem Namen „Ubuntu“ angelegt. Dann lautet der Befehl:

Set-VMProcessor -VMName Ubuntu -ExposeVirtualizationExtensions $true

Docker Container MACVLAN

Im Normalfall werden die Docker Container in einem eignen Docker LAN betrieben und die einzelnen Docker Container werden per NAT auf den Docker Host Server weitergeleitet.
Es gibt jedoch auch mache Anwendungen, die eine IP aus dem LAN benötigen, damit diese in beide Richtungen kommunizieren kann (z.B. bei ioBroker der Homematic hm-rpc.0 Adapter) und mit einer eigenen IP erreichbar sind.

Docker Container am Hyper-V Server in einer nested VM

Damit man einen Docker Container mit einer eignen erreichbaren IP betreiben kann, muss man ein Macvlan Netz am Docker Host anlegen. Dazu findet man viele Anleitungen. Am einfachsten geht es über Portainer.

Beim macvlan Netzwerk bekommt jeder Container eine IP und eine MAC Adresse. Der Hyper-V blockt jedoch in den Standardeinstellungen mehrer MAC Adressen hinter einer virtuellen Netzwerkkarte.

Lösung MACVLAN Betrieb

Im Hyper-V Manager muss man bei der Docker Host VM das „Spoofing von MAC-Adressen aktivieren“

Hyper-V Manager  MACVLAN

1 KOMMENTAR

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here