Как правильно настроить сетевой Docker в Ubuntu Gnome 15.10

В Ubuntu Gnome 15.10 Docker почти работает из коробки, но есть тонкость. Кажется, что контейнеры не имеют доступа к сети до тех пор, пока я не перезапущу службу докеров.

После загрузки хоста интерфейс 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-адрес хоста, IP-адреса LAN или IP-адреса.

$ 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)

Если я перезапущу docker, тогда docker0 получит адрес ipv4 (в дополнение к адресу ipv6), и все будет работать так же, как и при работе с bash. Ожидаемый.

$ 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)

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

1
задан 28 October 2015 в 19:34

1 ответ

Для меня это NetworkManager, который запутывается. Служба Docker создает мост, так как он затем предоставляет его на dbus. NetworkManager запускает новый интерфейс на dbus и пытается его настроить (поскольку достаточно глупо, чтобы знать, что мост docker0 уже настроен отлично). NetworkManager иногда удается настроить (переконфигурировать) docker0, но иногда он будет терпеть неудачу. Поэтому иногда вы перезагружаете окно, а docker0 будет назначаться IP, в других случаях это не будет.

Чтобы остановить использование NetworkManager, добавьте

iface docker0 inet manual

в /etc/network/interfaces, если NetworkManager.conf имеет

[ifupdown] managed=false

, который по умолчанию равен 15.10

(вероятно, ошибка должна быть увеличена, чтобы остановить NetworkManager от испортить интерфейсы докеров)

1
ответ дан 23 May 2018 в 16:17
  • 1
    Я собирался дать вам -1. Вот почему: Исходный вопрос: «Как правильно настроить сетевой Docker в Ubuntu Gnome 15.10?», Но я не вижу, как вы пытаетесь ответить на этот вопрос. Пожалуйста, нажмите изменить под своим ответом и попытаться ответить на вопрос. – MadMike 11 December 2015 в 20:56
  • 2
    я точно ответил и предоставил решение, которое должно добавить ifce docker0 inet manual в / etc / network / interfaces - вы пробовали это сделать? таким образом, человек, который задал вопрос, никогда не должен перезапускать докер-сервис, чтобы разобраться в отсутствующем ip-адресе docker0 - пожалуйста, предоставьте более чистое решение, если вы его знаете – greg one 12 December 2015 в 15:40
  • 3
    @gregone: Я ОП, спасибо за ваш вклад. Проблема уже решена. В моем случае я бы никогда не получил IP после перезагрузки, так что это может быть другая причина. В другой заметке вы можете захотеть использовать пунктуацию более либерально. – marcv81 12 December 2015 в 19:10
  • 4
    @greg Хорошо, я вижу, что вы do даете ответ. У меня просто были проблемы с головой. Извините, мне это не удалось. – MadMike 13 December 2015 в 16:03

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

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