ডকার পাত্রে আরও মেমরি কীভাবে নির্ধারণ করবেন


117

শিরোনামটি পড়ার সাথে সাথে আমি আমার ধারকটিকে আরও মেমরি দেওয়ার চেষ্টা করছি। আমি প্রাসঙ্গিক ক্ষেত্রে "আল্লাম / টমক্যাট-মাইএসকিএল" নামক ডকার হাবের একটি চিত্র ব্যবহার করছি।

আমি যখন কোনও বিশেষ পতাকাবিহীনভাবে এটিকে শুরু করি তখন 2GB এর মেমরি সীমা থাকে (যদিও আমি পড়ি যে সেট না থাকলে মেমরিটি সীমারেখা যায়)

এখানে আমার ডকারের পরিসংখ্যান

CONTAINER           CPU %               MEM USAGE / LIMIT       MEM %               NET I/O             BLOCK I/O           PIDS
ba57d6c9e9d2        0.22%               145.6 MiB / 1.952 GiB   7.29%               508 B / 508 B       0 B / 6.91 MB       68

আমি স্পষ্টভাবে মেমরি সেট করার চেষ্টা করেছি কিন্তু একই ফলাফলের সাথে

docker run -d --memory=10g --memory-swap=-1 -e MYSQL_PASSWORD=password -p 3307:3306 -p 8081:8080 aallam/tomcat-mysql

আমি পড়েছি সম্ভবত ভিএম এটিই সীমাবদ্ধ করছে। তবে কেন ডকারের পরিসংখ্যানগুলি দেখায় যে ধারক আকারের সীমা 2GB?

উত্তর:


203

আপনি যে 2GBসীমাটি দেখেন তা হ'ল ডকির দ্বারা চালিত ভিএম এর মোট স্মৃতি।

যদি আপনি উইন্ডো বা ডকার-ফর-ম্যাক ব্যবহার করে থাকেন তবে আপনি সহজেই এটিকে টাস্ক বারের তিমি আইকন থেকে বাড়িয়ে নিতে পারেন, তারপরে পছন্দসমূহ -> উন্নত: এ যান:

ডকার পছন্দসমূহ

তবে আপনি যদি ভার্চুয়ালবক্সকে পিছনে ব্যবহার করছেন তবে ভার্চুয়ালবক্স খুলুন, ডকার-মেশিন নির্ধারিত মেমরিটি নির্বাচন করুন এবং কনফিগার করুন।

ম্যাকের জন্য এটি দেখুন:

https://docs.docker.com/docker-for-mac/#memory

স্মৃতি ডিফল্টরূপে, ম্যাকের জন্য ডকার আপনার ম্যাকের মোট উপলব্ধ মেমরি থেকে বরাদ্দকৃত 2 জিবি রানটাইম মেমরি ব্যবহার করতে সেট করা আছে। আপনি যদি ম্যাকের জন্য ডকার কম মেমরি ব্যবহার করতে চান তবে এই সংখ্যাটি উচ্চতর (উদাহরণস্বরূপ 3 টি) বা কম (1 টি) সেট করে দ্রুত পারফরম্যান্স পেতে অ্যাপ্লিকেশনটিতে র‌্যামটি বাড়িয়ে তুলতে পারেন।

উইন্ডোজ জন্য:

https://docs.docker.com/docker-for-windows/#advanced

মেমরি - উইন্ডোজ লিনাক্স ভিএম এর জন্য ডকার যে পরিমাণ মেমরি ব্যবহার করে তা পরিবর্তন করুন


72
গুই ছাড়া আপনি কীভাবে এটি করবেন?
ফিলিপ

13
@ ফিলিপ, আপনার ব্যবহারের মামলাটি কী? উইন্ডোজের জন্য ডকার বা ম্যাকের জন্য ডকার গুলির সাথে আসে। আমি মনে করি যে আপনার কেস লিনাক্সের উপর নেটিভ ডকার পেয়েছে (কোনও ভার্চুয়াল মেশিন ছাড়াই, যা প্রোডাকশন সিস্টেম / ক্লাউডের ক্ষেত্রে)। এই জাতীয় ক্ষেত্রে আপনাকে ভিএম মেমরি সেট আপ করতে হবে না কারণ ডকারের ব্যবহারের জন্য হোল মেশিন রয়েছে।
রবার্ট

10
হ্যাঁ, আমি পরে এটি বুঝতে পেরেছি। সুতরাং আমি যদি চাই যে আমার ডকার কনটেইনারে> 4 গিগাবাইট র‌্যাম রয়েছে তবে আমি লিনাক্সে বিকাশ করলে আমার কিছু করার দরকার নেই?
ফিলিপ

3
এটি সম্ভব নয়, মূলত আপনি ডকারের ধারকগুলিতে মেমরি বরাদ্দ না করে পরিবর্তে কোনও ধারক কত মেমরি ব্যবহার করতে পারে তা সীমাবদ্ধ করে দেন । মনে রাখবেন যে বর্তমান উত্তরটি ধারকগুলিতে মেমরি নির্ধারণের বিষয়ে নয়, এটি ভার্চুয়াল মেশিনে মেমরি বরাদ্দ করার বিষয়ে যেখানে ডকার চালিত হয়।
রবার্ট

2
@ সিদ্ধার্থপ্যান্ট, সরাসরি একটি লিনাক্স বাক্সে চলমান ডকার যতটা মেমরি উপলব্ধ তা ব্যবহার করবে, সুতরাং ফিজিক্যালটি ছাড়া আর কোনও সীমা নেই।
রবার্ট

21

(ডকার পছন্দ -> অগ্রিম) থেকে আপনার ডকার মেশিনে সর্বাধিক মেমরি বরাদ্দ করুন

অগ্রিম সেটিংসের স্ক্রিনশট: অগ্রিম সেটিংসের স্ক্রিনশট।

এটি পাত্রে চলাকালীন সর্বাধিক সীমাবদ্ধ ডকার ব্যবহার করবে। এখন আপনার ইমেজটি 4 গিগ র্যাম বা তারও বেশি জন্য -m = 4g পতাকা সহ নতুন ধারক স্থানে চালান। যেমন

docker run -m=4g {imageID}

র‌্যাম সীমা বৃদ্ধি পরিবর্তনগুলি প্রয়োগ করতে ভুলবেন না। ডকার পুনরায় আরম্ভ করুন এবং ডাবল পরীক্ষা করুন যে রাম সীমাটি বৃদ্ধি পেয়েছে। এটি ডকারের পাত্রে র‌্যাম সীমাবদ্ধতা বৃদ্ধি না দেখানোর একটি কারণ হতে পারে।


17

আপনি যদি ডিফল্ট ধারক পরিবর্তন করতে চান এবং আপনি ভার্চুয়ালবক্স ব্যবহার করে থাকেন তবে আপনি এটি কমান্ডলাইন / সি এল এলির মাধ্যমে করতে পারেন:

docker-machine stop
VBoxManage modifyvm default --cpus 2
VBoxManage modifyvm default --memory 4096
docker-machine start
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.