Ich habe gerade die Verwendung von Docker für Mac migriert, nachdem ich zuvor Docker Toolbox mit virtualbox für OSX verwendet habe.
Ich habe die IP Adresse der Maschine mit $(docker-machine ip default)
bekommen.
Gibt es eine zuverlässige Möglichkeit, die Hyperkit-IP-Adresse zu erhalten?
Danke!
Ich habe gerade die Verwendung von Docker für Mac migriert, nachdem ich zuvor Docker Toolbox mit virtualbox für OSX verwendet habe.
Ich habe die IP Adresse der Maschine mit docker-machine
bekommen.
Gibt es eine zuverlässige Möglichkeit, die Hyperkit-IP-Adresse zu erhalten?
Danke!
Meine aktuelle Lösung besteht darin, die Container mithilfe von Docker Machine (einer Linux-VM, die unter einer anderen IP-Adresse verfügbar ist) zu erstellen und den gesamten Datenverkehr der Container an die Docker-VM weiterzuleiten.
%Vor% Sie können den Netzwerkbereich Ihrer Andockcontainer mit localhost
und die IP-Adresse Ihrer Dockercomputer-VM mit -p
Im Gegensatz zur Docker Toolbox haben Docker für Windows und Docker für Mac das Gefühl, Docker wird direkt auf Ihrem Betriebssystem ausgeführt. Daher werden virtuelle, schlanke Maschinen verwendet, die unter leichtgewichtigen Hypervisoren ausgeführt werden (anstelle von VirtualBox ) und direkt von der ausführbaren Datei docker ausgeführt werden Daher werden sie nicht mit docker-machine angezeigt und Sie sehen keine andere IP-Adresse als localhost .
Docker für Windows basiert auf dem HyperV Hypervisor, der eine Netzwerkverbindung zu $ docker run -p 80:80 -d nginx
ermöglicht.
Docker für Mac basiert auf dem xhyve Hypervisor, dessen Implementierung nur eine Verbindung über den Socket localhost
bereitstellt.
So stellen Sie eine TCP-Verbindung für Docker für Mac bereit:
Installieren Sie socat . Mit brauen :
%code%
Führen Sie diesen socat Befehl aus, um TCP Anfragen an den Socket weiterzuleiten
%code%
Ordnen Sie auf %code%
Sie müssen den socat -Befehl beim Start gegebenenfalls ausführen.
Dies war zum Beispiel für mich nützlich, um den Webstorm nodeJS Debugger mit einem nodeJS Container zu verbinden (seit dem Schreiben docker debugging wird von Webstorm Docker Integration Plugin unterstützt, aber nicht über Unix-Sockets).
Es gibt keine docker0 Bridge auf macOS
Aufgrund der Art und Weise, in der das Netzwerk in Docker für Mac implementiert ist, können Sie in macOS keine docker0-Schnittstelle sehen. Diese Schnittstelle befindet sich tatsächlich in HyperKit.
Sie könnten docker image für socat verwenden, das jedes Mal startet, wenn Sie 'docker for mac' starten
docker run -d --restart = immer -p 2376: 2375 -v /var/run/docker.sock:/var/run/docker.sock bobrik / socat TCP4-LISTEN: 2375, fork, reuseaddr UNIX-CONNECT: /var/run/docker.sock
Suchen Sie Ihre Docker-API-IP-Adresse:
%Vor%Im Gegensatz zur Docker Toolbox haben Docker für Windows und Docker für Mac das Gefühl, Docker wird direkt auf Ihrem Betriebssystem ausgeführt. Daher werden virtuelle, schlanke Maschinen verwendet, die unter leichtgewichtigen Hypervisoren ausgeführt werden (anstelle von VirtualBox ) und direkt von der ausführbaren Datei docker ausgeführt werden Daher werden sie nicht mit docker-machine angezeigt und Sie sehen keine andere IP-Adresse als localhost .
Docker für Windows basiert auf dem HyperV Hypervisor, der eine Netzwerkverbindung zu tcp://localhost:2375
ermöglicht.
Docker für Mac basiert auf dem xhyve Hypervisor, dessen Implementierung nur eine Verbindung über den Socket unix:///var/run/docker.sock
bereitstellt.
So stellen Sie eine TCP-Verbindung für Docker für Mac bereit:
Installieren Sie socat . Mit brauen :
brew install socat
Führen Sie diesen socat Befehl aus, um TCP Anfragen an den Socket weiterzuleiten
socat TCP-LISTEN:2375,reuseaddr,fork,bind=localhost UNIX-CONNECT:/var/run/docker.sock
Ordnen Sie auf tcp://localhost:2375
Sie müssen den socat -Befehl beim Start gegebenenfalls ausführen.
Dies war zum Beispiel für mich nützlich, um den Webstorm nodeJS Debugger mit einem nodeJS Container zu verbinden (seit dem Schreiben docker debugging wird von Webstorm Docker Integration Plugin unterstützt, aber nicht über Unix-Sockets).
Es gibt keine docker0 Bridge auf macOS
Aufgrund der Art und Weise, in der das Netzwerk in Docker für Mac implementiert ist, können Sie in macOS keine docker0-Schnittstelle sehen. Diese Schnittstelle befindet sich tatsächlich in HyperKit.
Sie könnten docker image für socat verwenden, das jedes Mal startet, wenn Sie 'docker for mac' starten
docker run -d --restart = immer -p 2376: 2375 -v /var/run/docker.sock:/var/run/docker.sock bobrik / socat TCP4-LISTEN: 2375, fork, reuseaddr UNIX-CONNECT: /var/run/docker.sock
Suchen Sie Ihre Docker-API-IP-Adresse:
%Vor%Meine aktuelle Lösung besteht darin, die Container mithilfe von Docker Machine (einer Linux-VM, die unter einer anderen IP-Adresse verfügbar ist) zu erstellen und den gesamten Datenverkehr der Container an die Docker-VM weiterzuleiten.
%Vor% Sie können den Netzwerkbereich Ihrer Andockcontainer mit docker inspect
und die IP-Adresse Ihrer Dockercomputer-VM mit docker-machine ip
Tags und Links macos docker docker-machine