Как использовать ebtables внутри Docker?

Когда я бегу /sbin/ebtables --list в контейнере Ubuntu Docker я получаю сообщение:

root@500790dca629:/core-release-4.8# /sbin/ebtables --list 
modprobe: ERROR: ../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.43-boot2docker/modules.dep.bin'
The kernel doesn't support the ebtables 'filter' table.

Как я могу включить ebtables в Docker?

1 ответ

По умолчанию докер не поддерживает эту возможность. Но вы можете передать ниже параметр при запуске docker-контейнера для поддержки возможностей Linux:

--cap-add       Add Linux capabilities
--cap-drop      Drop Linux capabilities  

Для возможности сети как iptables, ebtables и т. Д. Вы должны добавить NET_ADMIN способность как:

docker run -it --cap-add=NET_ADMIN ubuntu bash

если ebtables пакет не установлен, затем установите ebtables пакет в контейнере с помощью команды:

 sudo apt-get update
 sudo apt-get install ebtables

тогда перечислите ebtables:

/sbin/ebtables --list 
Bridge table: filter

Bridge chain: INPUT, entries: 0, policy: ACCEPT

Bridge chain: FORWARD, entries: 0, policy: ACCEPT

Bridge chain: OUTPUT, entries: 0, policy: ACCEPT

Добавление крепления помогло мне

    cap_add:
        - 'ALL'
    volumes:
        - '/dev:/dev'
        - '/lib/modules:/lib/modules'

root@linuxbridge-agent:/# ls /lib/modules 5.4.0-26-generic 5.4.0-37-generic 5.4.0-39-generic 5.4.0-40-generic

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