මම උබුන්ටු සංවර්ධනය හා යෙදවීම සඳහා භාවිතා කරන අතර හුදෙකලා පරිසරයක් නිර්මාණය කිරීමේ අවශ්යතාවයක් ඇත.
මම මේ සඳහා වැග්රන්ට් හෝ ඩෝකර් සලකා බලමි. වාසි සහ අවාසි මොනවාද, නැතහොත් මෙම විසඳුම් සැසඳෙන්නේ කෙසේද?
මම උබුන්ටු සංවර්ධනය හා යෙදවීම සඳහා භාවිතා කරන අතර හුදෙකලා පරිසරයක් නිර්මාණය කිරීමේ අවශ්යතාවයක් ඇත.
මම මේ සඳහා වැග්රන්ට් හෝ ඩෝකර් සලකා බලමි. වාසි සහ අවාසි මොනවාද, නැතහොත් මෙම විසඳුම් සැසඳෙන්නේ කෙසේද?
Answers:
ඔබේ අරමුණ හුදකලාව නම්, මම හිතන්නේ ඩෝකර් ඔබට අවශ්ය දෙයයි.
වැග්රන්ට් යනු අතථ්ය යන්ත්ර කළමනාකරුවෙකි. අථත්ය යන්ත්ර වින්යාසය මෙන්ම ප්රතිපාදන ද ස්ක්රිප්ට් කිරීමට එය ඔබට ඉඩ සලසයි. කෙසේ වෙතත්, එය තවමත් විශාල පොදු කාර්යයක් සහිත වර්චුවල් බොක්ස් (හෝ වෙනත්) මත පදනම්ව අථත්ය යන්ත්රයකි . ඔබට විශාල දෘ hard තැටියක් තිබිය යුතු අතර එය විශාල රැම් ප්රමාණයක් අවශ්ය වන අතර කාර්ය සාධනය එතරම් හොඳ නොවනු ඇත.
Docker අනෙක් අතට භාවිතා කර්නලය cgroup හා හරහා namespacing LXC . එයින් අදහස් වන්නේ ඔබ ධාරකය හා එකම ගොනු පද්ධතිය භාවිතා කරන එකම කර්නලය භාවිතා කරන බවයි. ඔබේ බහාලුමේ docker build
ප්රතිපාදන සහ වින්යාසය හැසිරවීම සඳහා ඔබට විධානය සමඟ ඩොකර්ෆයිල් භාවිතා කළ හැකිය . ඔබගේ Dockerfile සාදා ගන්නේ කෙසේද යන්න පිළිබඳ docs.docker.com හි ඔබට උදාහරණයක් තිබේ ; එය ඉතා බුද්ධිමත් ය.
ඔබේ උබුන්ටු පෙට්ටියේ BSD, Windows හෝ වෙනත් ලිනක්ස් නොවන සංවර්ධනයක් කිරීමට අවශ්ය නම් ඔබට වැග්රන්ට් භාවිතා කිරීමට අවශ්ය එකම හේතුවයි. එසේ නොමැතිනම් ඩෝකර් වෙත යන්න.
වියාචනය: මම ලිව්වේ වැග්රන්ට්! නමුත් මම වැග්රන්ට් ලිවූ නිසා, මම වැඩි කාලයක් ගත කරන්නේ ඩෝකර් වැනි මෘදුකාංග ඇතුළත් ඩෙවොප්ස් ලෝකයේ ය. මම වැග්රන්ට් භාවිතා කරන සමාගම් රාශියක් සමඟ වැඩ කරන අතර බොහෝ දෙනෙක් ඩොකර් භාවිතා කරන අතර, දෙක එකිනෙකට සම්බන්ධ වන ආකාරය මම දකිමි.
මම ඕනෑවට වඩා කතා කිරීමට පෙර, answer ජු පිළිතුරක්: ඔබේ නිශ්චිත තත්වය තුළ (ඔබ තනිවම වැඩ කිරීම, ලිනක්ස් මත වැඩ කිරීම, නිෂ්පාදනයේ ඩෝකර් භාවිතා කිරීම), ඔබට ඩෝකර් සමඟ පමණක් රැඳී සිටිමින් දේවල් සරල කළ හැකිය. වෙනත් බොහෝ අවස්ථා වලදී (මම තවදුරටත් සාකච්ඡා කරමි), එය එතරම් පහසු නැත.
වැග්රන්ට්ව ඩෝකර් සමඟ කෙලින්ම සංසන්දනය කිරීම නිවැරදි නොවේ. සමහර අවස්ථා වලදී, ඒවා අතිච්ඡාදනය වන අතර, අතිමහත් බහුතරයක් තුළ ඒවා සිදු නොවේ. ඇත්ත වශයෙන්ම, වඩාත් උචිත සංසන්දනය වනුයේ වැග්රන්ට් හා බූට් 2 ඩොකර් (ඩොකර් ධාවනය කළ හැකි අවම මෙහෙයුම් පද්ධතිය) වැනි ය. වැග්රන්ට් යනු වියුක්ත කිරීම් අනුව ඩොකර්ට වඩා ඉහළ මට්ටමකි, එබැවින් එය බොහෝ අවස්ථාවන්හි සාධාරණ සංසන්දනයක් නොවේ.
සංවර්ධනයේ අරමුණු සඳහා යෙදුම් / සේවාවන් ක්රියාත්මක කිරීම සඳහා වැග්රන්ට් දේවල් දියත් කරයි. මෙය VirtualBox, VMware මත විය හැකිය. එය AWS, OpenStack වැනි දුරස්ථ විය හැකිය. ඒවා තුළ, ඔබ බහාලුම් භාවිතා කරන්නේ නම්, වැග්රන්ට් එය ගණන් ගන්නේ නැත, එය වැලඳ ගනී: උදාහරණයක් ලෙස ඩොකර් බහාලුම් ස්වයංක්රීයව ස්ථාපනය කිරීමට, පහළට ඇද ගැනීමට, ගොඩ නැගීමට සහ ක්රියාත්මක කිරීමට එයට හැකිය. වැග්රන්ට් 1.6 සමඟ, වැග්රන්ට් ඩොකර් මත පදනම් වූ සංවර්ධන පරිසරයන් ඇති අතර ලිනක්ස්, මැක් සහ වින්ඩෝස් හරහා වැග්රන්ට් මෙන් එකම කාර්ය ප්රවාහයක් සහිත ඩෝකර් භාවිතා කිරීමට සහාය වේ. වැග්රන්ට් මෙහි ඩෝකර් වෙනුවට ආදේශ කිරීමට උත්සාහ නොකරයි, එය ඩෝකර් භාවිතයන් වැලඳ ගනී.
ඩෝකර් විශේෂයෙන් ඩෝකර් බහාලුම් ධාවනය කරයි. ඔබ කෙලින්ම වැග්රන්ට් සමඟ සංසන්දනය කරන්නේ නම්: එය විශේෂයෙන් වඩාත් නිශ්චිත (ඩොකර් බහාලුම් පමණක් ධාවනය කළ හැකිය), අඩු නම්යශීලී (ලිනක්ස් හෝ ලිනක්ස් ධාරකය කොතැනක හෝ අවශ්ය වේ) විසඳුමකි. ඇත්ත වශයෙන්ම ඔබ නිෂ්පාදනය හෝ සීඅයි ගැන කතා කරන්නේ නම්, වැග්රන්ට් සමඟ සැසඳීමක් නොමැත! වැග්රන්ට් මෙම පරිසරවල ජීවත් නොවන බැවින් ඩෝකර් භාවිතා කළ යුතුය.
ඔබේ සංවිධානය ඔවුන්ගේ සියලුම ව්යාපෘති සඳහා ඩොකර් බහාලුම් පමණක් ධාවනය කරන්නේ නම් සහ ලිනක්ස් මත සංවර්ධකයින් පමණක් ක්රියාත්මක වන්නේ නම්, හරි, ඩෝකර්ට අනිවාර්යයෙන්ම ඔබ වෙනුවෙන් වැඩ කළ හැකිය!
එසේ නොමැතිනම්, ඩොකර් පමණක් භාවිතා කිරීමට උත්සාහ කිරීමෙන් මට ප්රයෝජනයක් නොපෙනේ, මන්ද ඔබට සැබෑ ව්යාපාර / tivity ලදායිතා ප්රතිලාභ ඇති වැග්රන්ට් විසින් පිරිනමනු ලබන බොහෝ දේ ඔබට අහිමි වේ:
Vagrant හට VirtualBox, VMware, AWS, OpenStack යනාදිය දියත් කළ හැකිය. ඔබට අවශ්ය දේ කමක් නැත, වැග්රන්ට් හට එය දියත් කළ හැකිය. ඔබ ඩෝකර් භාවිතා කරන්නේ නම්, වැග්රන්ට් හට ඩොකර් ස්ථාපනය කළ හැකි අතර එමඟින් ඔබට ඒවා ඒ සඳහා භාවිතා කළ හැකිය.
වැග්රන්ට් යනු ඔබගේ සියලු ව්යාපෘති සඳහා තනි කාර්ය ප්රවාහයකි. නැතහොත් වෙනත් ආකාරයකින් කිවහොත්, එය ව්යාපෘතියක් ඩෝකර් බහාලුමක් තුළ තිබේද නැද්ද යන්න ක්රියාත්මක කිරීමට මිනිසුන් ඉගෙන ගත යුතු එක් දෙයක් පමණි. උදාහරණයක් ලෙස, අනාගතයේදී, තරඟකරුවෙකු ඩොකර් සමඟ කෙලින්ම තරඟ කිරීමට ඉදිරිපත් වුවහොත්, වැග්රන්ට් හට එය ද ක්රියාත්මක කිරීමට හැකි වනු ඇත.
වැග්රන්ට් වින්ඩෝස් (ආපසු එක්ස්පී වෙත), මැක් (ආපසු 10.5 දක්වා) සහ ලිනක්ස් (කර්නලය වෙත 2.6 වෙත) ක්රියා කරයි. මෙම අවස්ථා තුනෙහිම, කාර්ය ප්රවාහය සමාන වේ. ඔබ ඩෝකර් භාවිතා කරන්නේ නම්, වැග්රන්ට් හට මෙම පද්ධති තුනම ඩොකර් ධාවනය කළ හැකි යන්ත්රයක් (වීඑම් හෝ දුරස්ථ) දියත් කළ හැකිය.
ජාලකරණය සහ ෆෝල්ඩර සමමුහුර්ත කිරීම වැනි දියුණු හෝ සුළු නොවන දේවල් වින්යාසගත කරන්නේ කෙසේදැයි වැග්රන්ට් දනී. උදාහරණයක් ලෙස: යන්ත්රයකට හෝ ඉදිරි වරායට ස්ථිතික අයිපී ඇමිණිය යුතු ආකාරය වැග්රන්ට් දන්නා අතර ඔබ භාවිතා කරන පද්ධතිය කුමක් වුවත් වින්යාසය සමාන වේ (වර්චුවල් බොක්ස්, වීඑම්වෙයාර් ආදිය) සමමුහුර්ත කළ ෆෝල්ඩර සඳහා, වැග්රන්ට් ඔබේ දේශීය ලබා ගැනීම සඳහා විවිධ යාන්ත්රණ සපයයි දුරස්ථ යන්ත්රයට ගොනු (වර්චුවල් බොක්ස් හවුල් ෆෝල්ඩර, එන්එෆ්එස්, ආර්සින්ක්, සම්බා [ප්ලගිනය] ආදිය). ඔබ ඩොකර් භාවිතා කරන්නේ නම්, වැග්රන්ට් නොමැතිව වීඑම් සහිත ඩෝකර් පවා, ඔබට මෙය අතින් කළ යුතුව ඇත, නැතහොත් ඔවුන්ට මෙම නඩුවේ වැග්රන්ට් යලි සොයා ගැනීමට සිදුවේ.
වැග්රන්ට් 1.6 ඩොකර් මත පදනම් වූ සංවර්ධන පරිසරයන් සඳහා පළමු පන්තියේ සහාය ඇත. මෙය ලිනක්ස් හි අථත්ය යන්ත්රයක් දියත් නොකරන අතර මැක් සහ වින්ඩෝස් මත අථත්ය යන්ත්රයක් ස්වයංක්රීයව දියත් කරනු ඇත. අවසාන ප්රති result ලය වනුයේ ඩෝකර් සමඟ වැඩ කිරීම සියලු වේදිකා හරහා ඒකාකාරී වන අතර, වැග්රන්ට් තවමත් ජාලකරණය, සමමුහුර්ත කළ ෆෝල්ඩර වැනි දේ පිළිබඳ වෙහෙසකර තොරතුරු හසුරුවයි.
වැග්රන්ට් වෙනුවට ඩෝකර් භාවිතා කිරීමට මා අසා ඇති නිශ්චිත ප්රතිවිරුද්ධ තර්ක ආමන්ත්රණය කිරීම සඳහා:
"එය අඩු චලනය වන කොටස්" - ඔව්, ඔබ සෑම ව්යාපෘතියක් සඳහාම ඩෝකර් භාවිතා කරන්නේ නම් එය එසේ විය හැකිය. එසේ වුවද, එය ඩෝකර් අගුළු දැමීම සඳහා නම්යශීලී බවක් කැප කරයි. අතීතය, වර්තමානය හෝ අනාගතය සඳහා ඩොකර් භාවිතා නොකිරීමට ඔබ කවදා හෝ තීරණය කළහොත් ඔබට තවත් චලනය වන කොටස් තිබේ. ඔබ වැග්රන්ට් භාවිතා කර ඇත්නම්, ඉතිරි කොටස සඳහා සහාය වන එක් චලනය වන කොටසක් ඔබ සතුව ඇත.
"එය වේගවත්!" - ඔබට ලිනක්ස් බහාලුම් ධාවනය කළ හැකි ධාරකය ලැබුනු පසු, ඩොකර් අනිවාර්යයෙන්ම ඕනෑම අථත්ය යන්ත්රයක් දියත් කිරීමට වඩා බහාලුමක් ධාවනය කිරීමේදී වේගවත් වේ. නමුත් අතථ්ය යන්ත්රයක් (හෝ දුරස්ථ යන්ත්රයක්) දියත් කිරීම එක් වරක් පිරිවැය වේ. දවස පුරා, බොහෝ වැග්රන්ට් භාවිතා කරන්නන් කිසි විටෙකත් ඔවුන්ගේ වීඑම් විනාශ නොකරයි. එය සංවර්ධන පරිසරයන් සඳහා අමුතු ප්රශස්තකරණයකි. නිෂ්පාදනයේදී, ඩෝකර් සැබවින්ම බැබළෙන තැනක, බහාලුම් ඉක්මනින් ඉහළට / පහළට කැරකීමේ අවශ්යතාවය මට වැටහේ.
ඩෝකර්ව වැග්රන්ට් සමඟ සංසන්දනය කිරීම ඉතා අසීරු බව මම විශ්වාස කරමි. ඩිව් පරිසරයන් සඳහා, වැග්රන්ට් වඩාත් වියුක්ත, වඩාත් පොදු ය. ඩෝකර් (සහ ඔබට එය වැග්රන්ට් මෙන් හැසිරීමට හැකි විවිධ ක්රම) වැග්රන්ට් හි නිශ්චිත භාවිත අවස්ථාවකි, වැග්රන්ට් විසින් ලබා දිය යුතු අනෙක් සියල්ල නොසලකා හැරේ.
අවසාන වශයෙන්: අතිශයින්ම විශේෂිත භාවිත අවස්ථා වලදී, ඩෝකර් නිසැකවම වැග්රන්ට් වෙනුවට ආදේශ කළ හැකිය. බොහෝ භාවිත අවස්ථා වලදී එය එසේ නොවේ. ඔබේ ඩෝකර් භාවිතයට වැග්රන්ට් බාධාවක් නොවේ; එය සැබවින්ම එම අත්දැකීම වඩාත් සුමට කිරීමට කළ හැකි දේ කරයි. මෙය සත්ය නොවන බව ඔබ දුටුවහොත්, දේවල් වැඩිදියුණු කිරීම සඳහා යෝජනා ගැනීම ගැන මම සතුටු වෙමි, වැග්රන්ට්ගේ අරමුණ ඕනෑම පද්ධතියක් සමඟ සමානව වැඩ කිරීමයි.
මෙය දේවල් ඉවත් කරයි කියා සිතමු!
vagrant provision
).
මම ඩොකර්ගේ කතුවරයා වෙමි.
කෙටි පිළිතුර නම් ඔබට යන්ත්ර කළමනාකරණය කිරීමට අවශ්ය නම් ඔබ වැග්රන්ට් භාවිතා කළ යුතු බවයි. ඔබට යෙදුම් පරිසරයන් තැනීමට සහ ක්රියාත්මක කිරීමට අවශ්ය නම්, ඔබ ඩෝකර් භාවිතා කළ යුතුය.
වැග්රන්ට් යනු අථත්ය යන්ත්ර කළමනාකරණය කිරීමේ මෙවලමකි. ඩෝකර් යනු සැහැල්ලු බහාලුම්වල ඇසුරුම් කිරීමෙන් යෙදුම් තැනීම හා යෙදවීම සඳහා වූ මෙවලමකි. කන්ටේනරයකට ඕනෑම මෘදුකාංග සංරචකයක් එහි පරායත්තතාවයන් (ක්රියාත්මක කළ හැකි, පුස්තකාල, වින්යාස ලිපිගොනු ආදිය) රඳවා තබා ගත හැකි අතර එය සහතික කළ හැකි සහ නැවත නැවත ක්රියාත්මක වන පරිසරයක ක්රියාත්මක කළ හැකිය. මෙය ඔබගේ යෙදුම එක් වරක් තැනීම සහ ඕනෑම තැනක යෙදවීම ඉතා පහසු කරයි - පරීක්ෂා කිරීම සඳහා ඔබේ ලැප්ටොප් පරිගණකයේ, පසුව සජීවී යෙදවීම සඳහා විවිධ සේවාදායකයන් යනාදිය.
ඔබට ලිනක්ස් හි ඩොකර් පමණක් භාවිතා කළ හැකි බව පොදු වැරදි මතයකි. එය වැරදියි; ඔබට මැක් සහ වින්ඩෝස් වල ඩොකර් ස්ථාපනය කළ හැකිය. මැක්හි ස්ථාපනය කර ඇති විට, ඩෝකර් ඉතා කුඩා ලිනක්ස් වීඑම් එකක් (තැටියේ 25 MB!) ඔබේ බහාලුම සඳහා එතීම ලෙස ක්රියා කරයි. ස්ථාපනය කිරීමෙන් පසු මෙය සම්පූර්ණයෙන්ම විනිවිද පෙනෙන ය; ඔබට ඩොකර් විධාන රේඛාව හරියටම එකම ආකාරයකින් භාවිතා කළ හැකිය. මෙය ඔබට ලෝක දෙකෙහිම හොඳම දේ ලබා දෙයි: ඔබට ඉතා සැහැල්ලු, පරීක්ෂා කිරීමට පහසු සහ එහා මෙහා යාමට පහසු වන බහාලුම් භාවිතයෙන් ඔබේ යෙදුම පරීක්ෂා කර සංවර්ධනය කළ හැකිය (උදාහරණයක් ලෙස නැවත භාවිතා කළ හැකි බහාලුම් බෙදා ගැනීම සඳහා https://hub.docker.com බලන්න ඩොකර් ප්රජාව), සහ අථත්ය යාන්ත්රණ කළමණාකරනය පිළිබඳ අශෝභන තොරතුරු ගැන කරදර විය යුතු නැත, ඒවා කෙසේ හෝ අවසානයක් සඳහා වූ මාධ්යයකි.
න්යායට අනුව ඩොකර් සඳහා වියුක්ත ස්ථරයක් ලෙස වැග්රන්ට් භාවිතා කළ හැකිය. හේතු දෙකක් නිසා මම මෙයට එරෙහිව නිර්දේශ කරමි:
පළමුව, වැග්රන්ට් ඩොකර්ට හොඳ සාරාංශයක් නොවේ. වැග්රන්ට් නිර්මාණය කර ඇත්තේ අථත්ය යන්ත්ර කළමනාකරණය කිරීම සඳහා ය. ඩෝකර් නිර්මාණය කර ඇත්තේ යෙදුම් ධාවන වේලාව කළමනාකරණය කිරීම සඳහා ය. මෙයින් අදහස් කරන්නේ ඩෝකර්ට සැලසුම අනුව යෙදුමක් සමඟ පොහොසත් ආකාරයකින් අන්තර් ක්රියා කළ හැකි අතර යෙදුම් ධාවන කාලය පිළිබඳ වැඩි විස්තර ඇති බවයි. ඩෝකර් හි ප්රාථමිකයන් වන්නේ ක්රියාවලි, ලොග් ප්රවාහ, පරිසර විචල්යයන් සහ සංරචක අතර ජාල සම්බන්ධතා ය. වැග්රන්ට් හි ප්රාථමිකයන් වන්නේ යන්ත්ර, වාරණ උපාංග සහ ssh යතුරු ය. වැග්රන්ට් හුදෙක් තොගයේ පහළට වාඩි වී සිටින අතර, එය කන්ටේනරයක් සමඟ අන්තර්ක්රියා කළ හැකි එකම ක්රමය වන්නේ එය වෙනත් ආකාරයේ යන්ත්රයක් ලෙස මවා පෑමයි, ඔබට "ඇරඹීමට" සහ "ලොග් වීමට" හැකි ය. ඉතින්, නිසැකවම, ඔබට ඩෝකර් ප්ලගිනයක් සමඟ "විචලනය" ටයිප් කළ හැකි අතර ලස්සන දෙයක් සිදුවනු ඇත. ඩොකර්ට කළ හැකි දේවල සම්පූර්ණ පළල සඳහා එය ආදේශකයක් ද? ස්වදේශික ඩොකර් දින කිහිපයක් උත්සාහ කර ඔබම බලන්න :)
දෙවනුව, අගුළු දැමීමේ තර්කය. "ඔබ වැග්රන්ට් සාරාංශයක් ලෙස භාවිතා කරන්නේ නම්, ඔබ ඩෝකර් වෙත අගුළු දමනු නොලැබේ!". යන්ත්ර කළමනාකරණය කිරීම සඳහා නිර්මාණය කර ඇති වැග්රන්ට්ගේ දෘෂ්ටි කෝණයෙන් මෙය මනාව අර්ථවත් කරයි: බහාලුම් යනු වෙනත් ආකාරයේ යන්ත්රයක් නොවේද? ඇමේසන් ඊසී 2 සහ වීඑම්වෙයාර් මෙන්ම, අපගේ සැපයුම් මෙවලම් කිසියම් විශේෂිත වෙළෙන්දෙකු සමඟ ගැටගැසීමට අප වගබලා ගත යුතුය! මෙය අගුළු දැමීමක් නිර්මාණය කරනු ඇත - ඒ සියල්ල වැග්රන්ට් සමඟ වියුක්ත කිරීමට වඩා හොඳය. මෙය ඩොකර්ගේ කරුණ මුළුමනින්ම මග හැරේ. ඩෝකර් යන්ත්ර සපයන්නේ නැත; එය ඕනෑම තැනක අතහැර දැමිය හැකි සැහැල්ලු අතේ ගෙන යා හැකි ධාවන වේලාවක ඔබේ යෙදුම ආවරණය කරයි.
ඔබගේ යෙදුම සඳහා ඔබ තෝරා ගන්නා ධාවන කාලය ඔබේ යන්ත්ර සපයන ආකාරය සමඟ කිසිදු සම්බන්ධයක් නැත! නිදසුනක් ලෙස, වෙනත් අයෙකු විසින් සපයා ඇති යන්ත්ර වෙත යෙදුම් යෙදවීම බොහෝ විට සිදු වේ (නිදසුනක් ලෙස ඔබේ පද්ධති පරිපාලක විසින් යොදවා ඇති EC2 උදාහරණයක්, සමහර විට වැග්රන්ට් භාවිතා කරයි), හෝ වැග්රන්ට් හට කිසිසේත් සැපයිය නොහැකි ලෝහ යන්ත යන්තම්. අනෙක් අතට, ඔබේ යෙදුම සංවර්ධනය කිරීමට කිසිදු සම්බන්ධයක් නැති යන්ත්ර සැපයීම සඳහා ඔබට වැග්රන්ට් භාවිතා කළ හැකිය - නිදසුනක් ලෙස භාවිතා කිරීමට සූදානම් වින්ඩෝස් IIS පෙට්ටියක් හෝ වෙනත් දෙයක්. හෝ ඩෝකර් භාවිතා නොකරන ව්යාපෘති සඳහා යන්ත්ර සැපයීම සඳහා ඔබට වැග්රන්ට් භාවිතා කළ හැකිය - සමහර විට ඔවුන් යැපුම් කළමනාකරණය සහ වැලිපිල්ල සඳහා රුබිජම් සහ ආර්වීඑම් සංයෝජනයක් භාවිතා කරයි.
සාරාංශයක් ලෙස: වැග්රන්ට් යනු යන්ත්ර කළමනාකරණය සඳහා වන අතර ඩෝකර් යනු යෙදුම් පරිසරයන් තැනීම සහ ක්රියාත්මක කිරීම සඳහා ය.
මම ඩෝකර් සමඟ කිසිදු අත්දැකීමක් නොමැති බව පිළිගැනීමෙන් මගේ පිළිතුරට පෙරවදනක් කරමි. එය විශාල ක්ෂේත්රයක් ලබා ගන්නා සැබවින්ම පිළිවෙලට විසඳුමක් ලෙස පෙනෙන දේ පිළිබඳ දැඩි නිරීක්ෂකයෙකු ලෙස හැර.
මට වැග්රන්ට් සමඟ හොඳ පළපුරුද්දක් ඇති අතර එය බෙහෙවින් නිර්දේශ කළ හැකිය. එය LXC මත පදනම් වූ VM මත පදනම්ව VM මත පදනම් වූවකි. කෙසේ වෙතත්, මම හොඳ ලැප්ටොප් පරිගණකයක් (8 GB RAM, i5 / i7 CPU) සංවර්ධන මෙවලම් සමඟ Vagrant / VirtualBox භාවිතා කරමින් VM ධාවනය කිරීමට කිසිදු ගැටළුවක් නොමැති බව සොයාගෙන ඇත.
වැග්රන්ට් සමඟ ඇති විශිෂ්ටතම දෙය නම් වින්යාසය ස්වයංක්රීය කිරීම සඳහා රූකඩ / චෙෆ් / ෂෙල් ස්ක්රිප්ට් සමඟ ඒකාබද්ධ කිරීමයි . ඔබේ නිෂ්පාදන පරිසරය වින්යාස කිරීම සඳහා ඔබ මෙම විකල්පයන්ගෙන් එකක් භාවිතා කරන්නේ නම්, ඔබට ලබා ගැනීමට යන තරමට සමාන සංවර්ධන පරිසරයක් නිර්මාණය කළ හැකිය, මෙය ඔබට අවශ්ය දේම වේ.
වැග්රන්ට් සමඟ ඇති අනෙක් විශිෂ්ට දෙය නම්, ඔබේ යෙදුම් කේතය සමඟ ඔබේ වැග්රන්ට්ෆයිල් සංස්කරණය කළ හැකිය. මෙයින් අදහස් කරන්නේ ඔබගේ කණ්ඩායමේ අනෙක් සියල්ලන්ට මෙම ගොනුව බෙදා ගත හැකි අතර සෑම දෙනාම එකම පරිසර වින්යාසය සමඟ කටයුතු කරන බවට ඔබට සහතික විය හැකි බවයි.
සිත්ගන්නා කරුණ නම්, වැග්රන්ට් සහ ඩෝකර් ඇත්තෙන්ම ප්රශංසනීය විය හැකිය. විවිධ අථත්යකරණ සැපයුම්කරුවන්ට සහය දැක්වීම සඳහා වැග්රන්ට් දිගු කළ හැකි අතර, ඩෝකර් යනු නුදුරු අනාගතයේ දී සහාය ලබා ගන්නා එවැනි සැපයුම්කරුවෙකු විය හැකිය. මාතෘකාව පිළිබඳ මෑත සාකච්ඡාව සඳහා https://github.com/dotcloud/docker/issues/404 බලන්න .
ඒවා බොහෝ අනුපූරක වේ.
මම මාස කිහිපයක් තිස්සේ මගේ සියලු ව්යාපෘති සඳහා වර්චුවල් බොක්ස්, වැග්රන්ට් සහ ඩෝකර් සංයෝජනයක් භාවිතා කර ඇති අතර පහත සඳහන් ප්රතිලාභ දැඩි ලෙස දැනී සිටිමි.
වැග්රන්ට්හිදී ඔබට ඕනෑම සූපවේදී ඒකල ප්රතිපාදන සම්පූර්ණයෙන්ම ඉවත් කළ හැකි අතර ඔබට කළ යුතු වන්නේ ගොනුව ස්ථාපනය කිරීම සඳහා කුඩා ෂෙල් ස්ක්රිප්ට් එකක් ධාවනය කරන යන්ත්රයක් සකස් කිරීමයි. මෙයින් අදහස් කරන්නේ සෑම ව්යාපෘතියක් සඳහාම මගේ වැග්රන්ට්ෆයිල්ස් බොහෝ දුරට සමාන හා ඉතා සරල බවයි.
මෙන්න සාමාන්ය වැග්රන්ට්ෆයිල් එකක්
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "mark2"
config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
[3000, 5000, 2345, 15672, 5672, 15674, 27017, 28017, 9200, 9300, 11211, 55674, 61614, 55672, 5671, 61613].each do |p|
config.vm.network :forwarded_port, guest: p, host: p
end
config.vm.network :private_network, ip: "192.168.56.20"
config.vm.synced_folder ".", "/vagrant", :type => "nfs"
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
end
# Bootstrap to Docker
config.vm.provision :shell, path: "script/vagrant/bootstrap", :privileged => true
# Build docker containers
config.vm.provision :shell, path: "script/vagrant/docker_build", :privileged => true
# Start containers
# config.vm.provision :shell, path: "script/vagrant/docker_start", :privileged => true
end
ඩොකර් ස්ථාපනය කරන බූට්ස්ට්රැප් ගොනුව මේ වගේ ය
#!/usr/bin/env bash
echo 'vagrant ALL= (ALL:ALL) NOPASSWD: ALL' >> /etc/sudoers
apt-get update -y
apt-get install htop -y
apt-get install linux-image-extra-`uname -r` -y
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list
apt-get update -y
apt-get install lxc-docker -y
apt-get install curl -y
දැන් මට අවශ්ය සියලුම සේවාවන් ලබා ගැනීම සඳහා මට ඩොකර්_ස්ටාර්ට් ස්ක්රිප්ට් එකක් තිබේ
#!/bin/bash
cd /vagrant
echo Starting required service containers
export HOST_NAME=192.168.56.20
# Start MongoDB
docker run --name=mongodb --detach=true --publish=27017:27017 --publish=28017:28017 dockerfile/mongodb
read -t5 -n1 -r -p "Waiting for mongodb to start..." key
# Start rabbitmq
docker run --name=rabbitmq --detach=true --publish=5671:5671 --publish=5672:5672 --publish=55672:55672 --publish=15672:15672 --publish=15674:15674 --publish=61613:61613 --env RABBITMQ_USER=guest --env RABBITMQ_PASS=guest rabbitmq
read -t5 -n1 -r -p "Waiting for rabbitmq to start..." key
# Start cache
docker run --name=memcached --detach=true --publish=11211:11211 ehazlett/memcached
read -t5 -n1 -r -p "Waiting for cache to start..." key
# Start elasticsearch
docker run --name=elasticsearch --detach=true --publish=9200:9200 --publish=9300:9300 dockerfile/elasticsearch
read -t5 -n1 -r -p "Waiting for elasticsearch to start..." key
echo "All services started"
මෙම උදාහරණයේ දී මම මොන්ගෝ ඩී බී, ඉලාස්ටිසර්ච්, රැබිට් එම්කියු සහ මෙම්චේච් ධාවනය කරමි
ඩොකර් නොවන සූපවේදී ඒකල වින්යාසය සැලකිය යුතු ලෙස සංකීර්ණ වනු ඇත.
ඔබ නිෂ්පාදනයට ගමන් කරන විට අවසාන විශාල ප්ලස් එකක් ලැබෙනු ඇත, සංවර්ධන පරිසරය ධාරකයන්ගේ යටිතල ව්යුහයකට පරිවර්තනය කිරීම, ඒ සියල්ලම එක හා සමාන වන අතර ඒවාට ඩොකර් ධාවනය කිරීමට ප්රමාණවත් වින්යාසයක් ඇති බැවින් ඇත්ත වශයෙන්ම ඉතා සුළු කාර්යයකි.
ඔබ කැමති නම් මගේම වෙබ් අඩවියේ සංවර්ධන පරිසරය පිළිබඳ වඩාත් සවිස්තරාත්මක ලිපියක් මා සතුව ඇත
Vagrant-lxc යනු වැග්රන්ට් සඳහා වන ප්ලගිනයකි, එමඟින් ඔබ වැග්රන්ට් සැපයීම සඳහා LXC භාවිතා කරමු. සුපුරුදු වැග්රන්ට් වීඑම් (වර්චුවල් බොක්ස්) සතුව ඇති සියලුම අංග එහි නොමැති නමුත් එය ඩොකර් බහාලුම්වලට වඩා නම්යශීලී වීමට ඉඩ දිය යුතුය. සබැඳියේ එහි හැකියාවන් පෙන්වන වීඩියෝවක් නැරඹීම වටී.
වැග්රන්ට් සමඟ දැන් ඔබට ඩොකර් සැපයුම්කරුවෙකු ලෙස සිටිය හැකිය. http://docs.vagrantup.com/v2/docker/ . වර්චුවල් බොක්ස් හෝ වීඑම්වෙයාර් වෙනුවට ඩෝකර් සැපයුම්කරු භාවිතා කළ හැකිය.
වැග්රන්ට් සමඟ ප්රතිපාදන සැපයීම සඳහා ඔබට ඩෝකර් භාවිතා කළ හැකි බව කරුණාවෙන් සලකන්න. මෙය ඩොකර් සැපයුම්කරුවෙකු ලෙස භාවිතා කිරීමට වඩා බෙහෙවින් වෙනස් ය. http://docs.vagrantup.com/v2/provisioning/docker.html
මෙයින් අදහස් කරන්නේ ඔබට සූපවේදී හෝ රූකඩ වෙනුවට ඩෝකර් ආදේශ කළ හැකි බවයි. ඔබට ඩොකර් වැනි සැපයුම්කරු ලෙස (වීඑම්) චෙෆ් සමඟ සැපයුම්කරු ලෙස භාවිතා කළ හැකිය. නැතහොත් ඔබට සැපයුම්කරු ලෙස වර්චුවල් බොක්ස් සහ සැපයුම්කරු ලෙස ඩෝකර් භාවිතා කළ හැකිය.
දෙකම භාවිතා කිරීම යෙදුම් බෙදා හැරීමේ පරීක්ෂණයේ වැදගත් කොටසකි. මම ඩෝකර් සමඟ සම්බන්ධ වීමට පටන් ගෙන ඇති අතර එහි මෘදුකාංග තැනීමේදී හා බෙදා හැරීමේදී දරුණු සංකීර්ණත්වයක් ඇති යෙදුම් කණ්ඩායමක් ගැන දැඩි ලෙස සිතමි. සම්භාව්ය ෆීනික්ස් ව්යාපෘතියක් / අඛණ්ඩව බෙදා හැරීමේ තත්වයක් ගැන සිතන්න.
සිතීම මේ වගේ දෙයක් වෙනවා:
අඛණ්ඩ බෙදාහැරීමේ දී ෆාර්ලි / නිහතමානී චින්තනය සමඟ ඒකාබද්ධව වැග්රන්ට් සංවර්ධනය සඳහා වන බවට මිචෙල් කළ ප්රකාශයේ තාර්කික දිගුව මෙය බව පෙනේ. මට, සංවර්ධකයෙකු ලෙස, ඒකාබද්ධතා පරීක්ෂණ සහ යෙදුම් භාරදීම පිළිබඳ ප්රතිපෝෂණ වළල්ල හැකිලීමට හැකි නම්, උසස් තත්ත්වයේ සහ වඩා හොඳ සේවා පරිසරයන් අනුගමනය කරනු ඇත.
සංවර්ධකයෙකු ලෙස මම නිරන්තරයෙන් හා නිරන්තරයෙන් වීඑම් වෙත බහාලුම් ලබා දීම සහ යෙදුම වඩාත් පරිපූර්ණ ලෙස පරීක්ෂා කිරීම යන්නෙන් අදහස් වන්නේ නිෂ්පාදන නිකුත් කිරීම් තවදුරටත් සරල කරනු ඇති බවයි.
යෙදුම් යෙදවීම සඳහා ඩෝකර්ට ඇති විය හැකි භයානක ප්රතිවිපාක කිහිපයක් උකහා ගැනීමේ ක්රමයක් ලෙස වැග්රන්ට් පරිණාමය වෙමින් පවතින බව මම දකිමි.
ජයග්රහණය සඳහා අනිවාර්යයෙන්ම ඩෝකර්!
ඔබ දන්නා පරිදි වැග්රන්ට් යනු අථත්ය යන්ත්ර කළමනාකරණය සඳහා වන අතර ඩෝකර් මෘදුකාංග බහාලුම් කළමනාකරණය සඳහා වේ. ඔබ වෙනස නොදන්නේ නම්, මෙන්න: මෘදුකාංග බහාලුමකට එකම යන්ත්රය සහ කර්නලය වෙනත් මෘදුකාංග බහාලුම් සමඟ බෙදා ගත හැකිය. බහුවිධ මෙහෙයුම් පද්ධතිවල (කර්නල්) සම්පත් නාස්ති නොකරන නිසා බහාලුම් භාවිතා කිරීමෙන් ඔබට මුදල් ඉතිරි වේ, හොඳ හුදකලාවක් තබා ගනිමින් ඔබට එක් සේවාදායකයකට තවත් මෘදුකාංග ඇසුරුම් කළ හැකිය.
ඇත්ත වශයෙන්ම තමන්ගේම අන්තරායන් හා අභියෝග සමඟ කටයුතු කිරීම සඳහා නව විනයකි.
ඔබගේ අවශ්යතා තනි යන්ත්ර සම්පත් සීමාව ඉක්මවා ගියහොත් ඩෝකර් රංචුව වෙත යන්න.
වොග්රන්ට් (සහ රූකඩ) සමඟ ඩොකර් භාවිතා කිරීම පිළිබඳව සත්ය ඔරකල් ජාවා සඟරාවේ ඇත්ත වශයෙන්ම තොරතුරු සහිත ලිපියක් ඇත:
නිගමනය
ඩෝකර්ගේ සැහැල්ලු බහාලුම් සම්භාව්ය වීඑම් සමඟ සසඳන විට වේගවත් වන අතර එය සංවර්ධකයින් අතර ජනප්රිය වී ඇති අතර සීඩී සහ ඩිවෝප්ස් මුල පිරීම්වල කොටසක් වේ. ඔබේ අරමුණ හුදකලා නම්, ඩෝකර් විශිෂ්ට තේරීමකි. වැග්රන්ට් යනු වීඑම් කළමණාකරුවෙකු වන අතර එය එක් එක් වීඑම් වල වින්යාස වින්යාස කිරීමට මෙන්ම ප්රතිපාදන සැපයීමටද ඉඩ සලසයි. කෙසේ වෙතත්, එය සාපේක්ෂව විශාල පොදු කාර්යයක් සහිත VirtualBox (හෝ වෙනත් VM කළමණාකරුවෙකු) මත යැපෙන VM ය. ඔබට විශාල දෘඩ තැටියක් අක්රියව තිබිය යුතුය, එයට විශාල RAM ප්රමාණයක් අවශ්ය වන අතර කාර්ය සාධනය උපපෝෂිත විය හැකිය. ඩෝකර් LXC හරහා කර්නල් cgroups සහ නාම අවකාශ හුදකලාව භාවිතා කරයි. මෙයින් අදහස් කරන්නේ ඔබ ධාරකය හා එකම ile පද්ධතිය භාවිතා කරන එකම කර්නලය භාවිතා කරන බවයි. වැග්රන්ට් යනු වියුක්ත කිරීම අනුව ඩොකර්ට වඩා ඉහළ මට්ටමක පවතින බැවින් ඒවා සැබවින්ම සැසඳිය නොහැක. ඉලක්කගත පරිසරයන් සැපයීම සඳහා රූකඩ වැනි වින්යාස කළමනාකරණ මෙවලම් බහුලව භාවිතා වේ. පවතින රූකඩ පදනම් කරගත් විසඳුම් නැවත භාවිතා කිරීම ඩෝකර් සමඟ පහසුය. ඔබට ඔබේ විසඳුම කපා දැමිය හැකිය, එබැවින් යටිතල පහසුකම් රූකඩ සමඟ සපයා ඇත; මිඩ්ල්වෙයාර්, ව්යාපාරික යෙදුම හෝ දෙකම ඩොකර් සමඟ සපයා ඇත; ඩොකර් වැග්රන්ට් විසින් ඔතා ඇත. මෙම පරාසයේ මෙවලම් සමඟ, ඔබේ තත්වය සඳහා හොඳම දේ ඔබට කළ හැකිය.
ගොඩනැගීමට, භාවිතය හා උග්රකිරීම DevOps දී Docker කන්ටේනර් ආකාරය http://www.javamagazine.mozaicreader.com/JulyAug2015#&pageSet=34&page=0