Ich habe ein benutzerdefiniertes Netzwerk (Bridge-Modus) hb1 erstellt und 2 Container hinzugefügt. Ich kann jedoch von einem externen Host in meinem Netzwerk keine Verbindung zu ihnen herstellen.Verbinden mit Container von einem Remote-Computer
Ich überprüfte und befolgte die Anweisungen here und here so genau wie ich konnte.
[email protected]:~ $ docker network inspect hb1
[
{
"Name": "hb1",
"Id": "278a4ba8bb7a4a34b25b5f5fde9a965a807ff896d5e57c2b1d7d39af60d0a046",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": {},
"Config": [
{
"Subnet": "192.168.1.32/27",
"Gateway": "192.168.1.33"
}
]
},
"Internal": false,
"Containers": {
"7dc7be3ae45813450bb7f75a6e2c7b4d93e59aa147aa7d393061748b8201381a": {
"Name": "modest_bohr",
"EndpointID": "eda20bbb52319b10911f3da6f6afadbd2167298d5a9cfd5c91f933f4b6d5fe86",
"MacAddress": "02:42:c0:a8:01:22",
"IPv4Address": "192.168.1.34/27",
"IPv6Address": ""
},
"f12fbc30bcf5e37737bfe8c7868dcd40e6c632bb3672f5641ffd6960ede4f777": {
"Name": "infallible_torvalds",
"EndpointID": "92d0ecfad597485c25ad309d48c3c77b9368f25ebbd851b1168f59a795c497f2",
"MacAddress": "02:42:c0:a8:01:23",
"IPv4Address": "192.168.1.35/27",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
Wenn ich von meinem Docker Host ping, funktioniert es wie erwartet.
[email protected]: ~$ ping -c 1 192.168.1.34
PING 192.168.1.34 (192.168.1.34) 56(84) bytes of data.
64 bytes from 192.168.1.34: icmp_seq=1 ttl=64 time=0.474 ms
--- 192.168.1.34 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.474/0.474/0.474/0.000 ms
von einem Remote-Host kann der Container jedoch nicht erreicht werden.
[email protected]: ~$ ping -c 1 192.168.1.34
PING 192.168.1.34 (192.168.1.34) 56(84) bytes of data.
From 192.168.1.100 icmp_seq=1 Destination Host Unreachable
--- 192.168.1.34 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms
wie soll ich das Docker Benutzer definierten Netzwerk oder meinem lokalen Netzwerk konfigurieren, so dass ich den Behälter auf einer separaten IP-Adresse acces können?
192.168.0.0 ist ein privates Netzwerk. Um von einem Remote-Rechner auf Ihren Container zugreifen zu können, müssen Sie den Port Ihres Containers dem Port Ihres Servers zuordnen mit 'docker run -p port-of-server: port-of-container ...'. Dann kannst du mit der public-ip deines Servers + dem Port auf deinen Container zugreifen. – lvthillo
Das ist nicht korrekt, er muss den Port nicht als seinen Container als Teil der Bridge abbilden, und er verhält sich wie eine unabhängige Maschine. –