2014-09-18 10 views
15

All'avvio del demone docker aggiunge un paio di regole a iptables. Quando tutte le regole vengono eliminate tramite iptables -F, devo interrompere e riavviare il demone finestra mobile per ricreare le regole delle finestre mobili.Docker: come ricreare le regole aggiuntive di iptables per i dockers?

C'è un modo per fare in modo che la finestra mobile aggiunga le sue regole aggiuntive?

risposta

9

il modo migliore è riavviare il servizio finestra mobile, quindi aggiungere nuovamente le regole della finestra mobile a iptables. (Su deb-based: sudo service docker restart)

tuttavia, se si desidera solo per ripristinare tali norme senza riavviare il servizio, ho salvato la mia in modo da poter controllare, e regolarlo a lavorare per voi, quindi caricare utilizzando sudo iptables-restore ./iptables-docker-ports.backup

modificare e salvare questo per ./iptables-docker-ports.backup

# Generated by iptables-save v1.4.21 on Thu Apr 30 20:48:42 2015 
*nat 
:PREROUTING ACCEPT [18:1080] 
:INPUT ACCEPT [18:1080] 
:OUTPUT ACCEPT [22:1550] 
:POSTROUTING ACCEPT [22:1550] 
:DOCKER - [0:0] 
-A PREROUTING -m addrtype --dst-type LOCAL -j DOCKER 
-A OUTPUT ! -d 127.0.0.0/8 -m addrtype --dst-type LOCAL -j DOCKER 
-A POSTROUTING -s 172.17.0.0/16 ! -o docker0 -j MASQUERADE 
-A POSTROUTING -s 172.17.0.1/32 -d 172.17.0.1/32 -p tcp -m tcp --dport 80 -j MASQUERADE 
-A DOCKER ! -i docker0 -p tcp -m tcp --dport 3001 -j DNAT --to-destination 172.17.0.1:80 
COMMIT 
# Completed on Thu Apr 30 20:48:42 2015 
# Generated by iptables-save v1.4.21 on Thu Apr 30 20:48:42 2015 
*filter 
:INPUT ACCEPT [495:53218] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [480:89217] 
:DOCKER - [0:0] 
-A FORWARD -o docker0 -j DOCKER 
-A FORWARD -o docker0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -i docker0 ! -o docker0 -j ACCEPT 
-A FORWARD -i docker0 -o docker0 -j ACCEPT 
-A DOCKER -d 172.17.0.1/32 ! -i docker0 -o docker0 -p tcp -m tcp --dport 80 -j ACCEPT 
COMMIT 
# Completed on Thu Apr 30 20:48:42 2015 
+0

Grazie mille, è l'unico post in cui ho trovato la configurazione predefinita della finestra mobile per resettare le mie regole di iptables, perfetto! – meucaa

7

Se si esegue Ubuntu sull'host, è possibile utilizzare l'utilità iptables-save per salvare le regole iptables in un file dopo aver avviato il daemon docker. Quindi, una volta eliminate le vecchie regole, è possibile ripristinare semplicemente le regole originali della finestra mobile utilizzando iptables-restore & il file delle regole salvate.

Se non si desidera ripristinare tutte le vecchie regole di iptables, è possibile modificare il file delle regole salvate per conservare solo quelle necessarie.

Se stai utilizzando un altro sistema operativo, potresti trovare un'alternativa simile.

+1

sono le regole per finestra mobile sempre lo stesso? Posso aggiungerli permanentemente al mio file di configurazione iptables-restore? – Hubro

+0

Elaborare: utilizzo iptables-persistent e un file di regole personalizzato come firewall. Ogni volta che ho bisogno di aprire una porta modifico il mio file di regole e lo applico usando 'iptables-apply'. Mantengo una struttura pulita e molti commenti per la documentazione nel mio file delle regole, quindi sovrascriverlo non è un'opzione. – Hubro

+0

fai attenzione a salvare/ripristinare ciecamente le regole dato che gli IP dei container possono cambiare quando li riavvii! – pHiL

Problemi correlati