Docker for Mac 17.12.0 im lokalen Netzwerk

Heute ist wieder eine neue Version von Docker for Mac erschienen und es sind wieder ein paar schöne Neuerungen drin. Zum einen kann die VM Disk als raw Image genutzt werden, was die Geschwindigkeit fast verdoppelt. Es gibt auch eine neue Adresse (docker.for.mac.host.internal) um die Container intern anzusperechen. Es war also mal wieder ander Zeit die lokalen Netzwerkmöglichkeiten insbesondere mit xdebug zu testen.

VM Disk als raw Image

Das funktioniert nur unter masOS High Sierra mit apfs. Dazu muss Docker komplett resetet werden, also sollten alle Daten gesichert sein ;-) Der Datendurchsatz soll sich von 320MiB/sec auf 600MiB/sec erhöhen. Die letzten Sommer veröffentlichte Möglichkeit den zu syncenden Ordner mit dem Flag :cached zu versehen hatte allerdings schon eine Verfünffachung der Geschwindigkeit gebracht.
Die maximale Größe der Disk kann jetzt eingestellt werden, allerdings wird nur der tatsächliche Platz auf der Platte belegt. Das wird im Preferences Reiter Disk auch angezeigt.

Neue interne Url: docker.for.mac.host.internal

Letztes Jahr wurde die interne URl docker.for.mac.localhost eingeführt. Da Subdomains für localhost nicht spezifiziert sind, hat das nicht so richtig funktioniert. Mit docker.for.mac.host.internal funktioniert zumindest xdebug schon mal gut.

Docker for mac im lokalen Netzwerk

Wie auf dieser Seite zu lesen ist gibt es einige Einschränkungen für das Netzwerk. Mit ein paar Tricks laasen sich die meisten Standard Situationenn aber meistern.

xdebug für phpStorm

Mit localhost oder 127.0.0.1 funktioniert es NICHT, aber:
1. Mit der aktuellen IP des Rechners oder der entsprechenden domain aus /etc/hosts geht es, macht aber keinen Spaß wenn sich die IP bei Kunden ändert oder im Garten keine vorhanden ist.

2. Man kann eine Alias IP (z.B. 10.254.254.254) als Alias IP mit einer plist Datei einrichten. Das geht, ist aber nicht hilfreich wenn ich das Projekt auf einen anderen Rechner übertragen will.

3. Wenn ich die neue URL docker.for.mac.host.internal in den php Settings benutze, funktioniert xdebug unabhängig welche IP der Host hat oder ob überhaupt eine vorhanden ist.

Beispiel php Settings:

; XDebug
xdebug.remote_enable           = 1
xdebug.remote_connect_back     = 0
;xdebug.remote_host             = example.org
xdebug.remote_host             = docker.for.mac.host.internal
;xdebug.remote_host             = 10.254.254.254
xdebug.idekey                  = "PHPSTORM"

xdebug.cli_color               = 1
xdebug.max_nesting_level       = 1000

xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir     = '/tmp/debug/'

Andere Möglichkeiten im Netzwerk

Testen auf mobilen Geräten

Geht wenn man die IP des eigenen Rechners kennt. Wenn sich die IP aber ändert oder keine Internet Verbindung besteht geht das aber nicht.
Unter Systemeinstellungen > Freigaben gibt es den Punkt "Gerätename". Im Kleingedruckten gibt es die lokale Url des Macs. Mit Bearbeiten kann sie auch geändert werden. Wenn der Rechner in einem Netzwerk ist, wird diese Adresse auf die aktuelle IP gemapt.
Das ist hilfreich um Seiten auf mobilen Geräten im selben Netzwerk zu testen oder bei einem Code Sprint. Für Android Geräte muss man manchmal doch die IP des Rechners auf dem Docker läuft nehmen.

Alles in allem finde ich die Möglichkeiten Docker for Mac in wechselnden Netzwerken oder im Zug (eher ohne Internet), trotz der weiter oben erwähnten Einschränkungen zu benutzen, sehr erfreulich.

Artikel Suchen