Как использовать 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