Ubuntu 20.04 и Docker 19.03.8 - докер удаляет шлюз по умолчанию и прерывает подключение к хосту

У меня Ubuntu 20.04 работает со статическим IP. При первом запуске у меня нет проблем, и маршруты выглядят нормально:

# ping 4.2.2.2
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
64 bytes from 4.2.2.2: icmp_seq=1 ttl=55 time=15.1 ms
64 bytes from 4.2.2.2: icmp_seq=2 ttl=55 time=13.2 ms
# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    100    0        0 enp7s0
169.254.0.0     0.0.0.0         255.255.0.0     U     268    0        0 veth72d13a6
169.254.0.0     0.0.0.0         255.255.0.0     U     270    0        0 veth4282136
169.254.0.0     0.0.0.0         255.255.0.0     U     272    0        0 veth231344a
169.254.0.0     0.0.0.0         255.255.0.0     U     274    0        0 veth311ab6b
169.254.0.0     0.0.0.0         255.255.0.0     U     276    0        0 vethce07e31
169.254.0.0     0.0.0.0         255.255.0.0     U     278    0        0 veth634311f
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp7s0

Однако, как только я запускаю докер, маршрут изменяется и мой шлюз по умолчанию удаляется!

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         0.0.0.0         0.0.0.0         U     202    0        0 enp7s0
169.254.0.0     0.0.0.0         255.255.0.0     U     202    0        0 enp7s0
169.254.0.0     0.0.0.0         255.255.0.0     U     203    0        0 docker0
169.254.0.0     0.0.0.0         255.255.0.0     U     204    0        0 br-eaab0b58fedb
169.254.0.0     0.0.0.0         255.255.0.0     U     205    0        0 br-1c9dab29e4e2
169.254.0.0     0.0.0.0         255.255.0.0     U     206    0        0 br-22995aab5a8d
169.254.0.0     0.0.0.0         255.255.0.0     U     280    0        0 veth5abaa22
169.254.0.0     0.0.0.0         255.255.0.0     U     282    0        0 veth20fab69
169.254.0.0     0.0.0.0         255.255.0.0     U     284    0        0 veth45e9cab
169.254.0.0     0.0.0.0         255.255.0.0     U     286    0        0 vethab5951b
169.254.0.0     0.0.0.0         255.255.0.0     U     288    0        0 vethb6baf34
169.254.0.0     0.0.0.0         255.255.0.0     U     290    0        0 veth59c9ab9
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
172.20.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-ea0d0b58fedb
172.21.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-229956aa5a8d
172.28.0.0      0.0.0.0         255.255.0.0     U     0      0        0 br-1c938d29e4e2
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp7s0
# ping 4.2.2.2
PING 4.2.2.2 (4.2.2.2) 56(84) bytes of data.
^C
--- 4.2.2.2 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1016ms

Чтобы решить эту проблему, я могу применить netplan, но затем докер сломается из-за отсутствия маршрутизации к контейнерам. Я решил снова вручную добавить шлюз по умолчанию, но это ручная задача, в которой нет необходимости.

Есть мысли?

0
задан 28 May 2020 в 22:23

1 ответ

Я столкнулся с той же проблемой в Ubuntu 20.04 LTS и Docker 18.09.2. route -n показал тот же симптом. sudo netplan apply временно вернет его. Я смог исправить это, создав /etc/docker/daemon.json с установленным шлюзом по умолчанию.

{
    "debug": true,
    "default-gateway": "192.168.1.1"
}

После повторного запуска docker адрес шлюза, похоже, не изменился, и route -n по-прежнему выглядел хорошо.

1
ответ дан 5 January 2021 в 22:29

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

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