ඩෝකර් යනු අථත්යකරණ ක්රමවේදයක් නොවේ. එය ඇත්ත වශයෙන්ම බහාලුම් මත පදනම් වූ අථත්යකරණය හෝ මෙහෙයුම් පද්ධති මට්ටමේ අථත්යකරණය ක්රියාත්මක කරන වෙනත් මෙවලම් මත රඳා පවතී. ඒ සඳහා ඩෝකර් මුලින් LXC ධාවකය භාවිතා කළ අතර පසුව එය libcontainer වෙත ගෙන යන ලද අතර එය දැන් runc ලෙස නම් කර ඇත. ඩෝකර් මූලික වශයෙන් අවධානය යොමු කරන්නේ යෙදුම් බහාලුම් තුළ යෙදුම් යෙදවීම ස්වයංක්රීය කිරීම සඳහා ය. යෙදුම් බහාලුම් තනි සේවාවක් ඇසුරුම් කර ක්රියාත්මක කිරීම සඳහා නිර්මාණය කර ඇති අතර පද්ධති බහාලුම් අථත්ය යන්ත්ර වැනි බහු ක්රියාදාමයන් ක්රියාත්මක කිරීම සඳහා නිර්මාණය කර ඇත. එබැවින්, ඩොකර් බහාලුම් පද්ධතිවල බහාලුම් කළමනාකරණය හෝ යෙදුම් යෙදවීමේ මෙවලමක් ලෙස සැලකේ.
එය වෙනත් අථත්යකරණයන්ට වඩා වෙනස් වන්නේ කෙසේදැයි දැන ගැනීම සඳහා, අපි අථත්යකරණය සහ එහි වර්ග හරහා යමු. එවිට එහි ඇති වෙනස කුමක්දැයි වටහා ගැනීම පහසු වනු ඇත.
අථත්යකරණය
එහි සංකල්පිත ස්වරූපයෙන්, බහු යෙදුම් එකවර ක්රියාත්මක වීමට ඉඩ දීම සඳහා තර්කානුකූලව ප්රධාන රාමු බෙදීමේ ක්රමයක් ලෙස එය සලකනු ලැබීය. කෙසේ වෙතත්, වරප්රසාදිත උපදෙස් එක් ආකාරයකින් හෝ වෙනත් ආකාරයකින් හැසිරවීමේ ක්රමවේදයක් සැපයීමට සමාගම්වලට සහ විවෘත මූලාශ්ර ප්රජාවන්ට හැකි වූ විට සහ එක් x86 පදනම් කරගත් පද්ධතියක් මත එකවර මෙහෙයුම් පද්ධති කිහිපයක් ක්රියාත්මක කිරීමට ඉඩ ලබා දුන් විට තත්වය විශාල වශයෙන් වෙනස් විය.
හයිපර්වයිසර්
ආගන්තුක අථත්ය යන්ත්ර ක්රියාත්මක වන අථත්ය පරිසරය නිර්මාණය කිරීම හයිපර්වයිසර් හසුරුවයි. එය ආගන්තුක පද්ධති අධීක්ෂණය කරන අතර අවශ්ය පරිදි අමුත්තන්ට සම්පත් වෙන් කිරීමට වග බලා ගනී. හයිපර්වයිසර් භෞතික යන්ත්රය සහ අථත්ය යන්ත්ර අතර වාඩි වී අථත්ය යන්ත්ර සඳහා අථත්යකරණ සේවා සපයයි. එය සාක්ෂාත් කර ගැනීම සඳහා, එය අථත්ය යාන්ත්රණවල ආගන්තුක මෙහෙයුම් පද්ධති මෙහෙයුම් වලට බාධා කරන අතර ධාරක යන්ත්රයේ මෙහෙයුම් පද්ධතියේ ක්රියාකාරිත්වය අනුකරණය කරයි.
මූලික වශයෙන් වලාකුළු තුළ අථත්යකරණ තාක්ෂණයන්හි ශී development ්ර දියුණුව, Xen, VMware Player, KVM, වැනි හයිපර්වයිසර් ආධාරයෙන් තනි භෞතික සේවාදායකයක බහු අථත්ය සේවාදායකයන් නිර්මාණය කිරීමට ඉඩ දීමෙන් අථත්යකරණය තවදුරටත් භාවිතා කිරීමට හේතු වී තිබේ. ඉන්ටෙල් වීටී සහ ඒඑම්ඩී-වී වැනි වෙළඳ සකසනයන්හි දෘඩාංග සහාය ඇතුළත් කිරීම.
අථත්යකරණ වර්ග
ආගන්තුක මෙහෙයුම් පද්ධතියකට දෘඩාංග අනුකරණය කරන ආකාරය සහ ආගන්තුක මෙහෙයුම් පරිසරයක් අනුකරණය කරන ආකාරය මත පදනම්ව අථත්යකරණ ක්රමය වර්ගීකරණය කළ හැකිය. මූලික වශයෙන්, අථත්යකරණය වර්ග තුනක් ඇත:
- අනුකරණය
- පරාවර්තකකරණය
- බහාලුම් මත පදනම් වූ අථත්යකරණය
අනුකරණය
සම්පුර්ණ අථත්යකරණය ලෙසද හැඳින්වෙන අනුකරණයන් අථත්ය යන්ත්ර මෙහෙයුම් පද්ධතියේ කර්නලය මුළුමනින්ම මෘදුකාංග තුළ ක්රියාත්මක වේ. මෙම වර්ගයේ භාවිතා කරන හයිපර්වයිසර් වර්ගය 2 හයිපර්වයිසර් ලෙස හැඳින්වේ. ආගන්තුක මෙහෙයුම් පද්ධතියේ කර්නල් කේතය මෘදුකාංග උපදෙස් වලට පරිවර්තනය කිරීම සඳහා වගකිව යුතු ධාරක මෙහෙයුම් පද්ධතියේ ඉහළින් එය ස්ථාපනය කර ඇත. පරිවර්තනය මුළුමනින්ම මෘදුකාංගයෙන් සිදු කර ඇති අතර දෘඩාංග සම්බන්ධයක් අවශ්ය නොවේ. අනුකරණය කිරීමෙන් පරිසරය අනුකරණය කරන ඕනෑම වෙනස් නොකළ මෙහෙයුම් පද්ධතියක් ක්රියාත්මක කිරීමට හැකි වේ. මෙම වර්ගයේ අථත්යකරණයේ අවාසිය නම් වෙනත් පද්ධති අථත්යකරණයන්ට සාපේක්ෂව කාර්ය සාධනය අඩුවීමට තුඩු දෙන අතිරේක පද්ධති සම්පත් පොදු කාර්යයකි.
මෙම කාණ්ඩයේ නිදසුන් අතර VMware Player, VirtualBox, QEMU, Bochs, Parallels ආදිය ඇතුළත් වේ.
පරාවර්තකකරණය
1 වන වර්ගයේ හයිපර්වයිසර් ලෙසද හැඳින්වෙන පරාවර්චුවලීකරණය කෙලින්ම දෘඩාංග හෝ “හිස්-ලෝහ” මත ධාවනය වන අතර එය මත ක්රියාත්මක වන අථත්ය යන්ත්ර සඳහා සෘජුවම අථත්යකරණ සේවා සපයයි. මෙහෙයුම් පද්ධතිය, අථත්යකරණය කළ දෘඩාංග සහ සැබෑ දෘඩාංග ප්රශස්ත කාර්ය සාධනය ළඟා කර ගැනීමට සහයෝගයෙන් කටයුතු කිරීමට එය උපකාරී වේ. මෙම හයිපර්වයිසර්ස් සාමාන්යයෙන් තරමක් කුඩා අඩිපාරක් ඇති අතර ඔවුන්ට පුළුල් සම්පත් අවශ්ය නොවේ.
මෙම කාණ්ඩයේ නිදසුන් අතර Xen, KVM යනාදිය ඇතුළත් වේ.
බහාලුම් මත පදනම් වූ අථත්යකරණය
බහාලුම් මත පදනම් වූ අථත්යකරණය, මෙහෙයුම් පද්ධති මට්ටමේ අථත්යකරණය ලෙසද හැඳින්වේ, තනි මෙහෙයුම් පද්ධති කර්නලයක් තුළ බහු හුදකලා ක්රියාත්මක කිරීම් සක්රීය කරයි. එය හැකි උපරිම කාර්ය සාධනය සහ ity නත්වය ඇති අතර ගතික සම්පත් කළමනාකරණය ද දක්වයි. මෙම වර්ගයේ අථත්යකරණය මඟින් සපයන හුදකලා අතථ්ය ක්රියාත්මක කිරීමේ පරිසරය බහාලුමක් ලෙස හැඳින්වෙන අතර එය ක්රියාවලි සමූහයක් ලෙස දැකිය හැකිය.
බහාලුමක් පිළිබඳ සංකල්පය ලිනක්ස් කර්නල් අනුවාදය 2.6.24 ට එකතු කරන ලද නාම අවකාශයේ අංගය මඟින් කළ හැකි ය. කන්ටේනරය සෑම ක්රියාවලියකටම එහි හැඳුනුම්පත එක් කරන අතර සෑම පද්ධති ඇමතුමකටම නව ප්රවේශ පාලන චෙක්පත් එක් කරයි. මීට පෙර ගෝලීය නාම අවකාශයන්හි වෙනම අවස්ථා නිර්මාණය කිරීමට ඉඩ සලසන ක්ලෝන () පද්ධති ඇමතුම මඟින් එයට ප්රවේශ වේ.
නාම අවකාශයන් විවිධ ආකාරවලින් භාවිතා කළ හැකි නමුත් වඩාත් පොදු ප්රවේශය වන්නේ කන්ටේනරයෙන් පිටත ඇති වස්තූන් සඳහා දෘශ්යතාවයක් හෝ ප්රවේශයක් නොමැති හුදකලා බහාලුමක් නිර්මාණය කිරීමයි. කන්ටේනරය තුළ ක්රියාත්මක වන ක්රියාවලි සාමාන්ය ලිනක්ස් පද්ධතියක් මත ක්රියාත්මක වන බව පෙනේ. නමුත් ඒවා යටින් පවතින කර්නලය වෙනත් නාම අවකාශයන්හි පිහිටා ඇති ක්රියාවලි සමඟ බෙදාගනී. නිදසුනක් ලෙස, නාම අවකාශයන් භාවිතා කරන විට, කන්ටේනරය තුළ ඇති මූල පරිශීලකයා බහාලුමෙන් පිටත මූල ලෙස නොසැලකෙන අතර අමතර ආරක්ෂාවක් එක් කරයි.
බහාලුම් මත පදනම් වූ අථත්යකරණය සක්රීය කිරීමේ ඊළඟ ප්රධාන අංගය වන ලිනක්ස් පාලන කණ්ඩායම් (cgroups) උප පද්ධතිය කණ්ඩායම් ක්රියාවලීන් සඳහා සහ ඒවායේ සමස්ත සම්පත් පරිභෝජනය කළමනාකරණය කිරීමට යොදා ගනී. බහාලුම්වල මතකය සහ CPU පරිභෝජනය සීමා කිරීම සඳහා එය බහුලව භාවිතා වේ. බහාලුම් සහිත ලිනක්ස් පද්ධතියකට ඇත්තේ එක් කර්නලයක් පමණක් වන අතර කර්නලයට බහාලුම්වල පූර්ණ දෘශ්යතාවයක් ඇති හෙයින්, සම්පත් වෙන් කිරීම හා උපලේඛනගත කිරීම සඳහා ඇත්තේ එක් මට්ටමක පමණි.
LXC, LXD, systemd-nspawn, lmctfy, Warden, Linux-VServer, OpenVZ, Docker, ඇතුළු ලිනක්ස් බහාලුම් සඳහා කළමනාකරණ මෙවලම් කිහිපයක් තිබේ.
අතථ්ය යන්ත්ර එදිරිව බහාලුම්
අථත්ය යාන්ත්රයක් මෙන් නොව, බහාලුමක් මෙහෙයුම් පද්ධති කර්නලය ආරම්භ කිරීමට අවශ්ය නොවේ, එබැවින් බහාලුම් තත්පරයකට අඩු කාලයක් තුළ නිර්මාණය කළ හැකිය. මෙම අංගය වෙනත් අථත්යකරණ ප්රවේශයන්ට වඩා බහාලුම් මත පදනම් වූ අථත්යකරණය අද්විතීය සහ ප්රිය කරයි.
බහාලුම් මත පදනම් වූ අථත්යකරණය ධාරක යන්ත්රයට සුළු හෝ වැඩි යමක් එකතු කරන බැවින්, බහාලුම් මත පදනම් වූ අථත්යකරණය ස්වදේශීය ක්රියාකාරිත්වයට ආසන්න වේ
බහාලුම් මත පදනම් වූ අථත්යකරණය සඳහා, වෙනත් අථත්යකරණයන් මෙන් නොව අතිරේක මෘදුකාංග අවශ්ය නොවේ.
ධාරක යන්ත්රයක ඇති සියලුම බහාලුම් මඟින් ධාරක යන්ත්රයේ ඉතිරි කිරීමේ අමතර සම්පත් අවශ්ය වේ.
අතථ්ය යන්ත්ර රූප හා සසඳන විට බහාලුම් තත්වයන් (ඩෝකර් හෝ එල්එක්සී රූප) ප්රමාණයෙන් කුඩා වන බැවින් බහාලුම් රූප බෙදා හැරීම පහසුය.
බහාලුම්වල සම්පත් කළමනාකරණය cgroups හරහා ලබා ගත හැකිය. බහාලුම්වලට වෙන් කර ඇති ප්රමාණයට වඩා වැඩි සම්පත් ප්රමාණයක් පරිභෝජනය කිරීමට Cgroups ඉඩ නොදේ. කෙසේ වෙතත්, මේ වන විට, ධාරක යන්ත්රයේ සියලුම සම්පත් අථත්ය යන්ත්රවල දැකිය හැකි නමුත් භාවිතා කළ නොහැක. එකවර ධාවනය කිරීමෙන් top
හෝ htop
බහාලුම්වල සහ ධාරක යන්ත්රයේ මෙය අවබෝධ කර ගත හැකිය . සියලු පරිසරයන්හි ප්රතිදානය සමාන වනු ඇත.
යාවත්කාලීන කිරීම:
ඩොකර් ලිනක්ස් නොවන පද්ධතිවල බහාලුම් ධාවනය කරන්නේ කෙසේද?
ලිනක්ස් කර්නලයේ ඇති විශේෂාංග නිසා බහාලුම් හැකි නම්, පැහැදිලි ප්රශ්නය වන්නේ ලිනක්ස් නොවන පද්ධති බහාලුම් ක්රියාත්මක කරන්නේ කෙසේද යන්නයි. මැක් සහ වින්ඩෝස් සඳහා ඩොකර් යන දෙකම බහාලුම් ධාවනය කිරීමට ලිනක්ස් වීඑම් භාවිතා කරයි. අතථ්ය පෙට්ටි VM වල බහාලුම් ධාවනය කිරීමට භාවිතා කරන ඩෝකර් මෙවලම් පෙට්ටිය. නමුත් නවතම ඩොකර් වින්ඩෝස් හි හයිපර්-වී සහ මැක්හි හයිපර්වයිසර්.ෆ්රේම්වර්ක් භාවිතා කරයි.
දැන්, මැක් සඳහා ඩොකර් බහාලුම් ධාවනය කරන්නේ කෙසේද යන්න විස්තරාත්මකව විස්තර කිරීමට මට ඉඩ දෙන්න.
මැක් සඳහා ඩොකර් හයිපර්වයිසර් හැකියාවන් අනුකරණය කිරීමට https://github.com/moby/hyperkit භාවිතා කරන අතර හයිපර්කිට් එහි හරය තුළ හයිපර්වයිසර්.ෆ්රේම්වර්ක් භාවිතා කරයි. Hypervisor.framework යනු මැක්හි ස්වදේශීය හයිපර්වයිසර් විසඳුමයි. හයිපර්කිට් පිළිවෙලින් නාම අවකාශ ජාලයට සහ ගොනු පද්ධතියට VPNKit සහ DataKit භාවිතා කරයි.
ඩොකර් මැක් තුළ ධාවනය වන ලිනක්ස් වීඑම් කියවීමට පමණි. කෙසේ වෙතත්, ධාවනය කිරීමෙන් ඔබට එයට පහර දිය හැකිය:
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
.
සියලුම බහාලුම් මෙම වීඑම් තුළ ක්රියාත්මක වේ.
Hypervisor.framework සඳහා යම් සීමාවන් තිබේ. ඒ නිසා ඩොකර් docker0
මැක්හි ජාල අතුරුමුහුණත නිරාවරණය නොකරයි . එබැවින්, ඔබට ධාරකයෙන් බහාලුම් වෙත පිවිසිය නොහැක. මේ වන විට docker0
ලබා ගත හැක්කේ වීඑම් තුළ පමණි.
හයිපර්-වී යනු වින්ඩෝස් හි ස්වදේශීය හයිපර්වයිසර් ය. ලිනක්ස් පද්ධති ස්වදේශීයව ක්රියාත්මක කිරීම සඳහා වින්ඩෝස් 10 හි හැකියාවන් උපයෝගී කර ගැනීමට ද ඔවුහු උත්සාහ කරති.