Dans Ubuntu Gnome 15.10, Docker fonctionne presque immédiatement, mais il y a une subtilité. Les conteneurs ne semblent pas pouvoir accéder au réseau tant que je n'ai pas redémarré le service docker.
Après le démarrage de l'hôte, l'interface docker0 n'a pas d'adresse 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)
Si je démarre ensuite un conteneur, l'interface docker0 n'obtient qu'une adresse ipv6 et aucune connexion réseau n'est possible à partir du conteneur pour autant que je sache. Je ne peux pas cingler l'adresse IP de l'hôte, les adresses IP LAN ou les adresses IP Internet. J'utilise l'image ubuntu:trusty et j'exécute bash comme processus principal du conteneur.
$ 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)
Si je redémarre docker, docker0 obtient une adresse ipv4 (en plus de l'adresse ipv6) et tout fonctionne comme prévu.
$ 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)
Bien sûr, je peux redémarrer le service docker à chaque fois que je redémarre ma machine, ou probablement pirater un script de démarrage pour le faire à ma place (je n'ai pas essayé). Est-ce que quelqu'un connaît un propre comment résoudre ce problème ?
Réponse acceptée :
TL; DR :J'avais installé Docker en utilisant "apt-get install docker.io". L'installation de la dernière version suivant https://docs.docker.com/installation/ubuntulinux/ résout le problème.
Après avoir étudié le problème, il semble que la version de Docker dans 15.10 ne peut pas à la fois créer et initialiser correctement l'interface docker0. Lors de la première exécution (service docker start), il créera l'interface mais ne parviendra pas à l'initialiser, et lors de l'exécution suivante (service docker restart), il l'initialisera. Cela peut être reproduit de manière cohérente en ajoutant et en supprimant l'interface manuellement avec brctl. Ce bogue a été corrigé dans le dernier Docker.
En relation :Comment désactiver l'arrêt/le redémarrage à partir de lightdm en 14.04 ?