2017-01-17 2 views
4

Ich schreibe ein Dockerfile und ich brauche IPtables in Docker Container installiert werden. Ich muss eine Regel zur IP-Tabelle hinzufügen, während ich versuche, im "Host" -Netzwerkmodus zu laufen, und es scheint, dass ich IPtables für diesen Zweck installieren muss. Wenn ich versuche, die Regel wie folgt einzuschließen, erhalte ich den folgenden Fehler.Installation von iptables im Docker Container basierend auf 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) 

Vielleicht Iptables oder Ihr Kernel muss aktualisiert werden.

Ist es möglich, iptables mit root-Rechten auszuführen.

Antwort

8

--privileged Flag nicht mehr erforderlich. Beginnend mit Docker 1.2 können Sie Ihr Bild jetzt mit den Parametern --cap-add=NET_ADMIN und --cap-add=NET_RAW laufen lassen, die interne iptables erlauben.

2

Google zur Rettung.

IPTables in docker

Docker runtime privilege

TLDR Version:

docker run --privileged 
+1

Während es richtig ist, IMHO das Gefühl wie dies ist eine schlechte Idee für alles nähert sich eine Produktionsumgebung (oder Entwicklung, die Internet zugänglich ist) aus dem gleichen Grund, warum Sie keine Dienste als root ausführen. OP, bitte sehr vorsichtig sein. Es gibt bessere Möglichkeiten, diese Katze zu häuten, IMHO. –

+1

Einverstanden, aber ich habe gerade die Frage beantwortet, weil ich es hasse, wenn Leute die Frage untersuchen -vs- beantworten. – user2105103

+2

Stimmen Sie damit überein. Ich kenne die Umstände nicht, die OP vorhat, aber ich dachte, ich würde die Warnung nur für den Fall fallen lassen. –

Verwandte Themen