मैक-मशीन मेमोरी मैक को कैसे बढ़ाएं


108

मैं डॉकटर के लिए नया हूं, और इस ट्यूटोरियल के माध्यम से जाने की कोशिश कर रहा हूं कि डॉकियर छवि से मेस्मैक को स्थापित कर रहा हूं - http://docs.memsql.com/4.0/setup/docker/ । मैं एक मैक पर हूँ, और ट्यूटोरियल का उपयोग करता है boot2dockerजो लगता है कि हटा दिया गया है।

VM को चलाने के लिए 4GB मेमोरी की आवश्यकता है। ट्यूटोरियल निर्दिष्ट करता है कि यह कैसे करना हैboot2docker लेकिन मुझे docker-machine / docker toolbox के साथ ऐसा करने का तरीका नहीं मिल रहा है।

यहां वह कमांड है जिसका मैं उपयोग कर रहा हूं और जो त्रुटि मुझे मिल रही है वह सिर्फ बूट 2docker कॉन्फिगर को बदले बिना ट्यूटोरियल के माध्यम से जाने की कोशिश कर रहा है।

docker run --rm --net=host memsql/quickstart check-system
Error: MemSQL requires at least 4 GB of memory to run.

जवाबों:


111

जब आप docker मशीन बनाते हैं, तो आप मेमोरी साइज़ को नामांकित कर सकते हैं:

docker-machine create -d virtualbox --virtualbox-memory 4096 default

मुझे बताएं क्या इससे मदद मिलती है।


यह निश्चित रूप से स्मृति आवंटन को समायोजित करने के लिए सही जगह की तरह लगता है। हालाँकि, इस VM को पुनरारंभ करने के बाद भी वही त्रुटि हो रही है। में check-systemकार्यक्रम ( github.com/memsql/memsql-docker-quickstart/blob/master/... ), मैं इन पंक्तियों जो इस त्रुटि निर्धारित करेंगे देख रहा हूँ। ONE_MB = 1024 ** 2, virtual_memory = psutil.virtual_memory(), if virtual_memory.total < ONE_MB * 3700: sys.stderr.write("Error: MemSQL requires at least 4 GB of memory to run.\n")
डीजेएल्बो सिप

2
कॉन्फ़िगर को बदलकर यह काम नहीं कर पा रहा था, लेकिन डॉकटर मशीन vm को हटाने और पुनः बनाने के लिए जैसा कि ऊपर दिखाया गया है इस मुद्दे को हल किया गया!
डीजेएल्बो सेप

ज़रूर, मैं दूसरा रास्ता साफ करता हूं, ऐसा लगता है कि यह किसी भी अधिक काम नहीं करता है।
बीएमडब्लू

178

आप इसे कमांड लाइन के माध्यम से कर सकते हैं। उदाहरण के लिए, मशीन को डिफ़ॉल्ट 1cpu / 2048MB RAM रन से बदलने के लिए:

docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start

फिर आप अपनी सेटिंग्स की जाँच कर सकते हैं:

VBoxManage showvminfo default | grep Memory
VBoxManage showvminfo default | grep CPU

और docker-machine inspectचीजों की सही स्थिति की रिपोर्ट करने के लिए, ~/.docker/machine/machines/default/config.jsonअपने परिवर्तनों को प्रतिबिंबित करने के लिए संपादित करें ।


1
यह तब भी काम किया जब GUI (संस्करण 5.0.16) नहीं होगा।
20

6
यह उत्तर शीर्ष पर होना चाहिए
najajuice

5
ध्यान दें कि कमांड निष्पादित होने के बाद docker-machine inspectकोई परिवर्तन नहीं दिखाएगा। हालाँकि, यदि आप चलाते docker statsहैं तो आप देखेंगे कि परिवर्तन लागू कर दिए गए हैं।
slovit

@ स्कोवित और अन्य: आप config.jsonवास्तविक आकार को दर्शाने के लिए डॉकटर-मशीन फ़ाइल को संशोधित कर सकते हैं । उदाहरण: उदाहरण के लिए default, जैसा कि उदाहरण समाधान में उपयोग किया जाता है, ~/.docker/machine/machines/default/config.jsonफ़ाइल को संशोधित करें ताकि Memory(और CPUयदि संशोधित भी हो) के तहत उपप्रकार Driverको बदल दिया जाए 4096। फिर, docker-machine inspectउचित मूल्य दिखाएगा।
ScriptAutomate

80

डॉकर संस्करण 1.12.1 (बिल्ड: 12133) और मैकओएस पर उच्चतर के लिए यूआई से सीपीयू और रैम को बदलने और डॉकटर को पुनरारंभ करने का विकल्प है। आप टूलबार से वरीयताओं को पा सकते हैं। स्पष्टता के लिए चित्र संलग्न करना।

अपडेट: अगस्त २०२०: प्राथमिकताएँ -> संसाधन (@ swedge218 के लिए धन्यवाद)

पुराना चरण (शायद अब अशुद्ध है): वरीयताएँ -> उन्नत -> संसाधनों को समायोजित करें -> लागू करें और पुनः आरंभ करें

https://www.dropbox.com/s/znltd1v4r00nfpu/Screenshot%202017-03-24%2012.12.58.png?dl=0

डॉक उन्नत टैब (मेमोरी)


3
यह उन्नत टैब पर चला गया है। इसे साझा करने के लिए धन्यवाद।
गैबलरॉक्स

आदमी है कि दोनों स्पष्ट और पूरी तरह से unintuitive था - धन्यवाद!
एलियनवेब्यूगी

अगर मैं वर्चुअलबॉक्स के साथ dinghy का उपयोग करता हूं तो क्या वे परिवर्तन भी लागू होते हैं? या मुझे मेम साइज को एडजस्ट करने के लिए केवल VBoxManage का उपयोग करना चाहिए?
अर्तुर79

2
क्या इसके बराबर कमांड लाइन है? मेरे पास मैक के लिए डॉकर है लेकिन जाहिरा तौर पर डॉक-मशीन एलएस मुझे कुछ नहीं देता है इसलिए मैं डिफ़ॉल्ट मशीन को संशोधित नहीं कर सकता।
एंड्रिया बेरगानजो

यह प्राथमिकता है -> आज के रूप में संसाधन।
swedge218

42

यहां डॉकर मशीन मेंटेनर। मुझे नहीं लगता कि समायोजन करनाconfig.json मैन्युअल रूप से से काम चल जाएगा।

आपके दो विकल्प या तो मशीन को --virtualbox-memoryसेट के साथ बनाने के लिए हैं , या वर्चुअल बॉक्स GUI में वीएम की मेमोरी को समायोजित करने के लिए ("सेटिंग्स> सिस्टम" उस वीएम मेरे विचार से)। सुनिश्चित करें कि मशीन बंद है और इसमें थोड़ा सा स्लाइडर होना चाहिए जो काम करता हो।

EDIT: एक अन्य उत्तर से पता चलता है कि आप कमांड लाइन से इन-प्लेस ऑपरेशन का उपयोग कर सकते हैं VBoxManage


3
यह काम करता है लेकिन ध्यान दें कि docker-machine inspectवर्चुअलबॉक्स GUI में इसे बदलने के बाद भी मेमोरी की मूल मात्रा की रिपोर्ट करना जारी रखेगा।
तामलिन

2
यह सही है, docker-machine inspectसटीक राशि की रिपोर्ट करने के लिए , आपको संपादन करना होगा config.json(यही पर inspectइसकी जानकारी मिलती है)।
nathanleclaire


14

मुझे काम करने के लिए दूसरे जवाब नहीं मिले। मेरे लिए एकमात्र काम डिफ़ॉल्ट मशीन को हटाने और अधिक मेमोरी के साथ इसे फिर से बनाने का था।

docker-machine rm default
docker-machine create -d virtualbox --virtualbox-memory=4096 --virtualbox-cpu-count=2 --virtualbox-disk-size=50000 default

यह फिक्स यहां पाया गया था: https://www.ibm.com/developerworks/community/blogs/jfp/entry/Using_Docker_Machine_On_Windows?lang=en


14

अन्य उत्तरों ने दिखाया कि VBoxManage का उपयोग करके मेमोरी को कैसे बदला जाए:

docker-machine stop default
VBoxManage modifyvm default --memory 4096
docker-machine start default

कमांड लाइन से परिवर्तन की पुष्टि करने के लिए:

VBoxManage showvminfo default | grep Memory

या

docker-machine ssh default free

हाय cpep, क्या आप अपना उत्तर संपादित कर सकते हैं और कोड ब्लॉक को ठीक से प्रारूपित कर सकते हैं ?
टीटी।

4

लोमड़ी xhyve (macos के तहत एक और वर्चुअलाइजेशन) आप संशोधित कर सकते हैं ~ / .docker / मशीन / डिफ़ॉल्ट / config.json संपत्ति चालक / मेमोरी (1024 के लिए डिफ़ॉल्ट) तो परिवर्तन लागू करने के लिए docker मशीन को पुनरारंभ करें


मैं इसे के तहत पाया ~/.docker/machine/machines/default/config.json। धन्यवाद Thanks
तारेक एन एलसमनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.