ভার্চুয়াল মেশিন থেকে ডকার কীভাবে আলাদা?


3688

আমি ডকার এবং একটি পূর্ণ ভিএম এর মধ্যে পার্থক্য বোঝার চেষ্টা করার জন্য ডকার ডকুমেন্টেশন পুনরায় পড়তে থাকি । এটি কীভাবে ভারী না হয়ে একটি সম্পূর্ণ ফাইল সিস্টেম, বিচ্ছিন্ন নেটওয়ার্কিং পরিবেশ ইত্যাদি সরবরাহ করতে পারে?

ডকার ইমেজে সফটওয়্যার স্থাপন করা (যদি এটি সঠিক শব্দটি হয়) তবে কেবল একটি সামঞ্জস্যপূর্ণ উত্পাদন পরিবেশে মোতায়েনের চেয়ে সহজ কেন?


10
ডকার বনাম কেভিএমের
এইচডিএভ

1
আপনি তাদের ইমেজ মধ্যে পার্থক্য খুঁজছেন - stackoverflow.com/questions/29096967/...
devesh-আহুজা

20
ডকার কোনও ভার্চুয়াল মেশিন নয় - এটি একটি কনফিগারেশন পরিচালন সরঞ্জাম।
aaa90210

3
সহজ কথায়: ভিএম -> তিনটি ভার্চুয়াল স্তর আপনার অ্যাপ্লিকেশন চালানোর অনুমতি দেওয়ার জন্য চলতে হবে, আপনি যদি কোনও সার্ভার ভার্চুয়ালাইজেশন করতে চান তবে আপনি যদি কেবল ওয়েব অ্যাপ্লিকেশন চালাতে চান তবে সেরা সমাধান নয়। ডকার -> আপনার আসল সিপিইউ এবং আপনার ওয়েব অ্যাপ্লিকেশনের মধ্যে কেবল একটি স্তর। আরও শক্তিশালী এবং আরও উন্নততর ক্লোনিং / মিররিং যদি আপনার ওয়েব অ্যাপ্লিকেশনটি কেবল এটির ভার্চুয়ালাইজের জন্য চালাতে হয়
ডেভিড কাস্ট্রোনভো

6
আসুন ভুলে যাবেন না যে ম্যাকের জন্য ডকার এবং উইন্ডোজের জন্য ডকার ভার্চুয়ালাইজেশন স্তরটি ব্যবহার করে।
শাপিশিফটার

উত্তর:


3431

ডকার প্রথমে লিনাক্স কনটেইনার ( এলএক্সসি ) ব্যবহার করেছিলেন , তবে পরে রানসি (পূর্বে লাইবকন্টেইনার হিসাবে পরিচিত ) এ স্যুইচ করেছেন , এটি তার হোস্ট হিসাবে একই অপারেটিং সিস্টেমে চলে। এটি এটিকে হোস্ট অপারেটিং সিস্টেমের রিসোর্সগুলি প্রচুর ভাগ করতে দেয়। এছাড়াও, এটি একটি স্তরযুক্ত ফাইল সিস্টেম ( আউএফএস ) ব্যবহার করে এবং নেটওয়ার্কিং পরিচালনা করে।

অউএফএস হ'ল স্তরযুক্ত ফাইল সিস্টেম, যাতে আপনার একমাত্র পঠন অংশ এবং লেখার অংশ থাকতে পারে যা একত্রে একত্রিত হয়। একমাত্র অপারেটিং সিস্টেমের সাধারণ অংশগুলি কেবল পঠন হিসাবে (এবং আপনার সমস্ত ধারকগুলির মধ্যে ভাগ করা) থাকতে পারে এবং তারপরে প্রতিটি কন্টেইনারকে তার নিজের মাউন্ট লেখার জন্য দেয়।

সুতরাং, ধরা যাক আপনার কাছে 1 জিবি ধারক চিত্র রয়েছে; আপনি যদি একটি পূর্ণ ভিএম ব্যবহার করতে চান তবে আপনার নিজের পছন্দসই 1 জিবি এক্স ভিএম থাকতে হবে। ডকার এবং অউএফএসের সাহায্যে আপনি সমস্ত পাত্রে 1 গিগাবাইটের বেশি পরিমাণে ভাগ করতে পারেন এবং আপনার কাছে 1000 টি ধারক থাকলেও আপনার পাত্রে ওএসের জন্য কেবল 1 গিগাবাইটের বেশি জায়গা থাকতে পারে (ধরে নিবেন যে তারা সমস্ত একই ওএস চিত্র চালাচ্ছে) ।

একটি সম্পূর্ণ ভার্চুয়ালাইজড সিস্টেম এটির জন্য বরাদ্দ প্রাপ্ত নিজস্ব সংস্থাগুলি পায় এবং নূন্যতম ভাগ করে নেবে। আপনি আরও বিচ্ছিন্নতা পান, তবে এটি অনেক বেশি ভারী (আরও সংস্থান প্রয়োজন)। ডকারের সাহায্যে আপনি কম বিচ্ছিন্নতা পান তবে পাত্রে হালকা ওজন (কম সংস্থান প্রয়োজন)। সুতরাং আপনি কোনও হোস্টে সহজেই হাজার হাজার কনটেইনার চালাতে পারেন, এবং এটি জ্বলতেও পারে না। জেনের সাথে এটি করার চেষ্টা করুন, এবং যদি আপনার সত্যিকারের বড় হোস্ট না থাকে তবে আমি এটি সম্ভব বলে মনে করি না।

একটি সম্পূর্ণ ভার্চুয়ালাইজড সিস্টেমটি সাধারণত শুরু হতে কয়েক মিনিট সময় নেয়, যেখানে ডকার / এলএক্সসি / রানসি পাত্রে কয়েক সেকেন্ড সময় লাগে এবং প্রায়শই এটি এক সেকেন্ডেরও কম হয়।

প্রতিটি ধরণের ভার্চুয়ালাইজড সিস্টেমের জন্য কুফল রয়েছে। আপনি যদি গ্যারান্টিযুক্ত সংস্থান সহ সম্পূর্ণ বিচ্ছিন্নতা চান তবে একটি পূর্ণ ভিএম হবার উপায়। যদি আপনি কেবল একে অপরের থেকে প্রক্রিয়াগুলি বিচ্ছিন্ন করতে চান এবং যুক্তিযুক্ত আকারের হোস্টে তাদের মধ্যে একটি টন চালাতে চান, তবে ডকার / এলএক্সসি / রানসি যাওয়ার উপায় বলে মনে হচ্ছে।

আরও তথ্যের জন্য, ব্লগ পোস্টগুলির এই সেটটি পরীক্ষা করে দেখুন যা এলএক্সসি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য ভাল কাজ করে।

ডকার ইমেজে সফটওয়্যার স্থাপন করা (যদি এটি সঠিক শব্দটি হয়) তবে কেবল একটি সামঞ্জস্যপূর্ণ উত্পাদন পরিবেশে মোতায়েনের চেয়ে সহজ কেন?

একটি সামঞ্জস্যপূর্ণ উত্পাদন পরিবেশ স্থাপন করা সম্পন্ন করা চেয়ে সহজ। এমনকি যদি আপনি শেফ এবং পুতুলের মতো সরঞ্জাম ব্যবহার করেন তবে সর্বদা ওএস আপডেট এবং অন্যান্য জিনিসগুলি হোস্ট এবং পরিবেশের মধ্যে পরিবর্তিত হয়।

ডকার আপনাকে একটি ভাগ করা চিত্রে ওএস স্ন্যাপশট করার ক্ষমতা দেয় এবং অন্যান্য ডকার হোস্টগুলিতে স্থাপন করা সহজ করে তোলে। স্থানীয়ভাবে, দেব, কিউ, প্রোড, ইত্যাদি: সমস্ত একই চিত্র। আপনি অন্যান্য সরঞ্জামের সাহায্যে এটি করতে পারবেন তা নিশ্চিত, তবে প্রায় সহজে বা দ্রুত নয়।

এটি পরীক্ষার জন্য দুর্দান্ত; ধরা যাক আপনার কয়েক হাজার পরীক্ষা আছে যা একটি ডাটাবেসের সাথে সংযোগ স্থাপন করতে হবে এবং প্রতিটি পরীক্ষার জন্য ডাটাবেসের একটি প্রাথমিক কপি প্রয়োজন এবং এটি ডেটাতে পরিবর্তন আনবে। এর সর্বোত্তম ব্যবহারটি হ'ল প্রতিটি পরীক্ষার পরে কাস্টম কোড অথবা ফ্লাইওয়ের মতো সরঞ্জাম সহ ডাটাবেসটি পুনরায় সেট করা - এটি খুব সময়সাপেক্ষ হতে পারে এবং এর অর্থ এই যে পরীক্ষাগুলি সিরিয়ালভাবে চালানো উচিত। যাইহোক, ডকারের সাহায্যে আপনি আপনার ডাটাবেসের একটি চিত্র তৈরি করতে পারেন এবং প্রতি পরীক্ষায় একটি উদাহরণ তৈরি করতে পারেন এবং তারপরে সমস্ত পরীক্ষাগুলি সমান্তরালে চালাতে পারেন কারণ আপনি জানেন যে এগুলি সমস্ত ডাটাবেসের একই স্ন্যাপশটের বিরুদ্ধে চলবে। যেহেতু পরীক্ষাগুলি সমান্তরালভাবে চলছে এবং ডকারের পাত্রে রয়েছে তারা একই সময়ে সমস্ত একই বাক্সে চালাতে পারে এবং আরও দ্রুত শেষ করা উচিত। পূর্ণ ভিএম দিয়ে এটি করার চেষ্টা করুন।

মন্তব্যগুলি থেকে ...

মজাদার! আমি মনে করি আমি "স্ন্যাপশট [টিং] ওএস" ধারণাটি দ্বারা এখনও বিভ্রান্ত হয়ে পড়েছি। ওএসের ইমেজ তৈরির মাধ্যমে কেউ কীভাবে এটি করতে পারে?

ঠিক আছে, দেখুন আমি ব্যাখ্যা করতে পারি কিনা। আপনি একটি বেস চিত্র দিয়ে শুরু করুন, এবং তারপরে আপনার পরিবর্তনগুলি করুন, এবং ডকার ব্যবহার করে সেই পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ করুন এবং এটি একটি চিত্র তৈরি করে creates এই চিত্রটিতে কেবল বেস থেকে পার্থক্য রয়েছে। আপনি যখন নিজের ইমেজটি চালাতে চান, আপনার বেসও প্রয়োজন এবং এটি একটি স্তরযুক্ত ফাইল সিস্টেম ব্যবহার করে আপনার চিত্রটি বেসের শীর্ষে রাখে: উপরে উল্লিখিত হিসাবে, ডকার অউএফএস ব্যবহার করে। এটিএফএস বিভিন্ন স্তরগুলিকে একত্রে মার্জ করে এবং আপনি যা চান তা পেয়ে যান; আপনার এটি চালানো দরকার আপনি আরও এবং আরও বেশি চিত্র (স্তর) যুক্ত করা চালিয়ে যেতে পারেন এবং এটি কেবল ভিন্নতাগুলি সংরক্ষণ করতে থাকবে। যেহেতু ডকার সাধারণত একটি রেজিস্ট্রি থেকে রেডিমেড ইমেজের শীর্ষে তৈরি করে , আপনাকে খুব কমই নিজেকে পুরো ওএস "স্ন্যাপশট" করতে হবে।


238
কেন, কিছু জায়গায় আপনি ওকে কার্নেলের সাথে মিশ্রিত করেন। হোস্টের সমস্ত পাত্রে একই কার্নেলের অধীনে চালিত হয়, তবে বাকি ওএস ফাইলগুলি প্রতিটি ধারক অনুযায়ী অনন্য হতে পারে।
অ্যান্ডি

22
মজাদার! আমি মনে করি আমি "স্ন্যাপশট [টিং] ওএস" ধারণাটি দ্বারা এখনও বিভ্রান্ত হয়ে পড়েছি। ওএসের ইমেজ তৈরির মাধ্যমে কেউ কীভাবে এটি করতে পারে?
zslayton

7
@ মুুর্তজা ৫২ তারা বিভিন্ন ফাইল সিস্টেমের জন্য সমর্থন যোগ করছে যাতে আউফগুলি যে কোনও সমস্যা হওয়া উচিত নয়। 32 বিট সমর্থন কখন যুক্ত হবে তা নিশ্চিত নন, জোরালো চাহিদা হয়েছে বলে মনে করবেন না, তাই এটি অগ্রাধিকার তালিকায় কম, তবে আমি ভুল হতে পারি।
কেন

21
@ মাইক: ... যা নিঃসন্দেহে ফ্রিবিএসডি কারাগার দ্বারা অনুপ্রাণিত হয়েছিলHISTORY The jail utility appeared in FreeBSD 4.0.
স্টিফান প্যালেটা

21
@ মাইক এর যে মন্তব্যটি মুছে ফেলা হয়েছে বলে মনে হচ্ছে আমরা তার প্রতিক্রিয়াটির বিষয়ে কী উত্তর দিচ্ছি তা নিয়ে যারা ভাবছেন তাদের মধ্যে এটি হ'ল: <এক জিনিস যা অনুপস্থিত তা হ'ল লিনাক্স কনটেইনারগুলি অনুপ্রেরণার সত্যিকারের উত্সের ক্লোন : সোলারিস পাত্রে। 2004 এ ফিরে আসুন ... এটি একটি বিপ্লবী ধারণা এবং সাশ্রয়ী মূল্যের হোস্ট ভার্চুয়াল মেশিনগুলি করার সত্যিকারের পারফরম্যান্ট a জয়েন্ট হ'ল আমি প্রথম ...>
জেফরি 'জেফ' লিম

557

ভাল উত্তর। ভিটেএম বনাম কনটেইনারের চিত্র উপস্থাপনের জন্য, নীচের একটিকে দেখুন।

এখানে চিত্র বর্ণনা লিখুন

সূত্র


20
<স্ট্রাইক> যতদূর আমি বুঝতে পারি, "ডকার ইঞ্জিন" এর উপরে একটি ভাগ করা লিনাক্স কার্নেল থাকা উচিত। তারপরে সাধারণত ভাগ করে নেওয়া বিন / libs রয়েছে। তারপরে প্রথমে আসে বিন / লিবস এবং অ্যাপ্লিকেশনগুলি যা প্রতিটি পাত্রে নির্দিষ্ট। আমি ভুল হলে দয়া করে আমাকে সংশোধন করুন </ </ স্ট্রাইক> আমি ভুল ছিলাম। ডকার চিত্রগুলি হোস্টের সাথে কার্নেলটি ভাগ করে, superuser.com/questions/889472/… দেখুন । তবে, ধারকগুলির ইউনিয়ন ফাইল সিস্টেমটি বর্ণনা করার জন্য, ডকার ইঞ্জিনের উপরে সরাসরি লিবস / বিনের একটি ভাগ স্তর থাকতে পারে।
বেটামোস

13
উপরের ছবিটিতে আমার সমস্যা আছে, কারণ হাইপারভাইজারটি বেয়ার মেটাল / অবকাঠামোতে ইনস্টল করা যেতে পারে তবে ডকেটটি (এখনও) পারেনা
রেজা

@ রেজা, আমি সম্মতি দিচ্ছি যে হাইপারভাইজারকে বেয়ার মেটাল ইনস্টল করা যেতে পারে তবে মূল বিষয় হ'ল অ্যাপসের ধারককরণের জন্য ডকারের পরামর্শ দেওয়া হয় এবং কীভাবে ভার্চুয়ালাইজেশন সীমাবদ্ধ করা যায় বা এড়ানো যায় যা কিছু পরিস্থিতিতে প্রয়োজন / প্রযোজ্য নয়। কেন মধ্যে Cochrane বিস্তারিতভাবে সব কিছু ব্যাখ্যা করে stackoverflow.com/a/16048358/2478933
manu97

4
এটি ডকার ইঞ্জিন কী তা পরিষ্কার করে না । খুব বিমূর্ত ছবি।
kyb

9
কনটেইনার এবং কার্নেলের মধ্যে কোনও "ডকার ইঞ্জিন" স্তর নেই, পাত্রে কেবল কার্নেলের বিশেষ সেটিংস (নেমস্পেসস,
সিগ্রুপস

503

ভার্চুয়ালাইজেশন এবং ধারকগুলি কীভাবে নিম্ন স্তরে কাজ করে তা বুঝতে সহায়ক হতে পারে। এটি অনেক কিছুই সাফ করবে।

দ্রষ্টব্য: আমি নীচে বর্ণনায় কিছুটা সহজ করছি। আরও তথ্যের জন্য রেফারেন্স দেখুন।

ভার্চুয়ালাইজেশন কীভাবে নিম্ন স্তরে কাজ করে?

এই ক্ষেত্রে ভিএম ম্যানেজার সিপিইউ রিং 0 (বা নতুন সিপিইউগুলিতে "" রুট মোড ") গ্রহণ করে এবং অতিথি ওএসের নিজস্ব হার্ডওয়্যার রয়েছে এমন ধারণা তৈরি করার জন্য অতিথি ওএস দ্বারা করা সমস্ত সুবিধাযুক্ত কলগুলি বাধা দেয়। মজার ঘটনা: 1998 এর আগে x86 আর্কিটেকচারে এটি অর্জন করা অসম্ভব বলে মনে করা হয়েছিল কারণ এই ধরণের বাধা দেওয়ার কোনও উপায় ছিল না। ভিএমওয়্যার-এর লোকেরা প্রথম যারা এই অর্জনের জন্য অতিথি ওএসের সুবিধামত কলগুলির জন্য স্মরণে এক্সিকিউটেবল বাইটগুলি পুনরায় লেখার ধারণা নিয়েছিলেন।

নেট এফেক্টটি হ'ল ভার্চুয়ালাইজেশন আপনাকে একই হার্ডওয়্যারে দুটি সম্পূর্ণ ভিন্ন ওএস চালানোর অনুমতি দেয়। প্রতিটি অতিথি ওএস বুটস্ট্র্যাপিং, কার্নেল লোড করার সমস্ত প্রক্রিয়া চালিয়ে যায় আপনার খুব কঠোর সুরক্ষা থাকতে পারে, উদাহরণস্বরূপ, অতিথি ওএস হোস্ট ওএস বা অন্যান্য অতিথি এবং মেস জিনিসগুলিতে সম্পূর্ণ অ্যাক্সেস পেতে পারে না।

পাত্রে নিম্ন স্তরে কীভাবে কাজ করা হয়?

২০০ 2006-এর আশেপাশে গুগলের কিছু কর্মচারী সহ লোকেরা নেমস্পেসস নামে নতুন কার্নেল স্তরের বৈশিষ্ট্য প্রয়োগ করে (তবে ধারণাটি অনেক আগে ফ্রিবিএসডি-তে বিদ্যমান ছিল)। ওএসের একটি কাজ হ'ল নেটওয়ার্ক এবং ডিস্কের মতো বিশ্বব্যাপী সংস্থানগুলি প্রক্রিয়াগুলিতে ভাগ করার অনুমতি দেওয়া। কী হবে যদি এই বিশ্বব্যাপী সংস্থানগুলি নেমস্পেসে মোড়ানো থাকে যাতে সেগুলি কেবল একই নামস্থানে চলমান প্রক্রিয়াগুলিতেই দৃশ্যমান হয়? বলুন, আপনি ডিস্কের একটি অংশ পেতে পারেন এবং এটিকে নেমস্পেস এক্সে রেখে দিতে পারেন এবং তারপরে নেমস্পেস ওয়াইতে চলমান প্রক্রিয়াগুলি এটি দেখতে বা অ্যাক্সেস করতে পারে না। একইভাবে, নেমস্পেস এক্স-তে থাকা প্রক্রিয়াগুলি মেমরির যে কোনও অংশকে নামস্থান ওয়াইয়ের জন্য বরাদ্দ করা হয়েছে তা অ্যাক্সেস করতে পারে না X অবশ্যই, এক্সের প্রক্রিয়াগুলি নামপথ ওয়াইয়ের প্রসেসগুলিতে দেখতে বা কথা বলতে পারে না This এটি বিশ্বব্যাপী সংস্থানগুলির জন্য এক ধরণের ভার্চুয়ালাইজেশন এবং বিচ্ছিন্নতা সরবরাহ করে। ডকার এইভাবে কাজ করে: প্রতিটি ধারক তার নিজস্ব নামস্থানে চলে তবে ঠিক একই ব্যবহার করেঅন্যান্য পাত্রে হিসাবে কার্নেল। বিচ্ছিন্নতা ঘটে কারণ কার্নেল প্রক্রিয়াটির জন্য নির্ধারিত নাম স্থানটি জানে এবং API কল করার সময় এটি নিশ্চিত করে যে প্রক্রিয়াটি কেবল নিজের নামস্থানে সংস্থানগুলি অ্যাক্সেস করতে পারে।

ভিএমএম বনাম কনটেইনারগুলির সীমাবদ্ধতাগুলি এখন স্পষ্ট হওয়া উচিত: আপনি ভিএমএসের মতো পাত্রে সম্পূর্ণ ভিন্ন ওএস চালাতে পারবেন না। তবে আপনি লিনাক্সের বিভিন্ন ডিস্ট্রোগুলি চালাতে পারেন কারণ তারা একই কার্নেলটি ভাগ করে। বিচ্ছিন্নতা স্তরটি ভিএম এর মতো শক্তিশালী নয়। প্রকৃতপক্ষে, "অতিথি" ধারকটির প্রথম দিকে বাস্তবায়নের সময় হোস্টের দায়িত্ব নেওয়ার একটি উপায় ছিল। এছাড়াও আপনি দেখতে পাচ্ছেন যে আপনি যখন নতুন ধারকটি লোড করবেন তখন ওএসের সম্পূর্ণ নতুন কপিটি ভিএম এর মতো শুরু হয় না। সমস্ত ধারক একই কর্নেল ভাগ করে। এজন্য পাত্রে হালকা ওজন হয়। ভিএম এর বিপরীতে, আপনাকে কনটেইনারগুলিতে মেমরির উল্লেখযোগ্য অংশটি পূর্ব বরাদ্দ করতে হবে না কারণ আমরা ওএসের নতুন অনুলিপিটি চালাচ্ছি না। এটি একটি ওএসে কয়েক হাজার কনটেইনার চালাতে সক্ষম করে সেগুলি স্যান্ডবক্স করার সময় যা আমরা যদি তার নিজস্ব ভিএম-তে ওএসের পৃথক অনুলিপি চালাচ্ছিলাম তবে এটি সম্ভব নাও হতে পারে।


26
বাহ, দুর্দান্ত নিম্ন-স্তরের ব্যাখ্যার জন্য ধন্যবাদ (এবং historicalতিহাসিক তথ্য)। আমি এটি খুঁজছিলাম এবং উপরে পাওয়া যায় না। আপনি কি বোঝাতে চেয়েছেন দ্বারা "আপনি লিনাক্স বিভিন্ন ডিস্ট্রো চালাতে পারেন, কারণ তারা ভাগ একই কার্নেল না।" ? আপনি কি বলছেন যে কোনও অতিথি পাত্রে অবশ্যই একই লিনাক্স কার্নেল সংস্করণ থাকতে হবে বা এটি কোনও ব্যাপার নয়? যদি আমি অতিথির উপর কোনও ওএস কমান্ড প্রার্থনা করি তবে তা কেবল অতিথির কার্নেলের সমর্থিত কিনা তা বিবেচ্য নয়। অথবা উদাহরণস্বরূপ অতিথি কার্নেলে একটি বাগ ঠিক করা হয়েছে তবে হোস্ট কার্নেলে নেই। সমস্ত অতিথি বাগটি প্রকাশ করবে, তাই না? যদিও অতিথিদের প্যাচ দেওয়া হয়েছিল।
Jeach

7
@ জ্যাচ: পাত্রে তাদের নিজস্ব কার্নেল নেই, তারা হোস্টের মধ্যে একটি ভাগ করে / ব্যবহার করছে। সুতরাং আপনি যে পাত্রে একই মেশিন / ভিএম-তে বিভিন্ন কার্নেলগুলির প্রয়োজন তা চালাতে পারবেন না run
ব্যবহারকারী 276648

2
প্রশ্ন: আপনি লিখেছেন যে গুগলের কিছু কর্মচারী 1996 এর আশেপাশে নেমস্পেসের কার্নেল বৈশিষ্ট্যে জড়িত ছিলেন - তবুও গুগল 1998 সালে প্রতিষ্ঠিত হয়নি you আপনি কি এমন লোকদের অর্থ দিয়েছেন যাঁরা পরে গুগল কর্মচারী হয়ে উঠবেন?
মার্টিন Gjaldbaek

3
@ মার্টিন - ২০০ 2006 সালটি দেখার জন্য ধন্যবাদ। এছাড়াও আমার উল্লেখ করা উচিত যে ২০০২ সাল থেকে লিনাক্সে বিভিন্ন ধরণের নেমস্পেসের অস্তিত্ব ছিল তবে ২০০ 2006 এর সময় এটি কাজ ছিল যা কনটেইনারাইজেশনের ভিত্তি তৈরি করেছিল। আমি রেফারেন্স সহ উত্তর আপডেট করেছি।
শীতল শাহ

20
+1 এটি চিহ্নিত উত্তর হতে হবে, অন্য উত্তরগুলি যখন কিছু স্পষ্টতা দেয়, কেবলমাত্র নীচের স্তরের নীচের ব্যাখ্যাটি কীভাবে এই প্রযুক্তিটি কাজ করে তা পরিষ্কার করতে পারে, 'প্রক্রিয়াগুলি তাদের নিজের নাম = স্পটে ধার্য করা হয়েছে "। আপনাকে অনেক ধন্যবাদ, আমি এখন এটি পেয়েছি।
টিনো ম্যাকলারেন

328

আমি কেন কোচরানের উত্তর পছন্দ করি like

তবে আমি এখানে অতিরিক্ত দৃষ্টিকোণ যুক্ত করতে চাই, এখানে বিস্তারিত বিবরণ দেওয়া হয়নি। আমার মতে ডকার পুরো প্রক্রিয়াতেও আলাদা। ভিএমএসের বিপরীতে, ডকার হার্ডওয়ারের সর্বোত্তম সংস্থান ভাগ করার বিষয়ে (কেবল) নয়, তদুপরি এটি প্যাকেজিং অ্যাপ্লিকেশনটির জন্য একটি "সিস্টেম" সরবরাহ করে (মাইক্রো সার্ভিসেসের সেট হিসাবে প্রয়োজনীয়) তবে এটি প্রয়োজনীয় নয়।

আমার কাছে এটি আরপিএম, ডেবিয়ান প্যাকেজগুলি, মাভেন , এনপিএম + গিট এবং একপাশে পুতুল , ভিএমওয়্যার, জেনের মতো সরঞ্জামগুলির জন্য ডিভেলপার-ভিত্তিক সরঞ্জামগুলির মধ্যে ব্যবধানে ফিট করে , আপনি এটির নাম দিন ...

ডকার ইমেজে সফটওয়্যার স্থাপন করা (যদি এটি সঠিক শব্দটি হয়) তবে কেবল একটি সামঞ্জস্যপূর্ণ উত্পাদন পরিবেশে মোতায়েনের চেয়ে সহজ কেন?

আপনার প্রশ্নটি কিছু ধারাবাহিক উত্পাদন পরিবেশ অনুমান করে। তবে কীভাবে এটি ধারাবাহিক রাখতে হবে? পাইপলাইনে সার্ভার এবং অ্যাপ্লিকেশনগুলির কয়েকটি পরিমাণ (> 10) বিবেচনা করুন।

এটি সিঙ্কে রাখার জন্য আপনি পুতুল, শেফ বা আপনার নিজস্ব প্রভিশন স্ক্রিপ্ট, অপ্রকাশিত নিয়ম এবং / অথবা প্রচুর ডকুমেন্টেশন ব্যবহার করতে শুরু করবেন ... তত্ত্বের সার্ভারগুলি অনির্দিষ্টকালের জন্য চলতে পারে এবং পুরোপুরি সামঞ্জস্যপূর্ণ এবং আপ টু ডেট থাকবে। অনুশীলন কোনও সার্ভারের কনফিগারেশন পুরোপুরি পরিচালনা করতে ব্যর্থ হয়, তাই কনফিগারেশন ড্রিফ্টের যথেষ্ট সুযোগ রয়েছে এবং সার্ভারগুলিতে চলমান অপ্রত্যাশিত পরিবর্তন রয়েছে।

সুতরাং এটি এড়ানোর জন্য একটি পরিচিত প্যাটার্ন রয়েছে, তথাকথিত অপরিবর্তনীয় সার্ভার । তবে অপরিবর্তনীয় সার্ভার প্যাটার্নটি পছন্দ ছিল না। বেশিরভাগ ক্ষেত্রে ভিকারের সীমাবদ্ধতার কারণে যা ডকারের আগে ব্যবহৃত হত। বেশ কয়েকটি গিগাবাইটের বড় ইমেজগুলির সাথে ডিল করা, অ্যাপ্লিকেশনের কিছু ক্ষেত্র পরিবর্তন করতে কেবল এই বড় চিত্রগুলি ঘুরিয়ে দেওয়া খুব শ্রমসাধ্য ছিল। বোধগম্য ...

ডকার ইকোসিস্টেমের সাহায্যে আপনাকে কখনই "ছোট পরিবর্তন" (গিফাবাইটস এবং রেজিস্ট্রি ধন্যবাদ) এর জন্য গিগা বাইটের আশেপাশে যাওয়ার প্রয়োজন হবে না এবং রানটাইমের সময় আপনাকে ডকার পাত্রে অ্যাপ্লিকেশন প্যাকেজিংয়ের মাধ্যমে পারফরম্যান্স হারাতে হবে না worry আপনাকে এই চিত্রটির সংস্করণগুলি নিয়ে চিন্তা করার দরকার নেই।

এবং পরিশেষে আপনি এমনকি প্রায়শই আপনার লিনাক্স ল্যাপটপে জটিল উত্পাদন পরিবেশ পুনরুত্পাদন করতে সক্ষম হবেন (আপনার ক্ষেত্রে কাজ না করলে আমাকে কল করবেন না;))

এবং অবশ্যই আপনি ভিএমগুলিতে ডকার পাত্রে শুরু করতে পারেন (এটি একটি ভাল ধারণা)। ভিএম স্তরে আপনার সার্ভারের বিধান কমিয়ে দিন। উপরের সমস্তটি ডকার পরিচালিত হতে পারে।

পিএস এদিকে ডকার এলএক্সসির পরিবর্তে নিজস্ব প্রয়োগ "লাইবকন্টেইনার" ব্যবহার করে। তবে এলএক্সসি এখনও ব্যবহারযোগ্য।


1
Rpm এবং dpkg এর মতো সরঞ্জামগুলির একটি গ্রুপে গিটকে অন্তর্ভুক্ত করা বিজোড় বলে মনে হচ্ছে। আমি এটি উল্লেখ করেছি কারণ আমি অনেকগুলি বিভ্রান্তির উত্স হিসাবে বিতরণ / প্যাকেজিং সরঞ্জাম হিসাবে গিটের মতো সংস্করণ নিয়ন্ত্রণ ব্যবস্থা ব্যবহারের প্রচেষ্টা দেখতে পাচ্ছি।
blitzen9872

2
তিনি যদিও ভুল নন, গিটটি প্যাকেজ পরিচালনার জন্য ব্যবহার করা যেতে পারে, উদাহরণস্বরূপ বাউর অভ্যন্তরীণভাবে গিট ট্যাগগুলি ডাউনলোড করার জন্য একটি অভিনব ক্লিপ।
roo2

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

@ blitzen9872 এতে একমত তবে ঠিক উল্লেখ করা হয়েছিল কারণ এটি প্রক্সিসে ডিস্ট্রিবিউটনের জন্য প্রায়শই ব্যবহৃত হত, আবার আমি এটি পছন্দও করি না।
অহলব্রিচ

@ ইয়োসফ্রো "ওভারকিল" বিস্তৃত। "অপরিবর্তনীয় সার্ভার" প্যাটার্নের আইডিয়া এবং সুবিধাগুলি পরীক্ষা করুন, অবশ্যই কিছু অসুবিধাগুলি রয়েছে ... আপনি যদি ওভারকিল দেখেন তবে এটি ব্যবহার করবেন না ...
অহলব্রিচ

245

ডকার কোনও ভার্চুয়ালাইজেশন পদ্ধতি নয়। এটি অন্যান্য সরঞ্জামগুলির উপর নির্ভর করে যা আসলে ধারক-ভিত্তিক ভার্চুয়ালাইজেশন বা অপারেটিং সিস্টেম স্তরের ভার্চুয়ালাইজেশন বাস্তবায়ন করে implement তার জন্য, ডকার প্রথমে LXC ড্রাইভার ব্যবহার করছিলেন, তারপরে libcontainer এ সরিয়েছিলেন যা এখন র‌্যাঙ্ক নামে পরিবর্তিত হয়েছে। ডকার প্রাথমিকভাবে অ্যাপ্লিকেশন পাত্রে অ্যাপ্লিকেশন স্থাপনের স্বয়ংক্রিয়ভাবে মনোনিবেশ করে। অ্যাপ্লিকেশন পাত্রে একটি একক পরিষেবা প্যাকেজ করার জন্য এবং ডিজাইন করা হয়েছে, যেখানে সিস্টেমের পাত্রে ভার্চুয়াল মেশিনগুলির মতো একাধিক প্রক্রিয়া চালনার জন্য ডিজাইন করা হয়েছে। সুতরাং, ডকারকে ধারকযুক্ত সিস্টেমগুলিতে একটি ধারক পরিচালনা বা অ্যাপ্লিকেশন ডিপ্লোয়মেন্ট সরঞ্জাম হিসাবে বিবেচনা করা হয়।

এটি অন্যান্য ভার্চুয়ালাইজেশনের থেকে কীভাবে আলাদা তা জানতে, আসুন ভার্চুয়ালাইজেশন এবং এর ধরণগুলির মাধ্যমে চলুন। তারপরে, সেখানে পার্থক্য কী তা বোঝা সহজ হবে।

ভার্চুয়ালাইজেশন

এর ধারণাগত আকারে এটি একাধিক অ্যাপ্লিকেশন এক সাথে চলার অনুমতি দেওয়ার জন্য যৌক্তিকভাবে মেইনফ্রেমগুলি বিভক্ত করার একটি পদ্ধতি হিসাবে বিবেচিত হয়েছিল। যাইহোক, সংস্থাগুলি এবং ওপেন সোর্স সম্প্রদায়গুলি সুবিধাপ্রাপ্ত নির্দেশাবলী এক বা অন্য উপায়ে পরিচালনা করার পদ্ধতি সরবরাহ করতে সক্ষম হয়েছিল এবং একক x86 ভিত্তিক সিস্টেমে একাধিক অপারেটিং সিস্টেম একসাথে চালানোর অনুমতি দেয়।

Hypervisor- র

হাইপারভাইসর ভার্চুয়াল পরিবেশ তৈরি করতে পরিচালনা করে যার উপর অতিথি ভার্চুয়াল মেশিনগুলি কাজ করে। এটি গেস্ট সিস্টেমগুলি তদারকি করে এবং প্রয়োজনীয়ত অতিথিদের প্রয়োজনীয় সংস্থানগুলি সরবরাহ করার বিষয়টি নিশ্চিত করে। হাইপারভাইজার শারীরিক মেশিন এবং ভার্চুয়াল মেশিনগুলির মধ্যে বসে এবং ভার্চুয়াল মেশিনগুলিকে ভার্চুয়ালাইজেশন পরিষেবা সরবরাহ করে। এটি উপলব্ধি করতে, এটি ভার্চুয়াল মেশিনে অতিথি অপারেটিং সিস্টেমের ক্রিয়াকলাপকে বাধা দেয় এবং হোস্ট মেশিনের অপারেটিং সিস্টেমে অপারেশনটি এমুলেট করে।

মূলত মেঘে ভার্চুয়ালাইজেশন প্রযুক্তির দ্রুত বিকাশ, জেন, ভিএমওয়্যার প্লেয়ার, কেভিএম ইত্যাদির মতো হাইপারভাইজারগুলির সাহায্যে একক শারীরিক সার্ভারে একাধিক ভার্চুয়াল সার্ভার তৈরি করার অনুমতি দিয়ে এবং ভার্চুয়ালাইজেশনের ব্যবহারকে আরও এগিয়ে নিয়েছে and পণ্য প্রসেসরে যেমন হার্ডওয়্যার সমর্থন অন্তর্ভুক্ত করা, যেমন ইন্টেল ভিটি এবং এএমডি-ভি।

ভার্চুয়ালাইজেশন প্রকার

ভার্চুয়ালাইজেশন পদ্ধতিটি কীভাবে কোনও অতিথির অপারেটিং সিস্টেমে হার্ডওয়্যারকে নকল করে এবং অতিথি অপারেটিং পরিবেশকে অনুকরণ করে তার ভিত্তিতে শ্রেণিবদ্ধ করা যেতে পারে। প্রাথমিকভাবে, ভার্চুয়ালাইজেশন তিন ধরণের হয়:

  • অনুকরণ
  • Paravirtualization
  • ধারক-ভিত্তিক ভার্চুয়ালাইজেশন

অনুকরণ

এমুলেশন, সম্পূর্ণ ভার্চুয়ালাইজেশন হিসাবে পরিচিত, সফ্টওয়্যারটিতে পুরোপুরি ভার্চুয়াল মেশিন ওএস কার্নেল চালায়। এই ধরণের ব্যবহৃত হাইপারভাইজার টাইপ 2 হাইপারভাইজার হিসাবে পরিচিত। এটি হোস্ট অপারেটিং সিস্টেমের শীর্ষে ইনস্টল করা হয়েছে যা অতিথি ওএস কার্নেল কোডটিকে সফ্টওয়্যার নির্দেশাবলীতে অনুবাদ করার জন্য দায়ী। অনুবাদটি সম্পূর্ণ সফ্টওয়্যারটিতে সম্পন্ন হয় এবং এতে কোনও হার্ডওয়ারের জড়িত থাকার প্রয়োজন হয় না। অনুকরণটি এমন কোনও অ-সংশোধিত অপারেটিং সিস্টেম চালানো সম্ভব করে যা পরিবেশকে অনুকরণযোগ্য করে তোলে supports এই ধরণের ভার্চুয়ালাইজেশনের ডাউনসাইড একটি অতিরিক্ত সিস্টেম রিসোর্স ওভারহেড যা অন্যান্য ধরণের ভার্চুয়ালাইজেশনের তুলনায় কর্মক্ষমতা হ্রাসের দিকে নিয়ে যায়।

অনুকরণ

এই বিভাগের উদাহরণগুলির মধ্যে রয়েছে ভিএমওয়্যার প্লেয়ার, ভার্চুয়ালবক্স, কিউইএমইউ, বোচস, সমান্তরাল ইত্যাদি include

Paravirtualization

প্যারাভিচুয়ালাইজেশন, যা টাইপ 1 হাইপারভাইজার নামে পরিচিত, সরাসরি হার্ডওয়্যার বা "বেয়ার-মেটাল" এ চলে এবং এটি চলমান ভার্চুয়াল মেশিনগুলিতে সরাসরি ভার্চুয়ালাইজেশন পরিষেবা সরবরাহ করে। এটি অপারেটিং সিস্টেম, ভার্চুয়ালাইজড হার্ডওয়্যার এবং সত্যিকারের হার্ডওয়্যারটিকে সর্বোত্তম কর্মক্ষমতা অর্জনে সহযোগিতা করতে সহায়তা করে। এই হাইপারভাইজারগুলির সাধারণত একটি ছোট পদচিহ্ন থাকে এবং তাদের নিজেরাই বিস্তৃত সংস্থান প্রয়োজন হয় না।

এই বিভাগের উদাহরণগুলির মধ্যে জেন, কেভিএম ইত্যাদি রয়েছে include

Paravirtualization

ধারক-ভিত্তিক ভার্চুয়ালাইজেশন

ধারক-ভিত্তিক ভার্চুয়ালাইজেশন, যা অপারেটিং সিস্টেম-স্তরের ভার্চুয়ালাইজেশন হিসাবেও পরিচিত, একক অপারেটিং সিস্টেমের কার্নেলের মধ্যে একাধিক বিচ্ছিন্ন মৃত্যুদণ্ড কার্যকর করে। এটিতে সর্বোত্তম সম্ভাব্য পারফরম্যান্স এবং ঘনত্ব রয়েছে এবং গতিশীল সংস্থান পরিচালনার বৈশিষ্ট্য রয়েছে। এই ধরণের ভার্চুয়ালাইজেশন দ্বারা সরবরাহ করা বিচ্ছিন্ন ভার্চুয়াল এক্সিকিউশন পরিবেশকে একটি ধারক বলা হয় এবং এটি প্রক্রিয়াগুলির একটি গোষ্ঠী হিসাবে দেখা যেতে পারে।

ধারক-ভিত্তিক ভার্চুয়ালাইজেশন

লিনাক্স কার্নেল সংস্করণ ২.6.২৪-তে যুক্ত হওয়া নামস্থান বৈশিষ্ট্য দ্বারা একটি ধারক ধারণাটি সম্ভব হয়েছে। ধারকটি প্রতিটি প্রক্রিয়াতে তার আইডি যুক্ত করে এবং প্রতিটি সিস্টেমে কলগুলিতে নতুন অ্যাক্সেস নিয়ন্ত্রণ চেক যুক্ত করে। এটি ক্লোন () সিস্টেম কল দ্বারা অ্যাক্সেস করা হয় যা পূর্ববর্তী-বিশ্বব্যাপী নেমস্পেসের পৃথক দৃষ্টান্ত তৈরি করতে দেয়।

নেমস্পেসগুলি বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে তবে সর্বাধিক প্রচলিত পদ্ধতি হল একটি বিচ্ছিন্ন ধারক তৈরি করা যার ধারকের বাইরে দৃশ্যমানতা বা অ্যাক্সেস নেই। ধারকটির অভ্যন্তরে প্রসেসগুলি একটি সাধারণ লিনাক্স সিস্টেমে চলছে বলে মনে হচ্ছে যদিও তারা অন্তর্নিহিত কার্নেলটি অন্য নামের জায়গাগুলিতে অবস্থিত অন্যান্য ধরণের অবজেক্টের জন্য একই প্রক্রিয়াগুলির সাথে ভাগ করে নিচ্ছে। উদাহরণস্বরূপ, নেমস্পেসগুলি ব্যবহার করার সময়, ধারকটির অভ্যন্তরের রুট ব্যবহারকারীকে অতিরিক্ত সুরক্ষা যুক্ত করে পাত্রে বাইরে রুট হিসাবে বিবেচনা করা হবে না।

কন্টেইনার-ভিত্তিক ভার্চুয়ালাইজেশন সক্ষম করার জন্য পরবর্তী প্রধান উপাদান লিনাক্স কন্ট্রোল গ্রুপ (সিগ্রুপ) সাবসিস্টেমটি গ্রুপ প্রক্রিয়াগুলিতে এবং তাদের সামগ্রিক সংস্থান ব্যবহারের ব্যবস্থাপনায় ব্যবহৃত হয়। এটি সাধারণত পাত্রে মেমরি এবং সিপিইউ খরচ সীমাবদ্ধ করতে ব্যবহৃত হয়। যেহেতু একটি ধারকযুক্ত লিনাক্স সিস্টেমে কেবল একটি কার্নেল রয়েছে এবং পাত্রে কার্নেলের সম্পূর্ণ দৃশ্যমানতা রয়েছে, কেবলমাত্র এক স্তরের সংস্থান বরাদ্দ এবং সময়সূচী রয়েছে।

লিনাক্স পাত্রে LXC, LXD, systemd-nspawn, lmctfy, ওয়ার্ডেন, লিনাক্স-ভিএসবার, ওপেনভিজেড, ডকার ইত্যাদি সহ বেশ কয়েকটি পরিচালনার সরঞ্জাম উপলব্ধ

ধারক বনাম ভার্চুয়াল মেশিনগুলি

ভার্চুয়াল মেশিনের বিপরীতে, একটি ধারক অপারেটিং সিস্টেমের কার্নেল বুট করার প্রয়োজন হয় না, তাই পাত্রে এক সেকেন্ডেরও কম সময়ে তৈরি করা যায়। এই বৈশিষ্ট্যটি অন্য ভার্চুয়ালাইজেশন পদ্ধতির তুলনায় ধারক-ভিত্তিক ভার্চুয়ালাইজেশনটিকে অনন্য এবং আকাঙ্ক্ষিত করে তোলে।

যেহেতু কনটেইনার-ভিত্তিক ভার্চুয়ালাইজেশন হোস্ট মেশিনে সামান্য বা কোনও ওভারহেড যুক্ত করে, তাই ধারক-ভিত্তিক ভার্চুয়ালাইজেশনের কাছাকাছি দেশীয় কর্মক্ষমতা রয়েছে

ধারক-ভিত্তিক ভার্চুয়ালাইজেশনের জন্য, অন্যান্য ভার্চুয়ালাইজেশন থেকে আলাদা কোনও অতিরিক্ত সফ্টওয়্যার প্রয়োজন হয় না।

হোস্ট মেশিনের সমস্ত পাত্রে অতিরিক্ত সংস্থান প্রয়োজন হোস্ট মেশিনের শিডিয়ুলার ভাগ করে।

ভার্চুয়াল মেশিন চিত্রের তুলনায় ধারক স্টেটস (ডকার বা এলএক্সসি চিত্রগুলি) আকারে ছোট, তাই ধারক চিত্রগুলি বিতরণ করা সহজ।

পাত্রে রিসোর্স ম্যানেজমেন্ট সিগ্রুপের মাধ্যমে অর্জন করা হয়। সিগ্রুপগুলি কনটেইনারগুলিকে বরাদ্দের চেয়ে বেশি সংস্থান গ্রহণ করার অনুমতি দেয় না। তবে, এখন পর্যন্ত, হোস্ট মেশিনের সমস্ত সংস্থান ভার্চুয়াল মেশিনে দৃশ্যমান, তবে ব্যবহার করা যায় না। এটি একই সাথে চালানো topবা htopপাত্রে এবং হোস্ট মেশিনে অনুধাবন করা যায় । সমস্ত পরিবেশ জুড়ে আউটপুট একই রকম দেখাবে।

হালনাগাদ:

ডকার কীভাবে নন-লিনাক্স সিস্টেমে পাত্রে চালায়?

লিনাক্স কার্নেলের বৈশিষ্ট্যগুলির কারণে যদি পাত্রে সম্ভব হয় তবে নন-লিনাক্স সিস্টেমগুলি পাত্রে কীভাবে চালায় তা স্পষ্ট প্রশ্ন। ম্যাক এবং উইন্ডোজের উভয় ডকারই পাত্রে চালনার জন্য লিনাক্স ভিএম ব্যবহার করে। ভার্চুয়াল বক্স ভিএমগুলিতে কনটেইনার চালাতে ব্যবহৃত ডকার টুলবক্স। তবে, সর্বশেষতম ডকারটি উইন্ডোজে হাইপার-ভি এবং ম্যাকের হাইপারভাইসর.ফ্রেমওয়ার্ক ব্যবহার করে।

এখন, আমি ম্যাকের জন্য ডকার কীভাবে পাত্রগুলি বিশদভাবে চালায় তা বর্ণনা করি।

ম্যাকের জন্য ডকার হাইপারভাইসর ক্ষমতা অনুকরণ করতে https://github.com/moby/hyperkit ব্যবহার করে এবং হাইপারকিট তার মূলটিতে হাইপারভাইসর.ফ্রেমওয়ার্ক ব্যবহার করে। হাইপারভাইসর.ফ্রেমে ওয়ার্ক হ'ল ম্যাকের নেটিভ হাইপারভাইজার সলিউশন। হাইপারকিট যথাক্রমে নেমস্পেস নেটওয়ার্ক এবং ফাইল সিস্টেমের জন্য ভিপিএনকিট এবং ডাটাকিট ব্যবহার করে।

লিনাক্স ভিএম যে ডকার ম্যাকে চালিত তা কেবল পঠনযোগ্য। যাইহোক, আপনি এটি চালিয়ে দাবী করতে পারেন:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

এখন, আমরা এমনকি এই ভিএম এর কার্নেল সংস্করণও পরীক্ষা করতে পারি:

# uname -a Linux linuxkit-025000000001 4.9.93-linuxkit-aufs #1 SMP Wed Jun 6 16:86_64 Linux

সমস্ত কনটেইনার এই ভিএম এর ভিতরে চলে।

হাইপারভাইসর.ফ্রেমওয়ার্কের কিছু সীমাবদ্ধতা রয়েছে। যে কারণে ডকার docker0ম্যাকের নেটওয়ার্ক ইন্টারফেস প্রকাশ করে না । সুতরাং, আপনি হোস্টের পাত্রে অ্যাক্সেস করতে পারবেন না। এখন পর্যন্ত docker0কেবল ভিএম এর অভ্যন্তরে উপলব্ধ।

হাইপার-ভি উইন্ডোজের নেটিভ হাইপারভাইজার। তারা লিনাক্স সিস্টেমটি স্থানীয়ভাবে চালানোর জন্য উইন্ডোজ 10 এর ক্ষমতা অর্জনের চেষ্টা করছে।


1
খুব সুন্দর পোস্ট। তোমাকে অনেক ধন্যবাদ! আমার আর একটি প্রশ্ন হ'ল আমি ম্যাক x86_64 মেশিনে ডকার আর্ম 7v 32-বিট চিত্র তৈরি করতে পারি। তবে আমি x86_64 মেশিনে ইনস্টল করা উবুন্টুতে একই চিত্রটি তৈরি করতে পারি না। এটি আপনার উল্লেখ করা ম্যাক হাইপারভাইজারের সমাধানের সাথে কী সম্পর্কিত?
jiashenC

1
আপনার উত্তরটির একমাত্র সম্বোধন "নন-লিনাক্স সিস্টেমগুলিতে ডকার কীভাবে পাত্রে চালায়?" এই তথ্য কোথাও খুঁজে পাওয়া খুব কঠিন। সমস্ত কিছু জোর দেয় যে "কনটেইনারগুলি ভিএমএস থেকে সম্পূর্ণ পৃথক!", দ্রুত, হালকা-ওজন ইত্যাদি, তবুও নন-লিনাক্স সিস্টেমে ধারক চালানোর একমাত্র উপায় একটি ভিএম স্পিন করা ...!
বোগাতিয়ার

@ বোগাটার আইআইএনএম, সমস্ত পাত্রে এটি এক-ভিএম।
ডিস্ট্রোমবার্গ

147

এই পোস্টের মাধ্যমে আমরা ভিএম এবং এলএক্সসির মধ্যে পার্থক্যগুলির কয়েকটি লাইন আঁকতে যাচ্ছি। প্রথমে সেগুলি সংজ্ঞায়িত করা যাক।

ভিএম :

একটি ভার্চুয়াল মেশিন একটি শারীরিক কম্পিউটিং পরিবেশ অনুকরণ করে, তবে সিপিইউ, মেমরি, হার্ড ডিস্ক, নেটওয়ার্ক এবং অন্যান্য হার্ডওয়্যার সংস্থার জন্য অনুরোধগুলি ভার্চুয়ালাইজেশন স্তর দ্বারা পরিচালিত হয় যা এই অনুরোধগুলি অন্তর্নিহিত শারীরিক হার্ডওয়্যারটিতে অনুবাদ করে।

এই প্রসঙ্গে ভিএমকে অতিথী বলা হয় এবং পরিবেশ যেদিকে পরিবেশিত হয় তাকে হোস্ট বলা হয়।

এলএক্সসি এস:

লিনাক্স কনটেইনারস (এলএক্সসি) অপারেটিং সিস্টেম-স্তরের ক্ষমতা যা একাধিক বিচ্ছিন্ন লিনাক্স পাত্রে চালানো সম্ভব করে তোলে, একটি নিয়ন্ত্রণ হোস্টে (এলএক্সসি হোস্ট)। লিনাক্স কনটেইনারগুলি ভিএমগুলির একটি হালকা ওজনের বিকল্প হিসাবে পরিবেশন করে কারণ তাদের হাইপারভাইজারগুলির যেমন প্রয়োজন হয় না। ভার্চুয়ালবক্স, কেভিএম, জেন ইত্যাদি

এখন যদি না আপনি অ্যালানকে ড্রাগ করেছিলেন (জ্যাচ গালিফিয়ানাকিস- হ্যাঙ্গওভার সিরিজ থেকে) এবং গত বছরের জন্য ভেগাসে ছিলেন, আপনি লিনাক্স ধারক প্রযুক্তিগুলির জন্য প্রচুর আগ্রহের বিষয়ে যথেষ্ট সচেতন হবেন এবং যদি আমি নির্দিষ্ট একটি ধারক হয়ে থাকি প্রকল্প যা গত কয়েক মাসে বিশ্বজুড়ে একটি গুঞ্জন তৈরি করেছে তা হ'ল - ডকার কিছু প্রতিধ্বনিত মতামতের দিকে পরিচালিত করে যে ক্লাউড কম্পিউটিং পরিবেশগুলি ভার্চুয়াল মেশিনগুলি (ভিএম) ত্যাগ করতে হবে এবং তাদের নিম্ন ওভারহেড এবং সম্ভাব্য উন্নত পারফরম্যান্সের কারণে পাত্রে তাদের প্রতিস্থাপন করা উচিত।

তবে বড় প্রশ্ন হ'ল এটি কি সম্ভব ?, এটা কি বুদ্ধিমানের হবে?

ক। LXC গুলি লিনাক্সের একটি উদাহরণে বিভক্ত হয়। এটি লিনাক্সের বিভিন্ন স্বাদ হতে পারে (যেমন একটি সেন্টোস হোস্টে একটি উবুন্টু ধারক তবে এটি এখনও লিনাক্স)) একইভাবে, উইন্ডোজ-ভিত্তিক পাত্রে এখন উইন্ডোজের একটি উদাহরণে স্কোপ করা হয় যদি আমরা ভিএমগুলিতে দেখি তবে তাদের বেশ বিস্তৃত সুযোগ রয়েছে এবং এটি ব্যবহার করে হাইপারভাইজারগুলি আপনি অপারেটিং সিস্টেম লিনাক্স বা উইন্ডোজের মধ্যে সীমাবদ্ধ নন।

খ। এলএক্সসির ভিএমএসের তুলনায় কম ওভারহেড রয়েছে এবং আরও ভাল পারফরম্যান্স রয়েছে। সরঞ্জামগুলি যেমন এলএক্সসি প্রযুক্তির কাঁধে নির্মিত ডকারটি বিকাশকারীদের তাদের অ্যাপ্লিকেশনগুলি চালনার জন্য একটি প্ল্যাটফর্ম সরবরাহ করেছে এবং একই সাথে অপারেশনগুলিকে লোকদের এমন একটি সরঞ্জাম দিয়ে ক্ষমতা প্রদান করেছে যা তাদের উত্পাদন সার্ভার বা ডেটা সেন্টারে একই ধারক স্থাপন করতে দেয়। এটি কোনও বিকাশকারী কোনও অ্যাপ্লিকেশন চালাচ্ছে, কোনও অ্যাপ্লিকেশন বুট করে এবং পরীক্ষা করে কোনও অ্যাপ্লিকেশনটি নির্বিঘ্নে মোতায়েন করছে এমন কোনও অপারেশন ব্যক্তির মধ্যে অভিজ্ঞতা তৈরি করার চেষ্টা করে, কারণ এখানেই ডিভোপসের সমস্ত ঘর্ষণ রয়েছে এবং এই সিলোগুলি ভেঙে ফেলা উচিত।

সুতরাং সর্বোত্তম পন্থা হ'ল মেঘ অবকাঠামো সরবরাহকারীদের ভিএম এবং এলএক্সসির উপযুক্ত ব্যবহারের পক্ষে হওয়া উচিত, কারণ তারা প্রতিটি নির্দিষ্ট কাজের চাপ এবং পরিস্থিতি পরিচালনা করতে উপযুক্ত।

ভিএমএস পরিত্যাগ এখনকার মতো ব্যবহারিক নয়। সুতরাং ভিএম এবং এলএক্সসি উভয়েরই নিজস্ব পৃথক অস্তিত্ব এবং গুরুত্ব রয়েছে।


4
আপনার উপরের অংশ "বি" হ'ল ডোকর লোকেরা প্রযুক্তি সম্পর্কে যা বলেছে। এর অর্থ বিকাশ এবং মোতায়েনের কাজগুলিকে আরও সহজ করে তোলা। এবং একজন দেব হিসাবে এবং সিসপ হিসাবে আমার অভিজ্ঞতার ভিত্তিতে, আমাকে একমত হতে হবে।
ওয়াইনসোকড

3
এটি বেশ বিমূর্ত উত্তর। আমাদের যখন ডকার ব্যবহার / ব্যবহার না করে তখন ব্যবহারের ক্ষেত্রে আমাদের প্রয়োজন। এটাই হল প্রশ্ন. সকলেই ডকারটি কী তা আবিষ্কার করতে পারে তবে সত্যিকারের পরিস্থিতিতে কেবল কয়েকটি ব্যাখ্যা করতে পারে।
ইভান ভোরোশিলিন

1
ডকারকে এখন উইন্ডোজ জগতে আনা হচ্ছে, যেহেতু এটি এখন আর এলএক্সসির উপর নির্ভর করে না: ব্লগস.এমএসএনএন / বি / এনজেডভ / আর্কিভ / ২০১5 / 6 / ০২ / ......... আমি উত্তরগুলি ভুল বুঝে থাকলে দয়া করে আমাকে সংশোধন করুন
বুবাকাজৌবা ১

6
কনটেইনারগুলির "(যেমন একটি সেন্টোস হোস্টে উবুন্টু ধারক তবে এটি এখনও লিনাক্স)" বোঝার জন্য আমার খুব কষ্ট হয়েছে । আমি এটি যেভাবে বুঝতে পারি তা হ'ল পাত্রে হোস্টের কার্নেলটি ভাগ করা হয়। উদাহরণস্বরূপ, যদি আমার কাছে হোস্ট ভিএম চলমান লিনাক্স কার্নেল ৪.6 থাকে, তবে বেশ কয়েকটি অতিথি ভিএম-র চলমান লিনাক্স কার্নেলগুলি ২.৪, ২.6, ৩.২, ৪.১ এবং ৪.৪ রয়েছে। যদি আমি সেই কার্নেলের সাথে সম্পর্কিত কমান্ডগুলি কার্যকর করি তবে আমি অতিথি কার্নেলের আচরণ (এবং হোস্টের নয়) পাব। তবে এখন যদি আমার অতিথি ভিএম এর পাত্রে থাকে তবে নির্বাহিত কমান্ডটি কি হোস্ট কার্নেল দ্বারা নির্ধারিত হবে?
জেচ

@ বুবকাজৌবা হ্যাঁ আপনি সঠিক. এখন তারা রানসি ব্যবহার করে
রুমেশ ইরঙ্গা হাপুয়ারাছি

140

এখানে বেশিরভাগ উত্তর ভার্চুয়াল মেশিন সম্পর্কে কথা বলে। আমি আপনাকে এই প্রশ্নের একটি ওয়ান-লাইনের প্রতিক্রিয়া জানাতে যা ডকারকে ব্যবহার করার শেষ কয়েক বছর ধরে আমাকে সবচেয়ে বেশি সহায়তা করেছে। এই এর:

ভার্চুয়াল মেশিন নয়, প্রসেস চালানোর জন্য ডকার হ'ল অভিনব উপায়।

এখন, আমি এর অর্থ সম্পর্কে আরও কিছুটা ব্যাখ্যা করি। ভার্চুয়াল মেশিনগুলি তাদের নিজস্ব জন্তু। ভার্চুয়াল মেশিন কী তা বোঝানোর চেয়ে ডকার কী তা আপনাকে এটি আরও বুঝতে সহায়তা করবে বলে আমি মনে করি । বিশেষত কারণ এখানে অনেক সূক্ষ্ম উত্তর রয়েছে যখন কেউ আপনাকে "ভার্চুয়াল মেশিন" বললে তার অর্থ ঠিক বলে দেয় telling তাই ...

ডকার কনটেইনারটি কেবলমাত্র একটি প্রক্রিয়া (এবং তার শিশুরা) যা বাকি প্রক্রিয়াগুলি থেকে হোস্ট সিস্টেমের কার্নেলের অভ্যন্তরে সিগ্রুপগুলি ব্যবহার করে বগি হয়। ps auxহোস্টে দৌড়ে আপনি আসলে আপনার ডকারের ধারক প্রক্রিয়া দেখতে পাবেন । উদাহরণস্বরূপ, apache2"একটি ধারক মধ্যে" শুরু apache2করা কেবল হোস্টের একটি বিশেষ প্রক্রিয়া হিসাবে শুরু হচ্ছে। এটি কেবলমাত্র মেশিনের অন্যান্য প্রক্রিয়াগুলি থেকে বগিযুক্ত হয়েছে। এটি লক্ষ্য করা গুরুত্বপূর্ণ যে আপনার ধারকযুক্ত প্রক্রিয়াটির আজীবন আপনার পাত্রে উপস্থিত নেই। আপনার প্রক্রিয়াটি মারা গেলে আপনার ধারক মারা যায় dies কারণ ডকার pid 1আপনার অ্যাপ্লিকেশনটির সাথে আপনার ধারকটির অভ্যন্তর প্রতিস্থাপন করে ( pid 1সাধারণত ডিআর সিস্টেম হয়)। এই শেষ পয়েন্টটি সম্পর্কে pid 1খুব গুরুত্বপূর্ণ।

যতক্ষণ না এই কন্টেইনার প্রক্রিয়াগুলির প্রতিটি দ্বারা ফাইল সিস্টেম ব্যবহার করা হয়, ডকার ইউনিয়নএফএস- ব্যাকড ইমেজ ব্যবহার করে যা আপনি যখন করবেন তখন আপনি এটি ডাউনলোড করছেন docker pull ubuntu। প্রতিটি "চিত্র" কেবলমাত্র স্তর এবং সম্পর্কিত মেটাডেটার একটি সিরিজ। লেয়ারিং ধারণাটি এখানে খুব গুরুত্বপূর্ণ। প্রতিটি স্তর তার নীচে স্তর থেকে মাত্র একটি পরিবর্তন। উদাহরণস্বরূপ, আপনি যখন ডকার পাত্রে নির্মাণের সময় আপনার ডকফায়লে একটি ফাইল মুছবেন, আপনি আসলে শেষ স্তরের উপরে একটি স্তর তৈরি করবেন যা বলবে "এই ফাইলটি মুছে ফেলা হয়েছে"। ঘটনাচক্রে, এ কারণেই আপনি আপনার ফাইল সিস্টেম থেকে একটি বড় ফাইল মুছতে পারেন, তবে চিত্রটি এখনও একই পরিমাণে ডিস্কের স্থান গ্রহণ করে। ফাইলটি এখনও রয়েছে, বর্তমানের নীচে স্তরগুলিতে। স্তরগুলি নিজেরাই কেবল ফাইলগুলির টারবল। আপনি এটি দিয়ে পরীক্ষা করতে পারেনdocker save --output /tmp/ubuntu.tar ubuntuএবং তারপর cd /tmp && tar xvf ubuntu.tar। তারপরে আপনি চারপাশে একবার দেখতে পারেন। যে সমস্ত ডিরেক্টরি দীর্ঘ হ্যাশগুলির মতো দেখায় সেগুলি প্রকৃতপক্ষে পৃথক স্তর। প্রত্যেকটিতে ফাইল ( layer.tar) এবং মেটাডেটা রয়েছে (json) সেই নির্দিষ্ট স্তর সম্পর্কে তথ্য সহ। এই স্তরগুলি কেবল ফাইল সিস্টেমের পরিবর্তনের বর্ণনা দেয় যা এটির মূল অবস্থার "শীর্ষে" স্তর হিসাবে সংরক্ষণ করা হয়। "বর্তমান" ডেটা পড়ার সময়, ফাইল সিস্টেমটি এমন ডেটা পড়ে যেহেতু এটি কেবলমাত্র শীর্ষ-স্তরের পরিবর্তনগুলির দিকে চেয়ে থাকে। এই কারণেই ফাইলটি "পূর্ববর্তী" স্তরগুলির মধ্যে থাকা সত্ত্বেও ফাইলটি মুছে ফেলা হবে বলে মনে হয়, কারণ ফাইল সিস্টেমটি কেবল শীর্ষ সর্বাধিক স্তরগুলির দিকে তাকিয়ে থাকে। এটি সম্পূর্ণ আলাদা আলাদা ধারককে তাদের ফাইল সিস্টেমের স্তরগুলি ভাগ করে নেওয়ার অনুমতি দেয়, যদিও প্রতিটি পাত্রে শীর্ষ-স্তরের শীর্ষ স্তরের ফাইল সিস্টেমে কিছু উল্লেখযোগ্য পরিবর্তন ঘটতে পারে। যখন আপনার পাত্রে তাদের বেস ইমেজ স্তরগুলি ভাগ করে দেওয়া হয় তখন এটি আপনাকে এক টন ডিস্কের জায়গা বাঁচাতে পারে। যাহোক,

ডকারে নেটওয়ার্কিং ইথারনেট ব্রিজ ( docker0হোস্টকে ডাকা হয়) এবং হোস্টের প্রতিটি ধারকের জন্য ভার্চুয়াল ইন্টারফেস ব্যবহার করে অর্জন করা হয়। এটি docker0আপনার পাত্রে একে অপরের "মধ্যে" যোগাযোগ করার জন্য একটি ভার্চুয়াল সাবনেট তৈরি করে। আপনার কন্টেইনারগুলির জন্য কাস্টম সাবনেট তৈরি করা এবং আপনার ধারকটির সরাসরি অ্যাক্সেসের জন্য আপনার হোস্টের নেটওয়ার্কিং স্ট্যাক "ভাগ" করার ক্ষমতা সহ এখানে নেটওয়ার্কিংয়ের জন্য অনেকগুলি বিকল্প রয়েছে।

ডকার খুব দ্রুত গতিতে চলেছে। এর ডকুমেন্টেশনগুলি আমি দেখেছি এমন কয়েকটি সেরা ডকুমেন্টেশন। এটি সাধারণত ভালভাবে লিখিত, সংক্ষিপ্ত এবং নির্ভুল। আমি আপনাকে আরও তথ্যের জন্য উপলভ্য ডকুমেন্টেশন চেক করার পরামর্শ দিচ্ছি এবং স্ট্যাক ওভারফ্লো সহ আপনি অনলাইনে পড়া অন্য যে কোনও বিষয়ে ডকুমেন্টেশনে বিশ্বাস করুন। আপনার যদি নির্দিষ্ট প্রশ্ন থাকে তবে আমি #dockerফ্রিনোড আইআরসি-তে যোগ দিতে এবং সেখানে জিজ্ঞাসা করার জন্য সুপারিশ করছি (আপনি তার জন্য ফ্রিনোডের ওয়েবচ্যাটটিও ব্যবহার করতে পারেন !)।


12
"ডকার একটি ভার্চুয়াল মেশিন নয়, একটি প্রক্রিয়া চালানোর জন্য অভিনব উপায়" " এটি একটি দুর্দান্ত সংক্ষিপ্তসার, ধন্যবাদ!
mkorman

ধন্যবাদ! এর কৃতিত্ব #dockerফ্রিনোড আইআরসি- র চ্যানেল থেকে প্রোগ্রামার্কের কাছে যায় ।
L0j1k

এটি অন্যান্য উত্তরগুলির তুলনায় অনেক পরিষ্কার। আমার ধারণা এটি প্রক্রিয়া সাদৃশ্য যা এটি আমার জন্য করে। এটি বিমূর্ততার মাত্রা কমিয়ে দেয়।
সাথ মিঃ মিঃ

আমি যোগ করব: "ডকার হ'ল কোনও ভার্চুয়াল মেশিন নয়, একটি বিচ্ছিন্ন, সুরক্ষিত, এনক্যাপসুলেটেড পদ্ধতিতে একটি প্রক্রিয়া চালানোর এক অভিনব উপায়" " হোস্ট সিস্টেমের সাবসিস্টেমটির দৃশ্যমানতা (প্রক্রিয়া এবং সংস্থানসমূহের ওপরে) রয়েছে তবে বিচ্ছিন্ন সিস্টেমে হোস্ট সিস্টেমে দৃশ্যমানতা (প্রক্রিয়া এবং সংস্থানসমূহের উপরে) নেই।
সোহেল সি

87

ডকার একটি অ্যাপ্লিকেশনটিকে তার সমস্ত নির্ভরতার সাথে আবদ্ধ করে।

একটি ভার্চুয়ালাইজার এমন একটি ওএস এনপ্যাপুলেট করে যা কোনও অ্যাপ্লিকেশন চালাতে পারে যা এটি খালি ধাতব মেশিনে সাধারণত চালাতে পারে।


1
আমি এলএক্সসি সম্পর্কে শিখছি, আমি ভুল হলে আমাকে সংশোধন করব, তবে এটি কোনও ধরণের ভ্যুচুয়াল্নিভ হতে পারে? তবে স্পষ্টতই বিস্তৃত,
অজগরকে কেবল

2
আমার এই উত্তরটি সবচেয়ে ভাল লেগেছে। এটি সহজ এবং সরাসরি নির্দেশ করে। এখন যেহেতু LXC এবং ভার্চুয়ালাইজাররা কী করতে পারে তার একটি প্রাথমিক ধারণা রয়েছে, অন্য পড়ার বিবরণগুলি বোঝায় sense
ফিল

2
আমি প্রথমে তার উপরে বিস্তারিত উত্তরগুলি পড়ার পরে এটি ফিল্ড করেছে did
জহনি

আমি ধরে নিলাম তারা কীভাবে এনকেপসুলেট করবেন তা জানতে চান। এটিই বড় অংশ যা তাদের মধ্যে পার্থক্য দেখায় কিন্তু আপনি কোনও উত্তর দেননি।
লাইট.জি

60

তারা উভয়ই খুব আলাদা। ডকার হালকা ওজনের এবং এটি LXC / libcontainer (যা কার্নেলের নেমস্পেসিং এবং সিগ্রুপগুলিতে নির্ভর করে) ব্যবহার করে এবং এতে হাইপারভাইজার, কেভিএম এর মতো মেশিন / হার্ডওয়্যার অনুকরণ নেই। জেন যা ভারী।

ডকার এবং এলএক্সসি স্যান্ডবক্সিং, ধারককরণ এবং সংস্থান বিচ্ছিন্নকরণের জন্য আরও বোঝানো হয়েছে। এটি হোস্ট ওএসের (বর্তমানে কেবলমাত্র লিনাক্স কার্নেল) ক্লোন এপিআই ব্যবহার করে যা আইপিসি, এনএস (মাউন্ট), নেটওয়ার্ক, পিআইডি, ইউটিএস ইত্যাদির নেমস্পেসিং সরবরাহ করে

মেমরি, আই / ও, সিপিইউ ইত্যাদির কী হবে? এটি সিগ্রুপগুলি ব্যবহার করে নিয়ন্ত্রণ করা হয় যেখানে আপনি নির্দিষ্ট সংস্থান (সিপিইউ, মেমরি ইত্যাদি) নির্দিষ্টকরণ / সীমাবদ্ধতা সহ গ্রুপ তৈরি করতে পারেন এবং আপনার প্রক্রিয়াগুলিকে সেখানে রেখে দিতে পারেন। এলএক্সসির উপরে, ডকার একটি স্টোরেজ ব্যাকএন্ড সরবরাহ করে ( http://www.projectatomic.io/docs/filesystems/ ) যেমন ইউনিয়ন মাউন্ট ফাইল সিস্টেম যেখানে আপনি স্তরগুলি যুক্ত করতে পারেন এবং বিভিন্ন মাউন্ট নেমস্পেসের মধ্যে স্তরগুলি ভাগ করতে পারেন।

এটি একটি শক্তিশালী বৈশিষ্ট্য যেখানে বেস চিত্রগুলি সাধারণত পঠনযোগ্য হয় এবং কেবলমাত্র যখন ধারক স্তরটিতে কোনও কিছু পরিবর্তন করে তবে এটি পঠন-লেখার পার্টিশনে কিছু লিখবে (লেখার উপরের অনুলিপি)। এটি রেজিস্ট্রি এবং চিত্রগুলির সংস্করণকরণের মতো আরও অনেকগুলি মোড়ক সরবরাহ করে।

সাধারণ এলএক্সসির সাথে আপনাকে কিছু রুটফ নিয়ে আসতে হবে বা রুটফগুলি ভাগ করতে হবে এবং যখন ভাগ করা হবে এবং পরিবর্তনগুলি অন্য পাত্রে প্রতিফলিত হয়। এই অতিরিক্ত বৈশিষ্ট্যযুক্ত কারণে, ডকার এলএক্সসির চেয়ে বেশি জনপ্রিয়। নেটওয়ার্ক এবং ইউআই এর মতো বহিরাগত সত্তাগুলির সংস্পর্শে থাকা সুরক্ষা কার্যকর করার জন্য এলএক্সসি এম্বেড করা পরিবেশে জনপ্রিয়। ডকার ক্লাউড মাল্টি টেন্যান্সি পরিবেশে জনপ্রিয় যেখানে ধারাবাহিক উত্পাদন পরিবেশ প্রত্যাশিত।

একটি সাধারণ ভিএম (উদাহরণস্বরূপ, ভার্চুয়ালবক্স এবং ভিএমওয়্যার) হাইপারভাইজার ব্যবহার করে এবং সম্পর্কিত প্রযুক্তিগুলির মধ্যে ডেডিকেটেড ফার্মওয়্যার থাকে যা প্রথম ওএসের জন্য প্রথম স্তর হয়ে যায় (হোস্ট ওএস, বা অতিথি ওএস 0) অথবা একটি সফ্টওয়্যার যা হোস্ট ওএসে চালিত হয় অতিথি ওএসগুলিতে সিপিইউ, ইউএসবি / এক্সেসরিজ, মেমরি, নেটওয়ার্ক ইত্যাদির মতো হার্ডওয়্যার এমুলেশন সরবরাহ করুন। ভিএমগুলি এখনও (২০১৫ সালের হিসাবে) উচ্চ সুরক্ষা মাল্টি-টেন্যান্ট পরিবেশে জনপ্রিয়।

ডকার / এলএক্সসি যে কোনও সস্তা হার্ডওয়্যারে প্রায় চালানো যেতে পারে (আপনার নতুন কার্নেল হওয়া পর্যন্ত 1 গিগাবাইটের কম মেমোরিও ঠিক আছে) বনাম সাধারণ ভিএমগুলিতে এর অর্থবহ কিছু করার জন্য কমপক্ষে 2 গিগাবাইট মেমরি ইত্যাদির প্রয়োজন হয় etc. । তবে হোস্ট ওএসে ডকার সমর্থন উইন্ডোজ (নভেম্বরের হিসাবে 2014) তে ওএসে উপলভ্য নয় যেখানে উইন্ডোজ, লিনাক্স এবং ম্যাকগুলিতে প্রকারের ভিএম চালানো যেতে পারে।

ডকার / রাইটসকেল থেকে এখানে একটি ছবি: রাইটসকেল থেকে এখানে একটি ছবি


34

1. লাইটওয়েট

এটি সম্ভবত অনেক ডকার শিখার জন্য প্রথম ছাপ।

প্রথমত, ডকার চিত্রগুলি সাধারণত ভিএম চিত্রগুলির চেয়ে ছোট হয়, এটি নির্মাণ, অনুলিপি, ভাগ করা সহজ করে তোলে।

দ্বিতীয়ত, ডকারের ধারকগুলি কয়েক মিলিসেকেন্ডে শুরু হতে পারে, যখন ভিএম কয়েক সেকেন্ডের মধ্যে শুরু হয়।

২. স্তরিত ফাইল সিস্টেম

এটি ডকারের আরেকটি মূল বৈশিষ্ট্য। চিত্রগুলির স্তর রয়েছে এবং বিভিন্ন চিত্র স্তরগুলি ভাগ করতে পারে, এটিকে আরও বেশি স্থান-সঞ্চয় এবং বিল্ডিংয়ের জন্য আরও দ্রুত তৈরি করতে পারে।

যদি সমস্ত পাত্রে উবুন্টুকে তাদের বেস ইমেজ হিসাবে ব্যবহার করা হয় তবে প্রতিটি চিত্রের নিজস্ব ফাইল সিস্টেম থাকে না, তবে একই আন্ডারলাইন উবুন্টু ফাইলগুলি ভাগ করে, এবং কেবল তাদের নিজস্ব অ্যাপ্লিকেশন ডেটা থেকে পৃথক।

৩. শেয়ার করা ওএস কার্নেল

প্রক্রিয়া হিসাবে পাত্রে চিন্তা করুন!

হোস্টে চলমান সমস্ত পাত্রে হ'ল প্রকৃতপক্ষে বিভিন্ন ফাইল সিস্টেমের প্রসেসগুলির একটি গোছা। তারা একই ওএস কার্নেলটি ভাগ করে, কেবল সিস্টেম লাইব্রেরি এবং নির্ভরতাগুলি encapsulates।

এটি বেশিরভাগ ক্ষেত্রেই ভাল (কোনও অতিরিক্ত ওএস কার্নেল বজায় রাখে না) তবে ধারকগুলির মধ্যে কঠোর বিচ্ছিন্নতা প্রয়োজন হলে সমস্যা হতে পারে।

কেন এটি গুরুত্বপূর্ণ?

এগুলি সমস্ত বিপ্লব নয়, উন্নতির মতো বলে মনে হচ্ছে। ঠিক আছে, পরিমাণগত জমে গুণগত রূপান্তর বাড়ে

অ্যাপ্লিকেশন মোতায়েন সম্পর্কে চিন্তা করুন। আমরা যদি কোনও নতুন সফ্টওয়্যার (পরিষেবা) স্থাপন করতে বা একটি আপগ্রেড করতে চাই, তবে নতুন ভিএম তৈরির পরিবর্তে কনফিগার ফাইল এবং প্রক্রিয়াগুলি পরিবর্তন করা ভাল। কারণ আপডেট সার্ভিসের সাথে একটি ভিএম তৈরি করা হচ্ছে, এটি পরীক্ষা করা (দেব এবং কিউএর মধ্যে ভাগ করুন), উত্পাদনে মোতায়েন করতে কয়েক ঘন্টা, এমনকি কয়েক দিন সময় লাগে। যদি কোনও ভুল হয়ে যায় তবে আপনি আরও বেশি সময় নষ্ট করে আবার শুরু করতে পারেন। সুতরাং, নতুন সফ্টওয়্যার ইনস্টল করতে কনফিগারেশন পরিচালন সরঞ্জাম (পুতুল, সল্টট্যাক, শেফ ইত্যাদি) ব্যবহার করুন, নতুন ফাইলগুলি ডাউনলোড করা পছন্দ করা হয়।

ডকারের কথা এলে, পুরানোটিকে প্রতিস্থাপনের জন্য সদ্য নির্মিত ডকার পাত্রে ব্যবহার করা অসম্ভব। রক্ষণাবেক্ষণ অনেক সহজ! একটি নতুন চিত্র তৈরি করা, কিউএর সাথে ভাগ করুন, এটি পরীক্ষা করুন, এটি স্থাপনে কয়েক মিনিট সময় লাগে (যদি সবকিছু স্বয়ংক্রিয় হয়), সবচেয়ে খারাপ ক্ষেত্রে কয়েক ঘন্টা। একে অপরিবর্তনীয় অবকাঠামো বলা হয় : সফ্টওয়্যার বজায় রাখা (আপগ্রেড) করবেন না, পরিবর্তে একটি নতুন তৈরি করুন।

এটি কীভাবে পরিষেবা সরবরাহ করা হয় তা রূপান্তরিত করে। আমরা অ্যাপ্লিকেশন চাই, তবে ভিএমগুলি বজায় রাখতে হবে (যা একটি ব্যথা এবং আমাদের অ্যাপ্লিকেশনগুলির সাথে খুব কম সম্পর্কযুক্ত)। ডকার আপনাকে অ্যাপ্লিকেশনগুলিতে ফোকাস তৈরি করে এবং সবকিছুকে মসৃণ করে।


27

মূলত পাত্রগুলি, ওএস ভার্চুয়ালাইজেশন সমর্থন করে অর্থাৎ আপনার অ্যাপ্লিকেশন মনে করে যে এটিতে কোনও ওএসের সম্পূর্ণ উদাহরণ রয়েছে যেখানে ভিএম হার্ডওয়্যার ভার্চুয়ালাইজেশন সমর্থন করে । আপনার মনে হচ্ছে এটি কোনও দৈহিক মেশিন যা আপনি কোনও ওএস বুট করতে পারেন।

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

উদাহরণস্বরূপ, আপনি যদি 4000 পোর্টে চলমান একটি ওয়েব সার্ভার বিকাশ করেন, যখন আপনি এটি আপনার "পরীক্ষার" পরিবেশে স্থাপন করেন, সেই পোর্টটি ইতিমধ্যে অন্য কোনও প্রোগ্রাম দ্বারা ব্যবহৃত হয়, তাই এটি কাজ বন্ধ করে দেয়। পাত্রে রয়েছে স্তরগুলি; আপনি ওএসে যে সমস্ত পরিবর্তন করেছেন সেগুলি এক বা একাধিক স্তরগুলিতে সংরক্ষণ করা হবে এবং সেই স্তরগুলি চিত্রের অংশ হবে, তাই যেখানেই চিত্রটি যায় সেখানে নির্ভরতাও উপস্থিত থাকবে।

নীচে দেখানো উদাহরণে, হোস্ট মেশিনটিতে তিনটি ভিএম রয়েছে। ভিএমএসকে সম্পূর্ণ বিচ্ছিন্নভাবে অ্যাপ্লিকেশন সরবরাহ করতে, তাদের প্রত্যেকের ওএস ফাইল, গ্রন্থাগার এবং অ্যাপ্লিকেশন কোডের নিজস্ব কপি রয়েছে এবং একটি ওএসের সম্পূর্ণ মেমরির উদাহরণ রয়েছে।ধারক ছাড়া যেখানে নীচের চিত্রটি পাত্রে একই চিত্র দেখায়। এখানে, ধারকগুলি কেবল কার্নেল এবং লাইব্রেরি সহ হোস্ট অপারেটিং সিস্টেমটি ভাগ করে নেয়, সুতরাং তাদের কোনও ওএস বুট করার দরকার নেই, লাইব্রেরিগুলি লোড করতে বা এই ফাইলগুলির জন্য একটি ব্যক্তিগত মেমরির মূল্য দিতে হবে না। তারা গ্রহণ করে কেবল বর্ধিত স্থান হ'ল অ্যাপ্লিকেশনটির জন্য ধারকটিতে চালানোর জন্য প্রয়োজনীয় কোনও মেমরি এবং ডিস্ক স্থান। অ্যাপ্লিকেশনটির পরিবেশটি যদি কোনও উত্সর্গীকৃত ওএসের মতো অনুভূত হয় তবে অ্যাপ্লিকেশনটি যেমন কোনও উত্সর্গীকৃত হোস্টের মতো করে তা স্থাপন করে। ধারকযুক্ত অ্যাপ্লিকেশনটি সেকেন্ডের মধ্যে শুরু হয় এবং অ্যাপ্লিকেশনটির আরও অনেকগুলি উদাহরণ ভিএম কেসের তুলনায় মেশিনে ফিট করতে পারে। এখানে চিত্র বর্ণনা লিখুন

সূত্র: https://azure.microsoft.com/en-us/blog/containers-docker-windows-and-trends/


আমি প্রথম অনুচ্ছেদটি খুব পছন্দ করি।
লাইট.জি

23

তিনটি আলাদা সেটআপ রয়েছে যা অ্যাপ্লিকেশন চালানোর জন্য একটি স্ট্যাক সরবরাহ করে (এটি আমাদের ধারনা কী এবং এটি অন্যান্য সমাধানের তুলনায় এটিকে এত শক্তিশালী করে তোলে তা সনাক্ত করতে আমাদের সহায়তা করবে):

1) Traditional Servers(bare metal)
2) Virtual machines (VMs)
3) Containers

1) ditionতিহ্যবাহী সার্ভার স্ট্যাক একটি শারীরিক সার্ভার নিয়ে গঠিত যা একটি অপারেটিং সিস্টেম এবং আপনার অ্যাপ্লিকেশন চালায়।

সুবিধাদি:

  • কাঁচা সম্পদের ব্যবহার

  • আলাদা করা

অসুবিধা:

  • খুব ধীর স্থাপনার সময়
  • ব্যয়বহুল
  • সম্পদ নষ্ট
  • স্কেল করা কঠিন
  • স্থানান্তরিত করতে অসুবিধা
  • জটিল কনফিগারেশন

2) ভিএম স্ট্যাকের মধ্যে এমন একটি ফিজিকাল সার্ভার রয়েছে যা একটি অপারেটিং সিস্টেম চালায় এবং একটি হাইপারভাইসর যা আপনার ভার্চুয়াল মেশিন, শেয়ার্ড রিসোর্স এবং নেটওয়ার্কিং ইন্টারফেস পরিচালনা করে। প্রতিটি ভিএম একটি গেস্ট অপারেটিং সিস্টেম চালায়, একটি অ্যাপ্লিকেশন বা অ্যাপ্লিকেশনগুলির সেট।

সুবিধাদি:

  • সম্পদের ভাল ব্যবহার Good
  • স্কেল করা সহজ
  • ব্যাকআপ এবং মাইগ্রেট করা সহজ
  • ব্যয় দক্ষতা
  • নমনীয়তা

অসুবিধা:

  • রিসোর্স বরাদ্দ সমস্যাযুক্ত
  • বিক্রেতা লক্কিন
  • জটিল কনফিগারেশন

3) কনটেইনার সেটআপ , অন্যান্য স্ট্যাকের সাথে মূল পার্থক্যটি হ'ল একাধিক বিচ্ছিন্ন অতিথির দৃষ্টান্তগুলি ছড়িয়ে দিতে হোস্ট ওএসের কর্নেলটি ব্যবহার করে container এই অতিথি দৃষ্টান্তগুলিকে পাত্রে বলা হয়। হোস্টটি ফিজিকাল সার্ভার বা ভিএম হতে পারে।

সুবিধাদি:

  • আলাদা করা
  • লাইটওয়েট
  • রিসোর্স কার্যকর
  • মাইগ্রেশন করা সহজ
  • নিরাপত্তা
  • কম উপরি
  • আয়না উত্পাদন এবং বিকাশের পরিবেশ

অসুবিধা:

  • একই আর্কিটেকচার
  • রিসোর্স ভারী অ্যাপ্লিকেশন
  • নেটওয়ার্কিং এবং সুরক্ষা সম্পর্কিত সমস্যা।

ধারক সেটআপটিকে তার পূর্বসূরীদের সাথে তুলনা করে আমরা উপসংহারে পৌঁছাতে পারি যে কন্টেইনারাইজেশন হ'ল দ্রুত, সর্বাধিক সংস্থান কার্যকর এবং সবচেয়ে নিরাপদ সেটআপ যা আমরা আজ অবধি জানি। ধারকগুলি বিচ্ছিন্ন দৃষ্টান্ত যা আপনার অ্যাপ্লিকেশনটি চালায়। ডকারটি একটি উপায়ে কনটেইনারটি স্পিন করে দেয়, স্তরগুলি ডিফল্ট স্টোরেজ ড্রাইভারগুলির সাথে রান টাইম মেমরি পায় (ওভারলে ড্রাইভারগুলি) যারা কয়েক সেকেন্ডের মধ্যে চলে এবং তারপরে কপি-অন-রাইটিং স্তর তৈরি হয়ে যায় যখন আমরা ধারকটিতে প্রতিশ্রুতিবদ্ধ করি, যা কার্যকর করার ক্ষমতা দেয় পাত্রে।ভিএম এর ক্ষেত্রে ভার্চুয়ালাইজ পরিবেশে সবকিছু লোড হতে প্রায় এক মিনিট সময় লাগবে। এই লাইটওয়েট দৃষ্টান্তগুলি প্রতিস্থাপন, পুনর্নির্মাণ এবং সহজেই চারপাশে স্থানান্তরিত হতে পারে। এটি আমাদের উত্পাদন এবং বিকাশের পরিবেশকে আয়না করতে দেয় এবং সিআই / সিডি প্রসেসগুলিতে দুর্দান্ত সহায়তা করে। কনটেইনারগুলি যে সুবিধাগুলি সরবরাহ করতে পারে তা এতটা বাধ্য হয়ে থাকে যে তারা অবশ্যই এখানে থাকার জন্য।


ভিএমএসের তুলনায় এটি কেন "সর্বাধিক সুরক্ষিত সেটআপ" হওয়া উচিত দয়া করে বলুন।
এমকেস্পার

@ এমকেস্পার: আপনি যখন উত্তরাধিকার পরিবেশ থেকে কনটেইনার পরিবেশে স্থানান্তরিত হন, তখন আপনার কাছে সুরক্ষা দৃষ্টান্ত তৈরির বিভিন্ন উপায় রয়েছে, এটি হস্তক্ষেপ রোধের প্রতিক্রিয়াশীল পদ্ধতির চেয়ে প্র্যাকটিভের ভিত্তিতে তৈরি। এটি আপনাকে আপনার অ্যাপ্লিকেশন এবং রানটাইমকে আরও দানাদার এবং সংকীর্ণ স্তরে সুরক্ষিত করতে দেয়। তারা আপনার কর্মপ্রবাহ ব্যাহত করার পূর্বে সম্ভাব্য সুরক্ষা হুমকিসমূহ সনাক্ত এবং সমাধানের ক্ষমতা দেয়। এবং, রানটাইম প্রতিরক্ষা স্বয়ংক্রিয় করতে এবং আপনার পরিবেশ জুড়ে নীতি প্রয়োগ করতে এমএল এর সাথে স্থির বিশ্লেষণ একত্রিত করা সম্ভব। সুতরাং, "সর্বাধিক সুরক্ষিত সেটআপ" লাইন।
mohan08p

18

সম্পর্কিত:-

"সফটওয়্যারটি কোনও ডকার ইমেজে স্থাপন করা সহজতর ধারাবাহিক উত্পাদন পরিবেশে স্থাপনের চেয়ে সহজ কেন?"

বেশিরভাগ সফ্টওয়্যার অনেক পরিবেশে স্থাপন করা হয়, সাধারণত নিম্নলিখিতগুলির মধ্যে সর্বনিম্ন তিনটি:

  1. পৃথক বিকাশকারী পিসি
  2. ভাগ করে নেওয়া বিকাশকারী পরিবেশ
  3. পৃথক পরীক্ষক পিসি
  4. ভাগ করে নেওয়া পরীক্ষার পরিবেশ
  5. কিউএ পরিবেশ
  6. ইউএটি পরিবেশ
  7. লোড / পারফরম্যান্স পরীক্ষা
  8. লাইভ স্টেজিং
  9. উত্পাদনের
  10. সংরক্ষাণাগার

নিম্নলিখিত বিষয়গুলিও বিবেচনা করতে হবে:

  • বিকাশকারীগণ এবং প্রকৃতপক্ষে পরীক্ষকগণ সকলেই সূক্ষ্মভাবে বা ব্যাপকভাবে পৃথকভাবে পিসি কনফিগারেশনগুলি পাবেন কাজের প্রকৃতি অনুসারে
  • ডেভেলপাররা প্রায়শই কর্পোরেট বা ব্যবসায়িক মানককরণের নিয়মের নিয়ন্ত্রণ ছাড়িয়ে পিসিগুলিতে বিকাশ করতে পারে (যেমন: ফ্রিল্যান্সাররা যারা তাদের নিজস্ব মেশিনে বিকাশ করেন (প্রায়শই দূরবর্তীভাবে) বা তাদের পিসিগুলিকে কনফিগার করার জন্য 'নিয়োগকৃত' বা 'চুক্তিবদ্ধ' না হওয়া সোর্স প্রকল্পগুলিতে অবদানকারীরা থাকেন) পথ)
  • কিছু পরিবেশে ভারসাম্যপূর্ণ কনফিগারেশনের একটি নির্দিষ্ট সংখ্যক মেশিন থাকবে
  • অনেক উত্পাদন পরিবেশে ট্র্যাফিক স্তরের উপর নির্ভর করে মেঘ-ভিত্তিক সার্ভারগুলি গতিশীলভাবে (বা 'ইলাস্টিকালি') তৈরি এবং ধ্বংস হবে

আপনি দেখতে পাচ্ছেন যে সংস্থার জন্য বহির্মুখী মোট সার্ভার সংখ্যা একক পরিসংখ্যানের মধ্যে খুব কমই হয়, ট্রিপল ফিগারে খুব বেশি থাকে এবং সহজেই এখনও তাত্পর্যপূর্ণভাবে উচ্চতর হতে পারে।

এর অর্থ এই যে প্রথম স্থানে সামঞ্জস্যপূর্ণ পরিবেশ তৈরি করা কেবল নিছক ভলিউমের কারণে (এমনকি একটি সবুজ ক্ষেত্রের দৃশ্যেও) যথেষ্ট শক্ত, তবে তাদের সাথে সামঞ্জস্য বজায় রাখা সব চেয়ে বেশি অসম্ভব , উচ্চতর সংখ্যক সার্ভার, নতুন সার্ভার সংযোজন (গতিশীল বা ম্যানুয়ালি), o / s বিক্রেতাদের, অ্যান্টি-ভাইরাস বিক্রেতাদের, ব্রাউজার বিক্রেতাদের এবং এর মতো, ম্যানুয়াল সফ্টওয়্যার ইনস্টল করা বা বিকাশকারীরা বা সার্ভার টেকনিশিয়ানরা দ্বারা সম্পাদিত কনফিগারেশন পরিবর্তনগুলি ইত্যাদির থেকে স্বয়ংক্রিয় আপডেটগুলি repeat পরিবেশকে ধারাবাহিক রাখতে (ঠিক আছে, পিউরিস্টের পক্ষে এটি করা যেতে পারে, তবে এতে প্রচুর সময়, প্রচেষ্টা এবং শৃঙ্খলা জড়িত, এটিই কেন ভিএম এবং পাত্রে (যেমন ডকার) প্রথম স্থানে তৈরি হয়েছিল)।

সুতরাং আপনার প্রশ্নটি আরও এই জাতীয়ভাবে ভাবুন "সমস্ত পরিবেশকে ধারাবাহিকভাবে রাখার চরম অসুবিধা দেওয়া, শেখার বক্ররেখাকে বিবেচনায় নেওয়ার পরেও ডকার ইমেজে সফ্টওয়্যার স্থাপন করা কি সহজ?" । আমি মনে করি আপনি উত্তরটি হ'ল "হ্যাঁ" হয়ে যাবেন - তবে এটি খুঁজে পাওয়ার একমাত্র উপায় আছে, স্ট্যাক ওভারফ্লোতে এই নতুন প্রশ্নটি পোস্ট করুন।


সুতরাং, আমি যদি আমার ডকার চিত্রটি 15 টি ভিন্ন ভিন্ন বাক্সের সাথে স্থাপন করি যা সমস্ত ওএস / সংস্করণের বিভিন্ন সংমিশ্রণ রয়েছে, তবে আমার সমস্ত ডকার চিত্র একই হবে?
তেওমন শিপাহি

@ তিওমনশাহী এই সমস্ত পাত্রে হোস্ট দ্বারা সরবরাহ করা একই কার্নেলটি ব্যবহার করতে পারলে, হ্যাঁ, সেগুলি সফলভাবে চলবে।
লাইট.জি

আমি যদি আমার স্থানীয় উইন্ডোজের জন্য ডকার ব্যবহার করি তবে আমি কি লিনাক্স / ম্যাকের মধ্যে একইভাবে মোতায়েন এবং চালাতে পারি?
তেওমন শিপাহি

যে জিনিসগুলি সর্বদা উদ্দীপ্ত বলে মনে হয় তা হ'ল সংস্করণ নির্ভরতা এখনও রয়েছে: 1) বিকাশকারীকে অবশ্যই সেই একই পরিবেশে বিকাশ করতে হবে যা চিত্রটিতে রয়েছে; 2) ডিভ পরিবেশ এবং পরীক্ষার পরিবেশের জন্য লিনাক্স কার্নেল এবং ডকার নিজেই উভয়ের একই (বা সামঞ্জস্যপূর্ণ) সংস্করণ চালানো দরকার ... হ্যাঁ?
বোগাতিয়ার

18

অনেক উত্তর রয়েছে যা পার্থক্যগুলি সম্পর্কে আরও বিশদ ব্যাখ্যা করে তবে এখানে আমার খুব সংক্ষিপ্ত ব্যাখ্যা দেওয়া হল।

একটি গুরুত্বপূর্ণ পার্থক্য হ'ল ভিএমরা ওএস চালানোর জন্য পৃথক কার্নেল ব্যবহার করে । এ কারণেই এটি ভারী এবং বুট করতে সময় লাগে, আরও সিস্টেম সংস্থান গ্রহণ করে।

ডকারে, পাত্রে হোস্টের সাথে কার্নেলটি ভাগ করা হয় ; অতএব এটি হালকা এবং এটি দ্রুত শুরু করতে এবং থামাতে পারে।

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

ডকার ইউনিয়ন ফাইল সিস্টেম ব্যবহার করে .. ডকার পাত্রে ব্যবহৃত গ্রাহকের স্মৃতিশক্তি হ্রাস করতে একটি অনুলিপি-রচনা প্রযুক্তি ব্যবহার করে technology এখানে আরও পড়ুন


1
"ভার্চুয়ালাইজেশনে, সংস্থানগুলির শুরুতে সংস্থানগুলি বরাদ্দ করা হয় এবং তাই ভার্চুয়াল মেশিনটি অনেক সময় নিষ্ক্রিয় হয়ে থাকে তখন সংস্থানগুলি সম্পূর্ণরূপে ব্যবহার হয় না" হাইপার-ভি এর ডায়নামিক মেমরির ধারণা রয়েছে যেখানে আপনি ন্যূনতম, সর্বাধিক নির্দিষ্ট করতে পারেন এবং স্টার্টআপ র‌্যাম।
মারিউজ

15

একটি সঙ্গে ভার্চুয়াল মেশিন , আমরা এমন একটি সার্ভার আছে, আমরা যে সার্ভারে একটি হোস্ট অপারেটিং সিস্টেম আছে, এবং তারপর আমরা হাইপারভাইসরের আছে। এবং তারপরে সেই হাইপারভাইজারের শীর্ষে চলমান, আমাদের কাছে একটি অ্যাপ্লিকেশন এবং এর নির্ভরশীল বাইনারিগুলির সাথে প্রচুর অতিথি অপারেটিং সিস্টেম এবং সেই সার্ভারে লাইব্রেরি রয়েছে। এটি এর সাথে একটি সম্পূর্ণ অতিথি অপারেটিং সিস্টেম নিয়ে আসে। এটি বেশ হেভিওয়েট। এছাড়াও আপনি প্রতিটি শারীরিক মেশিনে আসলে কতটা রাখতে পারেন তার একটি সীমা রয়েছে।

এখানে চিত্র বিবরণ লিখুন

অন্যদিকে ডকারের পাত্রে কিছুটা আলাদা। আমাদের সার্ভার আছে। আমাদের কাছে হোস্ট অপারেটিং সিস্টেম রয়েছে। তবে পরিবর্তে হাইপারভাইজার , আমাদের কাছে ডকার ইঞ্জিন ক্ষেত্রে । এই ক্ষেত্রে, আমরা আমাদের সাথে একটি সম্পূর্ণ অতিথি অপারেটিং সিস্টেম আনছি না।আমরা অপারেটিং সিস্টেমের একটি খুব পাতলা স্তর নিয়ে আসছি , এবং সেখানে কার্নেল কার্যকারিতা পেতে কন্টেইনারটি হোস্ট ওএসের সাথে কথা বলতে পারে। এবং এটি আমাদের একটি খুব হালকা ওজনের ধারক রাখার অনুমতি দেয়।

এটিতে যা রয়েছে তার সবগুলিতেই অ্যাপ্লিকেশন কোড এবং কোনও বাইনারি এবং লাইব্রেরি রয়েছে যা এটির প্রয়োজন। এবং well সমস্ত বাইনারি এবং লাইব্রেরিগুলি যদি আপনি সেগুলি হতে চান তবে প্রকৃতপক্ষে বিভিন্ন ধারক জুড়ে ভাগ করা যেতে পারে। এবং যা আমাদের এটি করতে সক্ষম করে তা হ'ল একাধিক বিষয়। তারা অনেক দ্রুত প্রারম্ভিক সময় আছে । আপনি এর মতো কয়েক সেকেন্ডে একটি একক ভিএম দাঁড়াতে পারবেন না। এবং সমানভাবে, তাদের যত তাড়াতাড়ি নিচে নামানো হয় .. যাতে আমরা খুব দ্রুত স্কেল আপ এবং ডাউন করতে পারি এবং আমরা এটি পরে দেখব।

এখানে চিত্র বিবরণ লিখুন

প্রতিটি ধারক মনে করে যে এটি অপারেটিং সিস্টেমের নিজস্ব অনুলিপিটিতে চলছে। এটি নিজস্ব ফাইল সিস্টেম, নিজস্ব রেজিস্ট্রি ইত্যাদি পেয়েছে যা এক ধরণের মিথ্যা। এটি আসলে ভার্চুয়ালাইজড হচ্ছে।



11

আমি উত্পাদন পরিবেশে এবং মঞ্চায়নে ডকার ব্যবহার করেছি। আপনি এটিতে অভ্যস্ত হয়ে গেলে আপনি একটি বহু ধারক এবং বিচ্ছিন্ন পরিবেশ তৈরির জন্য এটি খুব শক্তিশালী দেখতে পাবেন।

ডকার এলএক্সসি (লিনাক্স কনটেইনার) এর উপর ভিত্তি করে তৈরি করা হয়েছে এবং অনেকগুলি লিনাক্স বিতরণে বিশেষত উবুন্টুতে পুরোপুরি কাজ করে।

ডকারের ধারকগুলি বিচ্ছিন্ন পরিবেশ। আপনি ইস্যু করার সময় এটি দেখতে পাবেনtop ডকার ইমেজ থেকে তৈরি করা হয়েছে এমন একটি ডকার পাত্রে কমান্ড ।

এগুলি ছাড়াও, তারা ডকারফাইলে কনফিগারেশনের জন্য খুব হালকা ওজন এবং নমনীয় ধন্যবাদ।

উদাহরণস্বরূপ, আপনি একটি ডকার ইমেজ তৈরি করতে পারেন এবং একটি ডকারফিল কনফিগার করতে পারেন এবং বলতে পারেন যে এটি যখন চলমান থাকে তখন 'এই' উইজেট করুন, অ্যাপট-গেট 'যে', 'কিছু শেল স্ক্রিপ্ট' চালান, পরিবেশের ভেরিয়েবলগুলি সেট করুন এবং এই জাতীয় কিছু।

মাইক্রো-পরিষেবা প্রকল্প এবং আর্কিটেকচারে ডকার একটি খুব কার্যকর সম্পত্তি as আপনি ডকার, ডকার সোর্ম, কুবারনেটস এবং ডকার কমপোজ দিয়ে স্কেল্যাবিলিটি, স্থিতিস্থাপকতা এবং স্থিতিস্থাপকতা অর্জন করতে পারেন।

ডকার সম্পর্কিত আরেকটি গুরুত্বপূর্ণ বিষয় হ'ল ডকার হাব এবং এর সম্প্রদায়। উদাহরণস্বরূপ, আমি প্রমিথিউস, গ্রাফানা, প্রমিথিউস-জেএমএক্স-এক্সপোর্টার এবং ডকার ব্যবহার করে কাফকা পর্যবেক্ষণের জন্য একটি বাস্তুতন্ত্র প্রয়োগ করেছি।

এটি করার জন্য, আমি চিড়িয়াখানা, কাফকা, প্রমিথিউস, গ্রাফানা এবং জেএমএক্স-সংগ্রাহকের জন্য কনফিগার করা ডকার কনটেইনারগুলি ডাউনলোড করেছিলাম তারপরে YYL ফাইলগুলি ব্যবহার করে তাদের জন্য আমার নিজের কনফিগারেশনটি লাগিয়েছিল বা অন্যদের জন্য আমি ডকারের ধারকটিতে কিছু ফাইল এবং কনফিগারেশন পরিবর্তন করেছি এবং আমি কাফকা মনিটরিংয়ের জন্য একটি সম্পূর্ণ সিস্টেম তৈরি করুন মাল্টি-কনটেইনার ডক্সকে একক মেশিনে বিচ্ছিন্নতা এবং স্কেলিবিলিটি এবং স্থিতিস্থাপকতা সহ যা এই আর্কিটেকচারটি সহজেই একাধিক সার্ভারে স্থানান্তরিত হতে পারে।

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

দ্রষ্টব্য: প্রথম স্থানে ডকার শেখা জটিল এবং কঠিন বলে মনে হচ্ছে, তবে আপনি যখন এটির অভ্যস্ত হয়ে যান তখন আপনি এটি ছাড়া কাজ করতে পারবেন না।

আমি ডকারের সাথে কাজ করার প্রথম দিনগুলি স্মরণ করি যখন আমি ভুল কমান্ড জারি করেছিলাম বা আমার পাত্রে এবং সমস্ত ডেটা এবং কনফিগারেশনগুলি ভুলভাবে মুছে ফেলেছিলাম।


6

এভাবেই ডকার নিজেকে পরিচয় করিয়ে দেয়:

ডকার হ'ল সংস্থাগুলি চালনা এবং হাইব্রিড মেঘ জুড়ে প্রতিটি অ্যাপ্লিকেশনকে সম্বোধন করার একমাত্র কন্টেইনার প্ল্যাটফর্ম সরবরাহকারী সংস্থা। আজকের ব্যবসায়গুলি ডিজিটালি রূপান্তরিত করার জন্য চাপের মধ্যে রয়েছে তবে ক্রমবর্ধমান মেঘ, ডাটাসেন্টার এবং অ্যাপ্লিকেশন আর্কিটেকচারের বিবিধ পোর্টফোলিওটি যুক্তিযুক্ত করার সময় বিদ্যমান অ্যাপ্লিকেশন এবং অবকাঠামো দ্বারা সীমাবদ্ধ। ডকার অ্যাপ্লিকেশন এবং অবকাঠামো এবং বিকাশকারীদের মধ্যে আইটি সত্য স্বাধীনতা সক্ষম করে এবং তথ্যপ্রযুক্তি তাদের সম্ভাব্যতা আনলক করতে এবং আরও ভাল সহযোগিতা এবং উদ্ভাবনের জন্য একটি মডেল তৈরি করে।

সুতরাং ডকারটি ধারক ভিত্তিক, এর অর্থ আপনার কাছে ইমেজ এবং ধারক রয়েছে যা আপনার বর্তমান মেশিনে চালানো যেতে পারে। এটি ভিএমএস এর মতো অপারেটিং সিস্টেমকে অন্তর্ভুক্ত করে না , তবে জাভা, টমক্যাট ইত্যাদির মতো বিভিন্ন ওয়ার্কিং প্যাকের প্যাকের মতো including

আপনি যদি ধারকগুলি বুঝতে পারেন তবে ডকার কী এবং আপনি ভিএম এর থেকে কীভাবে আলাদা তা পাবেন ...

সুতরাং, একটি ধারক কি?

একটি ধারক চিত্রটি একটি হালকা ওজনের, একা থাকা, চালিত প্যাকেজ যা কোনও সফ্টওয়্যারের টুকরো যা চালানোর জন্য প্রয়োজনীয় সবকিছু অন্তর্ভুক্ত করে: কোড, রানটাইম, সিস্টেম সরঞ্জাম, সিস্টেম লাইব্রেরি, সেটিংস। লিনাক্স এবং উইন্ডোজ ভিত্তিক অ্যাপ্লিকেশন উভয়ের জন্য উপলব্ধ, পরিবেশযুক্ত নির্বিশেষে ধারকযুক্ত সফ্টওয়্যার সর্বদা একই চলবে। ধারকগণ তার চারপাশ থেকে সফ্টওয়্যারকে বিচ্ছিন্ন করে রাখে, উদাহরণস্বরূপ উন্নয়ন এবং মঞ্চ পরিবেশের মধ্যে পার্থক্য এবং একই অবকাঠামোতে বিভিন্ন সফ্টওয়্যার পরিচালিত টিমের মধ্যে দ্বন্দ্ব হ্রাস করতে সহায়তা করে।

ডকশ্রমিক

আপনি নীচের চিত্রটিতে যেমন দেখেন যে, প্রতিটি ধারকটির একটি পৃথক প্যাক রয়েছে এবং একটি একক মেশিনে চলছে এটি সেই মেশিনের অপারেটিং সিস্টেমকে ভাগ করে দেয় ... তারা সুরক্ষিত এবং শিপ করা সহজ ...


4

এখানে অনেকগুলি দুর্দান্ত প্রযুক্তিগত উত্তর রয়েছে যা ভিএম এবং পাত্রে এবং ডকারের উত্সের মধ্যে পার্থক্যগুলি স্পষ্টভাবে আলোচনা করে।

আমার জন্য ভিএমএস এবং ডকারের মধ্যে মৌলিক পার্থক্য হ'ল আপনি কীভাবে আপনার অ্যাপ্লিকেশনটির প্রচার পরিচালনা করেন।

ভিএম এর সাহায্যে আপনি আপনার অ্যাপ্লিকেশন এবং এর নির্ভরতাগুলি একটি ভিএম থেকে পরের ডিইভি থেকে ইউএটি থেকে পিআরডি পর্যন্ত প্রচার করুন।

  1. প্রায়শই এই ভিএম এর বিভিন্ন প্যাচ এবং গ্রন্থাগার থাকে।
  2. একাধিক অ্যাপ্লিকেশন একটি ভিএম ভাগ করে নেওয়া অস্বাভাবিক নয়। এর জন্য সমস্ত অ্যাপ্লিকেশনগুলির জন্য পরিচালনা কনফিগারেশন এবং নির্ভরতা প্রয়োজন।
  3. ব্যাকআউটের জন্য ভিএম-এ পূর্বাবস্থায় ফিরে আসা দরকার। অথবা সম্ভব হলে এটি পুনরুদ্ধার করুন।

ডকারের সাথে ধারণাটি হ'ল আপনি নিজের অ্যাপ্লিকেশনটিকে তার নিজের পাত্রে ভিতরে প্রয়োজনীয় লাইব্রেরিগুলির সাথে বান্ডেল করুন এবং তারপরে পুরো ধারকটিকে একটি একক হিসাবে প্রচার করুন ।

  1. কার্নেল ব্যতীত প্যাচ এবং গ্রন্থাগারগুলি অভিন্ন।
  2. একটি সাধারণ নিয়ম হিসাবে কনটেইনার প্রতি শুধুমাত্র একটি অ্যাপ্লিকেশন রয়েছে যা কনফিগারেশনকে সহজতর করে।
  3. ব্যাকআউট কন্টেনারটি থামানো এবং মুছে নিয়ে গঠিত।

সুতরাং ভিএমএসের সাথে সর্বাধিক মৌলিক স্তরে আপনি অ্যাপ্লিকেশন এবং এর নির্ভরতাগুলিকে বিচ্ছিন্ন উপাদান হিসাবে প্রচার করেন যেখানে ডকারের সাহায্যে আপনি সমস্ত কিছুকে এক হিটতে প্রচার করেন।

এবং হ্যাঁ কনটেইনারগুলির সাথে ম্যানেজ করার মতো সমস্যা রয়েছে যদিও কুবেরনেটস বা ডকার সোর্মের মতো সরঞ্জামগুলি কার্যকে সহজতর করে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.