Сквозной сетевой интерфейс с сетью моста Docker

У меня есть несколько контейнеров, работающих на хосте, которым необходимо обмениваться данными через сеть CAN, к которой подключен хост. Контейнеры также взаимодействуют через IP-сеть.

Один из способов сделать это — использовать сеть host. Тогда контейнеру становится доступен can0 сетевой интерфейс, т.е. он отображается в ip link и может использоваться так же, как и в хосте.

Однако host networking, конечно же, удаляет изоляцию IP-сети. В идеале я хотел бы продолжать использовать сеть bridge для сети ip, но сделать доступной для контейнеров только интерфейс can0.

Я понимаю, что хост-устройства в /dev (например, USB или audio devices) можно сделать доступными для контейнеров с помощью переключателя --device. Однако этот механизм работает только для блочных/символьных устройств в /dev, а сетевые интерфейсы (такие как can0) не имеют файла в /dev.

Возможно ли то, о чем я прошу? А именно, используя сеть IP-моста при выборочной передаче другого сетевого интерфейса в контейнеры?


person Naju    schedule 27.08.2020    source источник
comment
Этот вопрос также задавался здесь: stackoverflow.com /вопросы/63019226/. На данный момент единственным вариантом кажется --network=host или туннелирование трафика шины CAN через соединение UDP или TCP.   -  person Jos Seldenthuis    schedule 02.09.2020