Сеть хоста не имеет IP-сегмента, который содержит IP-адрес интерфейса сетевой модели хоста docker

docker #docker-network

#docker #docker-сеть

Вопрос:

Я получаю четыре типа моделей docker network snapshot:

введите описание изображения здесь

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

в моем случае я создал контейнер модели хоста:

 $ docker run --name container-bridge --network=host  -it --rm busybox:latest
 

и в контейнере у него есть 10 виртуальных интерфейсов.

 / # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 brd 127.255.255.255 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
    link/ether 02:50:00:00:00:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.65.3/24 brd 192.168.65.255 scope global deprecated dynamic noprefixroute eth0
       valid_lft 1415sec preferred_lft 0sec
    inet6 fe80::50:ff:fe00:1/64 scope link 
       valid_lft forever preferred_lft forever
3: tunl0@NONE: <NOARP> mtu 1480 qdisc noop qlen 1000
    link/ipip 0.0.0.0 brd 0.0.0.0
4: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop qlen 1000
    link/tunnel6 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00 brd 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00
5: services1@if6: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue 
    link/ether c2:db:47:39:c7:fc brd ff:ff:ff:ff:ff:ff
    inet 192.168.65.4 peer 192.168.65.5/32 scope global services1
       valid_lft forever preferred_lft forever
    inet6 fe80::c0db:47ff:fe39:c7fc/64 scope link 
       valid_lft forever preferred_lft forever
7: br-b7cc12043647: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue 
    link/ether 02:42:30:d7:06:a7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.49.1/24 brd 192.168.49.255 scope global br-b7cc12043647
       valid_lft forever preferred_lft forever
    inet6 fe80::42:30ff:fed7:6a7/64 scope link 
       valid_lft forever preferred_lft forever
8: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue 
    link/ether 02:42:9e:26:2d:f9 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:9eff:fe26:2df9/64 scope link 
       valid_lft forever preferred_lft forever
10: veth2fba778@if9: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue master br-b7cc12043647 
    link/ether 52:64:9d:7f:d1:01 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::5064:9dff:fe7f:d101/64 scope link 
       valid_lft forever preferred_lft forever
 

основной интерфейс предназначен eth0 для подключения к хосту (my macos), который имеет IP-адрес 192.168.65.3/24

но в моей macos я не нахожу IP-адрес под сегментом 192.168.65.0/24 .

 $ ifconfig -a | grep 192.168.65
 

Ответ №1:

См. раздел Использование сети хоста, в нем явно упоминается --net=host , что не работает на macos:

Сетевой драйвер хоста работает только на хостах Linux и не поддерживается на Docker Desktop для Mac, Docker Desktop для Windows или Docker EE для Windows Server.

Таким образом, сеть в контейнере наверняка не такая, как в вашей macos.