Ich versuche, mit Docker zu beginnen und die Ubiquiti video controller ausführen möchten. Ich habe Docker Toolbox installiert und es geschafft, den Container auf meinem Yosemite-Host laufen zu lassen und kann auf demselben Mac zugreifen, indem ich auf die von docker-machine ip default
zurückgegebene IP zugreife. Aber ich möchte auf anderen Rechnern im Netzwerk darauf zugreifen und eventuell Port-Forwarding auf meinem Heim-Router einrichten, damit ich außerhalb meines Heimnetzwerks darauf zugreifen kann.Wie kann ich auf einen Andock-Container zugreifen, der von einem anderen Host auf MacOSX ausgeführt wird?
Wie in boot2docker issue 160 vorgeschlagen, mithilfe der Virtualbox GUI konnte ich einen überbrückten Netzwerkadapter hinzufügen, aber nach dem Neustart der VM docker-machine
kann nicht mehr mit der VM verbinden. docker env default
hängt für eine lange Zeit, aber schließlich gibt einige Umgebungsvariablen zusammen mit der Nachricht Maximum number of retries (60) exceeded
zurück. Wenn ich die Shell mit diesen Variablen einrichten und versuchen, docker ps
auszuführen, erhalte ich den Fehler: An error occurred trying to connect: Get https://10.0.2.15:2376/v1.20/containers/json: dial tcp 10.0.2.15:2376: network is unreachable
.
Ich vermute, dass docker-machine einige Annahmen über die Netzwerkkonfiguration in der VM hat und ich mische sie auf.
docker-machine ssh ifconfig -a
gibt Folgendes zurück:
docker0 Link encap:Ethernet HWaddr 02:42:86:44:17:1E
inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
dummy0 Link encap:Ethernet HWaddr 96:9F:AA:B8:BB:46
BROADCAST NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0 Link encap:Ethernet HWaddr 08:00:27:37:2C:75
inet addr:192.168.1.142 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe37:2c75/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2996 errors:0 dropped:0 overruns:0 frame:0
TX packets:76 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:278781 (272.2 KiB) TX bytes:6824 (6.6 KiB)
Interrupt:17 Base address:0xd060
eth1 Link encap:Ethernet HWaddr 08:00:27:E8:38:7C
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fee8:387c/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:767 errors:0 dropped:0 overruns:0 frame:0
TX packets:495 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:122291 (119.4 KiB) TX bytes:116118 (113.3 KiB)
eth2 Link encap:Ethernet HWaddr 08:00:27:A4:CF:12
inet addr:192.168.99.100 Bcast:192.168.99.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fea4:cf12/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:430 errors:0 dropped:0 overruns:0 frame:0
TX packets:322 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:53351 (52.1 KiB) TX bytes:24000 (23.4 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth0
scheint eine vernünftige DHCP-Adresse von meinem Router zu bekommen.
Ich bin mir nicht sicher, ob das der richtige Ansatz ist oder ob ich den falschen Baum belle. Wenn ich den überbrückten Netzwerkadapter auf der VM arbeiten kann, weiß ich nicht, wie ich dann meinen Docker-Container dazu bringen soll, ihn zu benutzen. Ich habe versucht, im Internet hoch und niedrig zu suchen. Ich habe Dutzende Websites gefunden, die erklären, wie Sie auf den Container zugreifen müssen, indem Sie den Wert docker-machine ip default
statt localhost
verwenden, aber nichts, um zu erklären, wie von einem anderen Host aus zugegriffen werden kann. Vielleicht muss ich meine Googling-Fähigkeiten verbessern.
haben Sie eine Lösung? – gnz
@gnz Art von .. Siehe meine Antwort unten. Mehr Informationen [hier] (https://github.com/docker/machine/issues/1491) – chetstone