Networking ist nicht eine meiner Stärken, also vergib mir, wenn ich etwas hier vermisse.Wie Docker Container in benutzerdefinierten Netzwerk debuggen, die nicht auf das Internet zugreifen können
Ich benutze Centos7 als mein Host-Betriebssystem. Docker Version 17.03.0-CE, bauen 60ccb22.
I schaffen ein Netzwerk mit:
docker network create --driver=bridge --subnet=10.19.0.0/16 development
I laufen, einen Behälter unter Verwendung von:
sudo docker run -dit --name=php-nginx1 --net=development --ip=10.19.74.23 --volume /vagrant/wordpress:/var/www/wordpress --expose 80 php-nginx
Wenn ich ping 216.58.216.36 (Google) aus dem Inneren des Behälters Ergebnisse sind:
PING 216.58.216.36 (216.58.216.36) 56(84) bytes of data. From 10.19.74.23 icmp_seq=1 Destination Host Unreachable
Wenn ich den Container ohne Angabe des Netzwerkes ausführen, kann ich 216.58.216.36 ohne Probleme anpingen.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default 10.19.0.1 0.0.0.0 UG 0 0 0 eth0
10.19.0.0 * 255.255.0.0 U 0 0 0 eth0
Route von dem Host:
Die Ergebnisse der ifconfig auf dem Host sind
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:7fff:fee2:8f4e prefixlen 64 scopeid 0x20<link>
ether 02:42:7f:e2:8f:4e txqueuelen 0 (Ethernet)
RX packets 13674 bytes 609692 (595.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16644 bytes 182882110 (174.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::5054:ff:fe22:5b53 prefixlen 64 scopeid 0x20<link>
ether 52:54:00:22:5b:53 txqueuelen 1000 (Ethernet)
RX packets 322262 bytes 409758704 (390.7 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 47924 bytes 3329709 (3.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.19.74.21 netmask 255.255.255.0 broadcast 10.19.74.255
inet6 fe80::a00:27ff:feb9:e12 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:b9:0e:12 txqueuelen 1000 (Ethernet)
RX packets 2 bytes 120 (120.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 28 bytes 2016 (1.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 84 bytes 7244 (7.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 84 bytes 7244 (7.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Ifconfig den Behälter bilden, ist: in
eth0 Link encap:Ethernet HWaddr 02:42:0a:13:4a:17
inet addr:10.19.74.23 Bcast:0.0.0.0 Mask:255.255.0.0
inet6 addr: fe80::42:aff:fe13:4a17/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1296 (1.2 KB) TX bytes:648 (648.0 B)
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:1
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Strecke die countainer Ergebnisse bilden Ergebnisse in:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 eth0
10.0.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0
10.19.0.0 0.0.0.0 255.255.0.0 U 0 0 0 br- ca991944118f
10.19.74.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
link-local 0.0.0.0 255.255.0.0 U 1003 0 0 eth1
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
Ich weiß nicht, was ich mit dem Downvote machen soll. Ich habe mir andere Fragen zu Docker-Containern angeschaut, die nicht auf das Internet zugreifen können, aber sie scheinen alle damit zu tun zu haben, dass Container überhaupt nicht auf externe Adressen zugreifen können. Dieser Container kann auf das Internet zugreifen, wenn er nicht dem von mir erstellten Netzwerk zugewiesen ist, aber nicht, wenn er mit dem von mir erstellten Netzwerk verbunden ist.
Da meine Netzwerkkenntnisse begrenzt sind, habe ich Schwierigkeiten zu finden, wo ich mit der Fehlersuche beginnen soll. Eine Lösung für dieses spezielle Problem wäre großartig, aber eine Möglichkeit, dieses Problem zu beheben, wäre noch besser.
Wie kann ich dieses Problem debuggen?
Ich kann an fast Null Gründe denken, warum Sie die manuelle Netzwerkkonfiguration für einen Wordpress-Container durchlaufen müssen. – user2105103
Was sind die Nachteile der manuellen Netzwerkkonfiguration jetzt, dass es für mich funktioniert? Was wäre Ihre Empfehlung, dies zu gestalten, wenn Sie keine manuelle Vernetzung verwenden? –
Portabilität .... – user2105103