GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

Wie richte ich den Netzwerk-Docker in Ubuntu Gnome 15.10 sauber ein?

In Ubuntu Gnome 15.10 funktioniert Docker fast sofort, aber es gibt eine Feinheit. Die Container scheinen nicht auf das Netzwerk zugreifen zu können, bis ich den Docker-Dienst neu starte.

Nach dem Booten des Hosts hat die Schnittstelle docker0 keine IP-Adresse.

$ ifconfig docker0
docker0   Link encap:Ethernet  HWaddr ea:03:cc:9c:7a:cd
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:108 (108.0 B)

Wenn ich dann einen Container starte bekommt die docker0 Schnittstelle nur eine ipv6 Adresse und vom Container ist soweit ich das beurteilen kann keine Netzwerkverbindung möglich. Ich kann die Host-IP, LAN-IPs oder Internet-IPs nicht anpingen. Ich verwende das ubuntu:trusty-Image und führe bash als Hauptprozess des Containers aus.

$ ifconfig docker0 
docker0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          inet6 addr: fe80::7801:6eff:fe86:6dd8/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:704 (704.0 B)  TX bytes:3917 (3.9 KB)

Wenn ich Docker neu starte, erhält Docker0 eine IPv4-Adresse (zusätzlich zur IPv6-Adresse) und alles funktioniert wie erwartet.

$ sudo service docker restart 
$ ifconfig docker0
docker0   Link encap:Ethernet  HWaddr 00:00:00:00:00:00
          inet addr:172.17.42.1  Bcast:0.0.0.0  Mask:255.255.0.0
          inet6 addr: fe80::7801:6eff:fe86:6dd8/64 Scope:Link
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:25 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:704 (704.0 B)  TX bytes:3917 (3.9 KB)

Natürlich kann ich den Docker-Dienst jedes Mal neu starten, wenn ich meinen Computer neu starte, oder wahrscheinlich ein Startskript hacken, um dies für mich zu tun (ich habe es nicht versucht). Kennt jemand eine saubere wie kann man das beheben?

Akzeptierte Antwort:

TL;DR:Ich hatte Docker mit „apt-get install docker.io“ installiert. Die Installation der neuesten Version nach https://docs.docker.com/installation/ubuntulinux/ behebt das Problem.

Nach der Untersuchung des Problems scheint es, dass die Version von Docker in 15.10 die Docker0-Schnittstelle nicht korrekt erstellen und initialisieren kann. Bei der ersten Ausführung (Start des Dienst-Dockers) wird die Schnittstelle erstellt, aber nicht initialisiert, und bei der nachfolgenden Ausführung (Neustart des Dienst-Dockers) wird sie initialisiert. Dies kann durch manuelles Hinzufügen und Löschen der Schnittstelle mit brctl konsistent reproduziert werden. Dieser Fehler wurde im neuesten Docker behoben.

Verwandte:Wie kann ich das Herunterfahren/Neustarten von Lightdm in 14.04 deaktivieren?
Ubuntu
  1. So richten Sie HAProxy in Ubuntu 16.04 ein

  2. So installieren Sie Docker unter Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  3. So richten Sie die Netzwerkschnittstelle unter Ubuntu, Debian und LinuxMint ein

  4. Wie passe ich den Ubuntu Gnome 3 Desktop an?

  5. Verwendung des netplan-Befehls unter Ubuntu

So richten Sie die Netzwerkbindung in Ubuntu 20.04 ein

So installieren Sie Docker unter Ubuntu 20.04, 18.04, 21.04

So starten Sie das Netzwerk unter Ubuntu 20.04 neu

So installieren Sie GNOME 40 unter Ubuntu 21.04

So installieren Sie GNOME unter Ubuntu 14.04

So installieren Sie Docker unter Ubuntu 14.04