2014-09-18 29 views

Odpowiedz

9

Najlepszym sposobem jest zrestartowanie usługi dokowania, a następnie ponowne dodanie reguł dotyczących doków do iptables. (Na deb opartej: sudo service docker restart)

jednak, jeśli po prostu chcesz, aby przywrócić te zasady bez ponownego uruchamiania usługi, i zapisywane w kopalni, dzięki czemu można sprawdzić i dostosować go do pracy dla Ciebie, a następnie wczytać za pomocą sudo iptables-restore ./iptables-docker-ports.backup

edytować i zapisać do ./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

Wielkie dzięki, jest to jedyny wpis, w którym znalazłem domyślną konfigurację dockera, aby zresetować moje zasady iptables, idealnie! – meucaa

7

Jeśli używasz Ubuntu na hoście, możesz użyć narzędzia iptables-save, aby zapisać reguły iptables do pliku po uruchomieniu demona docker. Następnie po opróżnieniu starych reguł można po prostu przywrócić oryginalne reguły dokowania, używając zapisanego pliku reguł.

Jeśli nie chcesz przywracać wszystkich starych reguł iptables, możesz zmienić zapisany plik reguł, aby zachować tylko te, których potrzebujesz.

Jeśli używasz innego systemu operacyjnego, możesz znaleźć podobną opcję.

+1

Czy zasady dotyczące dokowania są zawsze takie same? Czy mogę na stałe dodać je do mojego pliku konfiguracyjnego iptables-restore? – Hubro

+0

Aby opracować: Używam iptables-persistent i niestandardowego pliku reguł jako zapory. Za każdym razem, gdy muszę otworzyć port, edytuję plik reguł i stosuję go za pomocą 'iptables-apply'. Zachowuję czystą strukturę i mnóstwo komentarzy do dokumentacji w pliku reguł, więc nadpisanie jej nie jest opcją. – Hubro

+0

należy zachować ostrożność, ślepo zapisując/przywracając reguły, ponieważ adresy IP kontenerów mogą ulec zmianie po ponownym uruchomieniu! – pHiL