В докере Ubuntu Gnome 15.10 почти работает из поля, но существует тонкость. Контейнеры, кажется, не могут получить доступ к сети, пока я не перезапускаю услуги докера.
После начальной загрузки хоста интерфейс docker0 не имеет никакого 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)
Если я затем запускаю контейнер, docker0 взаимодействуют через интерфейс, только получает адрес ipv6, и никакое сетевое соединение не возможно от контейнера насколько я могу сказать. Я не могу проверить с помощью ping-запросов IP хоста, дюйм/с LAN или интернет-дюйм/с. Я использую изображение ubuntu:trusty и выполняю удар как основной процесс контейнера.
$ 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)
Если я перезапускаю докера затем docker0, получает адрес ipv4 (в дополнение к адресу ipv6), и все работает как ожидалось.
$ 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)
Конечно, я могу перезапустить сервис докера каждый раз, когда я перезапускаю свою машину или вероятно взламываю сценарий запуска, чтобы сделать это для меня (я не попробовал). Кто-либо знает об очевидном способе для фиксации этого?
TL; DR: Я установил Докера, использующего "склонный - получают установку docker.io". При установке последней версии после https://docs.docker.com/installation/ubuntulinux / устраняет проблему.
После исследования проблемы кажется, что версия Докера в 15,10 не может и создать и инициализировать интерфейс docker0 правильно. На первом показе (сервисный докер запускаются) это создаст интерфейс, но не инициализирует его, и на последующем выполнении (сервисный перезапуск докера) это инициализирует его. Это может, последовательно воспроизводиться добавляя и удаляя интерфейс вручную с brctl. Эта ошибка была исправлена в последнем Докере.
Мне это - NetworkManager, который портит. Услуги докера создают мост, поскольку это должно затем представлять его на dbus. NetworkManager ударяет наблюдение нового интерфейса на dbus и попытке настроить его (так как достаточно глупо знать, что мост docker0 уже настроен прекрасный). NetworkManager иногда следует за конфигурированием (реконфигурировавшим) docker0, но иногда он перестанет работать. Таким образом, иногда Вы перезагружаете поле, и docker0 присвоят IP, другие времена, это не будет.
Для заделывания питания NetworkManager добавляют
iface docker0 inet manual
к /etc/network/interfaces
, принятие NetworkManager.conf
имеет
[ifupdown] managed=false
, который является значением по умолчанию по телефону 15.10
(ошибка должна, вероятно, быть повышена, чтобы мешать NetworkManager портить докера определенные интерфейсы)