2014-09-18 23 views

cevap

9

En iyi yol, docker servisinizi yeniden başlatmanız, daha sonra docker kurallarınızı iptables'e yeniden eklemektir. (On deb tabanlı: sudo service docker restart) Eğer sadece hizmet yeniden başlatmadan bu kuralları geri yüklemek istiyorsanız

Ancak, ben benimkiler öyle sonra kullanarak yüklemek incelemek ve sizin için çalışmak üzere ayarlayabilirsiniz kurtardı sudo iptables-restore ./iptables-docker-ports.backup

düzenlemek ve ./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

Çok teşekkürler, iptables kurallarını sıfırlamak için varsayılan docker yapılandırmasını bulduğum tek gönderi, mükemmel! – meucaa

7

Ana bilgisayarda Ubuntu çalıştırıyorsanız, docker arka planını başlattıktan sonra iptables kurallarını bir dosyaya kaydetmek için iptables-save yardımcı programını kullanabilirsiniz. Daha sonra eski kuralları temizledikten sonra, orijinal docker kurallarını iptables-restore & kaydedilmiş kurallar dosyasını kullanarak geri yükleyebilirsiniz.

Tüm eski iptables kurallarını geri yüklemek istemiyorsanız, yalnızca gerekli olanları saklamak için kaydedilmiş kural dosyasını değiştirebilirsiniz.

Başka bir işletim sistemi kullanıyorsanız, benzer bir alternatif bulabilirsiniz.

+1

bu tasarruf her zaman aynı docker için kurallar mı? Bunları iptables-restore config dosyasına kalıcı olarak ekleyebilir miyim? – Hubro

+0

Ayrıntılı bilgi için: iptables-persistent ve bir özel kural dosyasını güvenlik duvarı olarak kullanıyorum. Bir bağlantı noktasını açmam gerektiğinde, kural dosyamı düzenlerim ve 'iptables-apply' komutunu kullanarak uygularım. Kurallar dosyamda belgeler için temiz bir yapı ve çok sayıda yorum yapıyorum, bunun üzerine yazmak bir seçenek değildir. – Hubro

+0

, yeniden başlatırken kapların IP'lerinin değişebileceği gibi kuralları körü körüne kaydetme/geri yükleme konusunda dikkatli olun! – pHiL