In Ubuntu Gnome 15.10 Docker funziona quasi immediatamente ma c'è una sottigliezza. I contenitori non sembrano essere in grado di accedere alla rete finché non riavvio il servizio Docker.
Dopo aver avviato l'host, l'interfaccia docker0 non ha alcun indirizzo IP.
$ 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)
Se quindi avvio un contenitore, l'interfaccia docker0 ottiene solo un indirizzo ipv6 e non è possibile alcuna connessione di rete dal contenitore per quanto posso dire. Non riesco a eseguire il ping dell'IP host, degli IP LAN o degli IP Internet. Sto usando l'immagine ubuntu:trusty ed eseguo bash come processo principale del contenitore.
$ 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)
Se riavvio docker, docker0 ottiene un indirizzo ipv4 (oltre all'indirizzo ipv6) e tutto funziona come previsto.
$ 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)
Ovviamente posso riavviare il servizio docker ogni volta che riavvio la mia macchina, o probabilmente hackerare uno script di avvio per farlo per me (non ho provato). Qualcuno sa di un pulito come risolvere questo problema?
Risposta accettata:
TL; DR:avevo installato Docker usando "apt-get install docker.io". L'installazione dell'ultima versione seguendo https://docs.docker.com/installation/ubuntulinux/ risolve il problema.
Dopo aver esaminato il problema, sembra che la versione di Docker in 15.10 non sia in grado di creare e inizializzare correttamente l'interfaccia docker0. Alla prima esecuzione (avvio della finestra mobile del servizio) creerà l'interfaccia ma non la inizializzerà e alla successiva esecuzione (riavvio della finestra mobile del servizio) la inizializzerà. Questo può essere riprodotto in modo coerente aggiungendo ed eliminando manualmente l'interfaccia con brctl. Questo bug è stato corretto nell'ultima finestra mobile.
Correlati:come disabilitare lo spegnimento/riavvio da lightdm in 14.04?