2015-01-14 12 views
15

में परिवर्तनों को कैसे बनाए रखें मैं डॉकर के लिए काफी नया हूं और इस समस्या पर ठोकर खाई है कि मैं किसी भी समाधान को समझने में असमर्थ हूं।boot2docker

मै मैक पर हूं इसलिए मुझे अपने पर्यावरण के रूप में Boot2Docker का उपयोग करना होगा। जहां तक ​​संभव हो सके "वास्तविक" स्थिति की नकल करने के लिए मैं boot2docker ssh का उपयोग करके वीएम के अंदर अपनी सारी चीजें करता हूं।

मेरी समस्या यह है कि जैसे ही मैं boot2docker के साथ boot2docker को बंद करता हूं या बंद करता हूं, मैं अपने सभी परिवर्तनों को खो देता हूं ... मैं अपने संपादन कैसे जारी रख सकता हूं?

मैंने जो कुछ किया है, वह कुछ निर्देशिकाएं,/उदाहरण के लिए ऑप्ट/साइट बनाने के लिए है, और कुछ कोड को प्रोफाइल में जोड़ा गया है। जब मैं boot2docker को फिर से शुरू करता हूं तो सब खत्म हो जाता है।

मैं/उपयोगकर्ता पर सब कुछ डाल करने के लिए कोशिश की है ... boot2docker 1.3 और ऊपर की तरफ ऑटो माउंट के रूप में उस स्थान लेकिन फिर मैं कुछ कंटेनरों पर --volumes का उपयोग कर समस्या (खासतौर पर MySQL कंटेनर ...)

मिल मुझे लगता है कि मैं डेटा स्टोरेज को हल कर सकता हूं, (- वॉल्यूम समस्या), लेकिन मैं पथ और अन्य पर्यावरण चर की परिभाषा कहां रखूं?

मैं शायद कुछ गलत समझ रहा हूँ तो मुझे सही दिशा ;-)

+1

एक प्रश्न (मैं यहां से रास्ता निकाल सकता हूं)। आप डॉकर कंटेनर भी सही बनाते हैं? यही वह जगह है जहां आप वॉल्यूम को माउंट करते हैं और यही वह जगह है जहां आप अपना MySQL आदि सेट करते हैं। Boot2Docker बस एक छोटा लिनक्स वीएम है जिसका प्रयोग मैक ओएसएक्स लिनक्स नहीं है। – wassgren

+0

मैं कंटेनर बनाता हूं और मैं वॉल्यूम माउंट करता हूं। लेकिन जब मैं अपने MYSQL कंटेनर के लिए अपने डेटाबेस को स्टोर करने के लिए वॉल्यूम मैप करता हूं, (/ उपयोगकर्ता ...) यह विफल रहता है ... यदि मैं वॉल्यूम/ऑप्ट/साइट्स/mysql/डेटा पर वॉल्यूम माउंट करता हूं तो यह सब काम करता है। मैं एक ऐसा वातावरण बनाने की कोशिश कर रहा हूं जहां मैं कंटेनरों के समूह को सेटअप, निर्माण, चलाने, शुरू करने और रोकने के लिए बैश स्क्रिप्ट का उपयोग करता हूं। मैं इन स्क्रिप्ट को इंगित करने के लिए अपना पथ चर सेट करना चाहता हूं। मेरे पास/उपयोगकर्ताओं पर स्क्रिप्ट हैं ... इसलिए वे सुरक्षित हैं लेकिन मैं अपने पैथ चर को लगातार वीएम के अंदर कैसे सेट करूं? –

+0

ठीक है, और क्या आप मुझे दिखा सकते हैं कि आप इसे माउंट करने के लिए क्या करते हैं? – wassgren

उत्तर

-2

डोकर कंटेनर स्थितिरहित में बात करें। यदि एक कंटेनर शटडाउन या पुनरारंभ होता है, तो कंटेनर की सामग्री को वापस अपने मूल स्थिति में ले जाया जाएगा, जिसका अर्थ यह है कि कंटेनर के अंदर होने वाले सभी बदलाव चले जाएंगे।

आप या तो संपादित छवि को सहेज/निर्यात कर सकते हैं या वॉल्यूम्स का उपयोग कर सकते हैं।

+1

समस्या कंटेनर नहीं है। मुझे पता है कि वे स्टेटलेस हैं। मुझे boot2docker वातावरण में समस्या आ रही है, जैसे ही मैं रुकता हूं और शुरू करता हूं, मैं हर बदलाव को खो देता हूं ... मैं/उपयोगकर्ताओं पर स्वचालित फ़ाइल सिस्टम का उपयोग करके समस्या के कुछ हिस्सों को हल कर सकता हूं लेकिन मैं परिवर्तन कैसे जारी रखूं स्टार्टअप स्क्रिप्ट्स, .profile इत्यादि ... –

+0

जहां तक ​​मुझे पता है,/डॉकर में होस्ट/होस्ट फ़ाइल जारी नहीं है। यदि आपने/etc/hosts में परिवर्तन किए हैं, तो कंटेनर को पुनरारंभ करने के बाद परिवर्तन समाप्त हो जाएंगे। मुझे लगता है कि वही होता है। प्रोफाइल? –

8

बूट 2 डॉकर छवि में अपने परिवर्तन करने के बाद, 'boot2docker save' कमांड चलाएं। Boot2docker को पुनरारंभ करने के बाद आपको अपने परिवर्तनों को जारी रखना चाहिए।

+0

एक आकर्षण की तरह काम – Quanlong

+1

दुर्भाग्य से, कोई 'डॉकर-मशीन सेव' नहीं है। समाधान के लिए [मेरा जवाब] देखें (http://stackoverflow.com/questions/27938193/how-to-persist-changes-in-boot2docker/37028510#37028510)। – pavelst

2

यदि आप Docker Toolbox का उपयोग कर रहे हैं, तो आप boot2docker के बजाय docker-machine का उपयोग करते हैं। में बताया गया है कि दुर्भाग्य से boot2docker savedocker-machine के बराबर नहीं है।

इसके बजाय, आपको boot2docker VM को पुनरारंभ करने वाली प्रारंभिक स्क्रिप्ट को जारी रखने के लिए अपने boot2docker VM के अंदर /var/lib/boot2docker/profile फ़ाइल का उपयोग करना चाहिए। this github issue में और देखें।

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