Как чисто установить сеть Docker in Ubuntu Gnome 15.10

В докере 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)

Конечно, я могу перезапустить сервис докера каждый раз, когда я перезапускаю свою машину или вероятно взламываю сценарий запуска, чтобы сделать это для меня (я не попробовал). Кто-либо знает об очевидном способе для фиксации этого?

7
задан 28 October 2015 в 08:34

2 ответа

TL; DR: Я установил Докера, использующего "склонный - получают установку docker.io". При установке последней версии после https://docs.docker.com/installation/ubuntulinux / устраняет проблему.

После исследования проблемы кажется, что версия Докера в 15,10 не может и создать и инициализировать интерфейс docker0 правильно. На первом показе (сервисный докер запускаются) это создаст интерфейс, но не инициализирует его, и на последующем выполнении (сервисный перезапуск докера) это инициализирует его. Это может, последовательно воспроизводиться добавляя и удаляя интерфейс вручную с brctl. Эта ошибка была исправлена в последнем Докере.

7
ответ дан 23 November 2019 в 06:28

Мне это - 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 портить докера определенные интерфейсы)

2
ответ дан 23 November 2019 в 06:28

Другие вопросы по тегам:

Похожие вопросы: