2017-03-02 6 views
0

Ich habe eine docker-compose.yml Datei, die meinen Anwendungsserver startet. Ich verwende dann ein paar verschiedene Tools, um Integrations-/Stresstests durchzuführen.Konsistenter Hostname für Docker-Container/VM plattformübergreifend?

Auf meinem Mac startet der Anwendungsserver jedoch unter localhost und unter Windows startet er auf der VirtualBox VM unter 192.168.99.100.

Ich habe gehört, dass docker-machine ip ist eine plattformübergreifende Art und Weise zu Ihrem Docker-Container "zu finden", und es funktioniert für Windows:

[email protected] MINGW64 ~ 
$ docker-machine ip 
192.168.99.100 

Aber auf meinem Mac:

craig$ docker-machine ip 
Error: No machine name(s) specified and no "default" machine exists 

Ist gibt es eine Möglichkeit, docker-machine oder eine andere bereits etablierte Methode zum Finden der Container-Hostname auf eine plattformübergreifende Weise zu verwenden?

Mein Ziel wäre es, dass dies out-of-the-Box ohne jede Konfiguration auf einem neuen Mac und neue Windows-Umgebung ausgeführt werden. Ich kann alle meine Skripte aktualisieren, um nach Windows vs Mac (vs Unix) zu suchen, aber dann muss ich die Logik an einer Reihe von verschiedenen Orten duplizieren.

+0

Vielleicht so etwas? "docker inspect -f '{{Bereich .NetworkSettings.Networks}} {{. IPAddress}} {{end}}' containername" oder dies kann nützlich sein "docker Netzwerk inspect bridge" – barat

Antwort

1

Docker-Maschine bietet einen Wrapper um Einstellung $DOCKER_HOST in Ihrer Umgebung. Also kannst du diese Variable überprüfen, wenn sie definiert ist, entferne die Portnummer und das ist deine Ziel-IP. Und wenn es nicht definiert ist, können Sie localhost verwenden.

+0

Es ist unter Windows aufgefüllt (mit 'tcp: //192.168.99.100: 2376') aber nicht auf dem Mac - also denke ich, dass das funktionieren könnte. –

Verwandte Themen