2017-01-17 5 views
4

Я пишу файл докеров, и мне нужно установить IPtables в контейнер для докеров. Мне нужно добавить правило в таблицу IP, поскольку я пытаюсь запустить в сетевом режиме «хост», и, похоже, мне нужно установить IPtables для этой цели. когда я пытаюсь включить правило следующим образом, я получаю следующую ошибку.Установка iptables в контейнере докеров на основе alpinelinux

iptables -I INPUT -p tcp -m tcp --dport 8080 -j ACCEPT 


iptables v1.6.0: can't initialize iptables table `filter': Permission denied (you must be root) 

Возможно, iptables или ваше ядро ​​необходимо обновить.

Возможно ли запустить iptables с привилегиями root.

ответ

8

--privileged флаг не требуется больше. Начиная с Docker 1.2 Теперь вы можете запустить свое изображение с параметрами --cap-add=NET_ADMIN и --cap-add=NET_RAW, которые позволят использовать внутренние iptables.

2

Google на помощь.

IPTables in docker

Docker runtime privilege

TLDR версия:

docker run --privileged 
+1

Правильно, IMHO считают, что это плохая идея для чего-либо, приближающегося к производственной среде (или к разработке, доступной в Интернете) по той же причине, почему вы не запускаете службы с правами root. ОП, будьте очень осторожны. Есть лучшие способы кожи этой кошки, ИМХО. –

+1

Согласен, но я просто ответил на вопрос, потому что я ненавижу его, когда люди пересекают опрос - отвечая на вопрос. – user2105103

+2

Согласитесь с этим. Я не знаю обстоятельств, с которыми сталкивается ОП, но решил, что я наброшу предупреждение на всякий случай. –