2014-09-18 3 views
15

जब डॉकर-राक्षस शुरू होता है तो यह iptables के लिए कुछ नियम जोड़ता है। जब सभी नियम iptables -F के माध्यम से हटा दिए जाते हैं तो मुझे डॉकर्स राक्षसों को फिर से बनाने के लिए डॉकर राक्षस को रोकना और पुनरारंभ करना होगा।डॉकर: डॉकर्स को अतिरिक्त iptables नियमों को फिर से कैसे बनाया जाए?

क्या डॉकर को इसके अतिरिक्त नियम दोबारा जोड़ने का कोई तरीका है?

उत्तर

9

आपके डॉकर सेवा को पुनरारंभ करने का सबसे अच्छा तरीका है, फिर यह आपके डॉकर नियमों को iptables में दोबारा जोड़ देगा। (पर देब आधारित: sudo service docker restart)

हालांकि, अगर आप सिर्फ आपकी सेवा को पुन: प्रारंभ बिना उन नियमों को बहाल करना चाहते, मैं बचाया मेरा तो आप निरीक्षण कर सकते हैं, और आप के लिए काम करने के लिए इसे समायोजित तो का उपयोग करके लोड sudo iptables-restore ./iptables-docker-ports.backup

संपादित करें और ./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

बहुत बहुत धन्यवाद, यह एकमात्र पोस्ट है जहां मुझे अपने आईपीटीबल्स नियमों को रीसेट करने के लिए डिफ़ॉल्ट डॉकर कॉन्फ़िगरेशन मिला, सही! – meucaa

7

यदि आप होस्ट पर उबंटू चला रहे हैं, तो आप डॉकर डिमन शुरू करने के बाद iptables नियमों को फ़ाइल में सहेजने के लिए iptables-save उपयोगिता का उपयोग कर सकते हैं। फिर, पुराने नियमों को फ़्लश करने के बाद, आप iptables-restore & सहेजे गए नियम फ़ाइल का उपयोग करके मूल डॉकर नियमों को बस पुनर्स्थापित कर सकते हैं।

यदि आप सभी पुराने iptables नियमों को पुनर्स्थापित नहीं करना चाहते हैं, तो आप केवल सहेजे गए नियमों को रखने के लिए सहेजे गए नियम फ़ाइल को बदल सकते हैं।

यदि आप एक और ऑपरेटिंग सिस्टम चला रहे हैं, तो आपको एक समान विकल्प मिल सकता है।

+1

को यह बचाने डोकर के लिए नियमों को हमेशा एक ही हैं? क्या मैं उन्हें अपने iptables में जोड़ सकता हूं-कॉन्फ़िगरेशन फ़ाइल को स्थायी रूप से पुनर्स्थापित कर सकता हूं? – Hubro

+0

विस्तृत करने के लिए: मैं iptables-persistent और एक कस्टम नियम फ़ाइल फ़ायरवॉल के रूप में उपयोग करता हूं। किसी भी समय मुझे एक बंदरगाह खोलने की ज़रूरत है, मैं अपनी नियम फ़ाइल संपादित करता हूं और इसे 'iptables-apply' का उपयोग करके लागू करता हूं। मैं अपनी नियम फ़ाइल में दस्तावेज़ीकरण के लिए एक साफ संरचना और बहुत सारी टिप्पणियां रखता हूं, इसलिए इसे ओवरराइट करना एक विकल्प नहीं है। – Hubro

+0

नियमों को अंधाधुंध रूप से सहेजने/पुनर्स्थापित करने से सावधान रहें क्योंकि उन्हें पुनरारंभ करते समय कंटेनर के आईपी बदल सकते हैं! – pHiL

संबंधित मुद्दे