ඩොකර් යනු කුමක්ද: ඉතිහාසය සහ මූලික සාරාංශ පිළිබඳ කෙටි විනෝද චාරිකාවක්

අගෝස්තු 10 වැනිදා Slurm හිදී ආරම්භ විය ඩොකර් වීඩියෝ පාඨමාලාව, අපි එය සම්පූර්ණයෙන්ම විශ්ලේෂණය කරන - මූලික වියුක්තයන් සිට ජාල පරාමිතීන් දක්වා.

මෙම ලිපියෙන් අපි Docker හි ඉතිහාසය සහ එහි ප්‍රධාන වියුක්තයන් ගැන කතා කරමු: Image, Cli, Dockerfile. දේශනය ආරම්භකයින් සඳහා අදහස් කෙරේ, එබැවින් එය පළපුරුදු පරිශීලකයින්ට උනන්දුවක් දැක්විය නොහැක. රුධිරය, උපග්රන්ථය හෝ ගැඹුරු ගිල්වීමක් සිදු නොවනු ඇත. ඉතා මූලික කරුණු.

ඩොකර් යනු කුමක්ද: ඉතිහාසය සහ මූලික සාරාංශ පිළිබඳ කෙටි විනෝද චාරිකාවක්

Docker යනු කුමක්ද?

අපි විකිපීඩියාවෙන් Docker හි නිර්වචනය බලමු.

Docker යනු බහාලුම් පරිසරයක යෙදුම් යෙදවීම සහ කළමනාකරණය කිරීම ස්වයංක්‍රීය කිරීම සඳහා වන මෘදුකාංගයකි.

මෙම අර්ථ දැක්වීමෙන් කිසිවක් පැහැදිලි නැත. "කන්ටේනරකරණයට සහාය වන පරිසරයන්" යන්නෙන් අදහස් කරන්නේ කුමක්ද යන්න විශේෂයෙන් අපැහැදිලි ය. සොයා ගැනීමට, අපි අතීතයට යමු. මම සාම්ප්‍රදායිකව "මොනොලිතික් යුගය" ලෙස හඳුන්වන යුගයෙන් පටන් ගනිමු.

මොනොලිතික් යුගය

මොනොලිතික් යුගය යනු 2000 ගණන්වල මුල් භාගය වන අතර, සියලු යෙදුම් පරායත්තතා සමූහයක් සමඟ මොනොලිතික් විය. සංවර්ධනයට බොහෝ කාලයක් ගත විය. ඒ අතරම, බොහෝ සේවාදායකයන් නොතිබුණි; අපි සියල්ලෝම ඒවා නමින් දැන සිටි අතර ඒවා නිරීක්ෂණය කළෙමු. එවැනි විහිලු සංසන්දනයක් තිබේ:

සුරතල් සතුන් ගෘහස්ථ සතුන් වේ. මොනොලිතික් යුගයේ දී, අපි අපගේ සේවාදායකයන්ට සුරතල් සතුන් මෙන් සැලකුවෙමු, මනමාල හා ආදරයෙන් රැකබලා ගත්, දූවිලි අංශු පුපුරවා හරිමු. වඩා හොඳ සම්පත් කළමනාකරණය සඳහා, අපි අථත්‍යකරණය භාවිතා කළෙමු: අපි සේවාදායකයක් ගෙන එය අථත්‍ය යන්ත්‍ර කිහිපයකට කපා, එමඟින් පරිසරය හුදකලා වීම සහතික කළෙමු.

හයිපර්වයිසර් මත පදනම් වූ අථත්‍යකරණ පද්ධති

අථත්‍යකරණ පද්ධති ගැන සෑම දෙනාම සමහරවිට අසා ඇත: VMware, VirtualBox, Hyper-V, Qemu KVM, ආදිය. ඒවා යෙදුම් හුදකලා කිරීම සහ සම්පත් කළමනාකරණය සපයයි, නමුත් ඒවාට අවාසි ද ඇත. අථත්‍යකරණය කිරීමට, ඔබට හයිපර්වයිසර් අවශ්‍ය වේ. තවද හයිපර්වයිසර් යනු සම්පත් උඩිස් කොටසකි. අතථ්‍ය යන්ත්‍රය සාමාන්‍යයෙන් සම්පූර්ණ විශාලත්වයකි - මෙහෙයුම් පද්ධතියක්, Nginx, Apache සහ සමහර විට MySQL අඩංගු බර රූපයකි. රූපය විශාල වන අතර අතථ්‍ය යන්ත්‍රය ක්‍රියා කිරීමට අපහසු වේ. එහි ප්රතිඵලයක් වශයෙන්, අථත්ය යන්ත්ර සමඟ වැඩ කිරීම මන්දගාමී විය හැක. මෙම ගැටළුව විසඳීම සඳහා, අථත්යකරණ පද්ධති කර්නල් මට්ටමින් නිර්මාණය කරන ලදී.

කර්නල් මට්ටමේ අථත්‍යකරණ පද්ධති

කර්නල් මට්ටමේ අථත්‍යකරණය OpenVZ, Systemd-nspawn, LXC පද්ධති මගින් සහය දක්වයි. එවැනි අථත්‍යකරණයේ කැපී පෙනෙන උදාහරණයක් වන්නේ LXC (Linux Containers) ය.

LXC යනු ලිනක්ස් මෙහෙයුම් පද්ධතියේ හුදකලා අවස්ථා කිහිපයක් තනි නෝඩයක් මත ධාවනය කිරීම සඳහා මෙහෙයුම් පද්ධති මට්ටමේ අථත්‍යකරණ පද්ධතියකි. LXC අතථ්‍ය යන්ත්‍ර භාවිතා නොකරයි, නමුත් තමන්ගේම ක්‍රියාවලි අවකාශයක් සහ ජාල තොගයක් සහිත අතථ්‍ය පරිසරයක් නිර්මාණය කරයි.

අත්යවශ්යයෙන්ම LXC බහාලුම් නිර්මාණය කරයි. අතථ්‍ය යන්ත්‍ර සහ බහාලුම් අතර වෙනස කුමක්ද?

ඩොකර් යනු කුමක්ද: ඉතිහාසය සහ මූලික සාරාංශ පිළිබඳ කෙටි විනෝද චාරිකාවක්

කන්ටේනරය හුදකලා කිරීමේ ක්‍රියාවලීන් සඳහා සුදුසු නොවේ: අථත්‍යකරණ පද්ධති වල කර්නල් මට්ටමේ ඇති දුර්වලතා දක්නට ලැබෙන අතර එමඟින් බහාලුම් සිට ධාරකයට පැන යාමට ඉඩ සලසයි. එමනිසා, ඔබට යමක් හුදකලා කිරීමට අවශ්ය නම්, එය අථත්ය යන්ත්රයක් භාවිතා කිරීම වඩා හොඳය.

අථත්යකරණය සහ බහාලුම්කරණය අතර වෙනස්කම් රූප සටහනෙහි දැකිය හැකිය.
දෘඪාංග හයිපර්වයිසර්, OS එක උඩ හයිපර්වයිසර් සහ බහාලුම් ඇත.

ඩොකර් යනු කුමක්ද: ඉතිහාසය සහ මූලික සාරාංශ පිළිබඳ කෙටි විනෝද චාරිකාවක්

ඔබට ඇත්තටම යමක් හුදකලා කිරීමට අවශ්‍ය නම් දෘඪාංග හයිපර්වයිසර් සිසිල් ය. මතක පිටු සහ ප්‍රොසෙසර මට්ටමින් හුදකලා විය හැකි බැවිනි.

වැඩසටහනක් ලෙස හයිපර්වයිසර් ඇත, සහ බහාලුම් ඇත, අපි ඒවා ගැන තවදුරටත් කතා කරමු. බහාලුම් පද්ධතිවල හයිපර්වයිසර් නොමැත, නමුත් බහාලුම් නිර්මාණය කර කළමනාකරණය කරන බහාලුම් එන්ජිමක් ඇත. මෙම දෙය වඩා සැහැල්ලු ය, එබැවින් හරය සමඟ වැඩ කිරීම නිසා උඩින් හෝ කිසිවක් නැත.

කර්නල් මට්ටමින් බහාලුම්කරණය සඳහා භාවිතා කරන දේ

වෙනත් ක්‍රියාවලීන්ගෙන් හුදකලා වූ කන්ටේනරයක් නිර්මාණය කිරීමට ඔබට ඉඩ සලසන ප්‍රධාන තාක්ෂණයන් වන්නේ නාම අවකාශයන් සහ පාලන කණ්ඩායම් වේ.

නාම අවකාශයන්: PID, ජාලකරණය, මවුන්ට් සහ පරිශීලක. තවත් ඒවා ඇත, නමුත් තේරුම් ගැනීමේ පහසුව සඳහා අපි මේවා කෙරෙහි අවධානය යොමු කරමු.

PID Namespace ක්‍රියාවලි සීමා කරයි. උදාහරණයක් ලෙස, අපි PID නාම අවකාශයක් සාදා එහි ක්‍රියාවලියක් තැබූ විට, එය PID 1 සමඟ සිදු වේ. සාමාන්‍යයෙන් පද්ධතිවල PID 1 යනු systemd හෝ init වේ. ඒ අනුව, අපි යම් ක්‍රියාවලියක් නව නාම අවකාශයක තැබූ විට එයට PID 1 ද ලැබේ.

Networking Namespace ඔබට ජාලය සීමා කිරීමට/හුදකලා කිරීමට සහ ඔබේම අතුරු මුහුණත් ඇතුළත තැබීමට ඉඩ සලසයි. Mount යනු ගොනු පද්ධති සීමාවකි. පරිශීලක - පරිශීලකයන් සීමා කිරීම.

පාලන කණ්ඩායම්: මතකය, CPU, IOPS, ජාලය - මුළු සැකසුම් 12 ක් පමණ. එසේ නොමැතිනම් ඒවා Cgroups ("C-groups") ලෙසද හැඳින්වේ.

පාලන කණ්ඩායම් බහාලුමක් සඳහා සම්පත් කළමනාකරණය කරයි. පාලන කණ්ඩායම් හරහා අපට කන්ටේනරය යම් සම්පත් ප්‍රමාණයකට වඩා පරිභෝජනය නොකළ යුතු බව පැවසිය හැකිය.

බහාලුම්කරණය සම්පූර්ණයෙන් වැඩ කිරීම සඳහා, අතිරේක තාක්ෂණයන් භාවිතා කරනු ලැබේ: හැකියාවන්, පිටපත්-මත-ලිවීම සහ අනෙකුත්.

හැකියාවන් යනු ක්‍රියාවලියකට කළ හැකි සහ කළ නොහැකි දේ අප පවසන විටය. කර්නල් මට්ටමේදී, මේවා බොහෝ පරාමිති සහිත බිට්මැප් වේ. උදාහරණයක් ලෙස, root පරිශීලකයාට සම්පූර්ණ වරප්රසාද ඇති අතර සෑම දෙයක්ම කළ හැකිය. කාල සේවාදායකයට පද්ධති වේලාව වෙනස් කළ හැක: එයට Time Capsule මත හැකියාවන් ඇත, එය එයයි. වරප්‍රසාද භාවිතා කරමින්, ඔබට ක්‍රියාවලි සඳහා සීමා කිරීම් නම්‍යශීලීව වින්‍යාසගත කළ හැකි අතර එමඟින් ඔබව ආරක්ෂා කර ගත හැකිය.

Copy-on-write පද්ධතිය අපට Docker පින්තූර සමඟ වැඩ කිරීමට සහ ඒවා වඩාත් කාර්යක්ෂමව භාවිතා කිරීමට ඉඩ සලසයි.

Docker හට දැනට Cgroups v2 සමඟ ගැළපෙන ගැටළු ඇත, එබැවින් මෙම ලිපිය Cgroups v1 කෙරෙහි විශේෂයෙන් අවධානය යොමු කරයි.

නමුත් අපි නැවත ඉතිහාසයට යමු.

අථත්යකරණ පද්ධති කර්නල් මට්ටමින් දර්ශනය වූ විට, ඒවා ක්රියාකාරීව භාවිතා කිරීමට පටන් ගත්තේය. හයිපර්වයිසරයේ උඩිස් කොටස අතුරුදහන් විය, නමුත් සමහර ගැටළු පැවතුනි:

  • විශාල පින්තූර: ඔවුන් මෙහෙයුම් පද්ධතියක්, පුස්තකාලයක්, විවිධ මෘදුකාංග සමූහයක් එකම OpenVZ වෙත තල්ලු කරන අතර අවසානයේ රූපය තවමත් තරමක් විශාල වේ;
  • ඇසුරුම්කරණය සහ බෙදා හැරීම සඳහා සාමාන්‍ය ප්‍රමිතියක් නොමැත, එබැවින් පරායත්තතා පිළිබඳ ගැටළුව පවතී. කේත කොටස් දෙකක් එකම පුස්තකාලයක් භාවිතා කරන අවස්ථා තිබේ, නමුත් විවිධ අනුවාද සමඟ. ඔවුන් අතර ගැටුමක් ඇති විය හැකිය.

මේ සියලු ගැටලු විසඳා ගැනීමට ඊළඟ යුගය පැමිණ තිබේ.

බහාලුම් යුගය

බහාලුම් යුගය පැමිණි විට, ඔවුන් සමඟ වැඩ කිරීමේ දර්ශනය වෙනස් විය:

  • එක් ක්රියාවලියක් - එක් බහාලුමක්.
  • ක්‍රියාවලියට අවශ්‍ය සියලු පරායත්ත අපි එහි බහාලුම් වෙත ලබා දෙන්නෙමු. මේ සඳහා monoliths microservices වලට කැපීම අවශ්ය වේ.
  • රූපය කුඩා වන තරමට වඩා හොඳය - හැකි දුර්වලතා අඩුය, එය වේගයෙන් පෙරළේ යනාදිය.
  • අවස්ථා අනිත්‍යයි.

සුරතල් සතුන් සහ ගවයින් ගැන මම කී දේ මතකද? මීට පෙර, අවස්ථා ගෘහාශ්‍රිත සතුන් මෙන් වූ නමුත් දැන් ඔවුන් හරක් මෙන් වී ඇත. මීට පෙර, මොනොලිත් එකක් තිබුණි - එක් යෙදුමක්. දැන් එය ක්ෂුද්ර සේවා 100 ක්, බහාලුම් 100 ක්. සමහර බහාලුම්වල අනුපිටපත් 2-3ක් තිබිය හැක. සෑම බහාලුමක්ම පාලනය කිරීම අපට අඩු වැදගත්කමක් දරයි. අපට වඩා වැදගත් වන්නේ සේවාවම තිබීමයි: මෙම බහාලුම් කට්ටලය කරන්නේ කුමක්ද යන්නයි. මෙය අධීක්ෂණය සඳහා ප්රවේශයන් වෙනස් කරයි.

2014-2015 දී, ඩොකර් සමෘධිමත් විය - අපි දැන් කතා කරන තාක්ෂණය.

ඩොකර් දර්ශනය වෙනස් කර ප්‍රමිතිගත යෙදුම් ඇසුරුම් කළේය. ඩොකර් භාවිතයෙන්, අපට යෙදුමක් ඇසුරුම් කර, එය ගබඩාවකට යවා, එය එතැනින් බාගත කර, එය යෙදවිය හැක.

අපි අපට අවශ්‍ය සියල්ල ඩොකර් කන්ටේනරය තුළට දමමු, එබැවින් පරායත්තතා ගැටළුව විසඳනු ලැබේ. ඩොකර් ප්රතිනිෂ්පාදනය සහතික කරයි. මම හිතන්නේ බොහෝ අය ප්‍රතිනිෂ්පාදනය කළ නොහැකි තත්වයකට මුහුණ දී ඇත: සෑම දෙයක්ම ඔබ වෙනුවෙන් ක්‍රියා කරයි, ඔබ එය නිෂ්පාදනයට තල්ලු කරයි, එහිදී එය ක්‍රියා කිරීම නවත්වයි. Docker සමඟ මෙම ගැටළුව පහව යයි. ඔබේ ඩොකර් කන්ටේනරය ආරම්භ වී එයට අවශ්‍ය දේ කරන්නේ නම්, ඉහළ සම්භාවිතාවකින් එය නිෂ්පාදනයෙන් ආරම්භ වී එහි එයම කරනු ඇත.

උඩිස් වැඩ ගැන අපගමනය

පොදු කාර්ය භාරය සම්බන්ධයෙන් නිතරම ආරවුල් ඇති වේ. සමහර අය විශ්වාස කරන්නේ Linux කර්නලය සහ බහාලුම්කරණය සඳහා අවශ්‍ය සියලුම ක්‍රියාවලීන් භාවිතා කරන බැවින් ඩොකර් අමතර බරක් රැගෙන නොයන බවයි. "Docker එක උඩින් තියෙන්නේ කියලා ඔයා කිව්වොත් Linux kernel එක උඩින්" වගේ.

අනෙක් අතට, ඔබ ගැඹුරට ගියහොත්, ඇත්ත වශයෙන්ම ඩොකර්හි කරුණු කිහිපයක් තිබේ, ඒවා දිගුවක් සමඟ, හිසට ඉහළින් යැයි පැවසිය හැකිය.

පළමුවැන්න PID නාම අවකාශයයි. අපි යම් ක්‍රියාවලියක් නාම අවකාශයක තැබූ විට, එයට PID 1 පවරනු ලැබේ. ඒ සමඟම, මෙම ක්‍රියාවලියට වෙනත් PID එකක් ඇත, එය බහාලුමෙන් පිටත ධාරක නාම අවකාශයේ පිහිටා ඇත. උදාහරණයක් ලෙස, අපි Nginx කන්ටේනරයක දියත් කළෙමු, එය PID 1 (ප්‍රධාන ක්‍රියාවලිය) බවට පත් විය. සහ ධාරකය මත එහි PID 12623 ඇත. තවද එය කොපමණ පොදු කාර්ය සාධනයක් දැයි කීමට අපහසුය.

දෙවන කරුණ නම් Cgroups ය. මතකය මගින් Cgroups ගනිමු, එනම් බහාලුමක මතකය සීමා කිරීමේ හැකියාව. එය සක්රිය කර ඇති විට, කවුන්ටර සහ මතක ගිණුම්කරණය සක්රිය කර ඇත: මෙම බහාලුම් සඳහා පිටු කීයක් වෙන් කර ඇත්ද සහ කොපමණ ප්රමාණයක් තවමත් නොමිලේ තිබේද යන්න කර්නලය තේරුම් ගත යුතුය. මෙය සමහර විට පොදු කාර්ය සාධනයක් විය හැකි නමුත්, එය කාර්ය සාධනයට බලපාන ආකාරය පිළිබඳ නිශ්චිත අධ්‍යයනයක් මා දැක නැත. ඩොකර් හි ක්‍රියාත්මක වන යෙදුම හදිසියේම ක්‍රියාකාරීත්වයේ තියුණු අලාභයක් අත්විඳින බව මමම දුටුවේ නැත.

සහ කාර්ය සාධනය පිළිබඳ තවත් එක් සටහනක්. සමහර කර්නල් පරාමිතීන් ධාරකයේ සිට බහාලුම් වෙත යවනු ලැබේ. විශේෂයෙන්ම, සමහර ජාල පරාමිතීන්. එමනිසා, ඔබට Docker හි ඉහළ කාර්යසාධනයක් ඇති දෙයක් ධාවනය කිරීමට අවශ්‍ය නම්, උදාහරණයක් ලෙස, ජාලය සක්‍රියව භාවිතා කරන දෙයක්, එවිට ඔබට අවම වශයෙන් මෙම පරාමිතීන් සකස් කිරීමට අවශ්‍ය වේ. සමහර nf_contrack, උදාහරණයක් ලෙස.

Docker සංකල්පය ගැන

ඩොකර් සංරචක කිහිපයකින් සමන්විත වේ:

  1. Docker Daemon එකම බහාලුම් එන්ජිම; බහාලුම් දියත් කරයි.
  2. Docker CII යනු Docker කළමනාකරණ උපයෝගිතාවකි.
  3. Dockerfile - රූපයක් ගොඩනගන්නේ කෙසේද යන්න පිළිබඳ උපදෙස්.
  4. රූපය - කන්ටේනරය පෙරළන ලද රූපය.
  5. කන්ටේනර්.
  6. Docker registry යනු රූප ගබඩාවකි.

ක්රමානුකූලව එය මේ වගේ දෙයක් පෙනේ:

ඩොකර් යනු කුමක්ද: ඉතිහාසය සහ මූලික සාරාංශ පිළිබඳ කෙටි විනෝද චාරිකාවක්

Docker daemon Docker_host මත ධාවනය වන අතර බහාලුම් දියත් කරයි. විධාන යවන සේවාලාභියෙකු සිටී: රූපය ගොඩනඟන්න, රූපය බාගත කරන්න, බහාලුම දියත් කරන්න. ඩොකර් ඩීමන් රෙජිස්ට්‍රියට ගොස් ඒවා ක්‍රියාත්මක කරයි. Docker සේවාලාභියාට දේශීයව (Unix සොකට් එකකට) සහ TCP හරහා දුරස්ථ ධාරකයකින් ප්‍රවේශ විය හැක.

අපි එක් එක් සංරචක හරහා යමු.

ඩොකර් ඩීමන් - මෙය සේවාදායක කොටසයි, එය ධාරක යන්ත්‍රය මත ක්‍රියා කරයි: පින්තූර බාගත කර ඒවායින් බහාලුම් දියත් කරයි, බහාලුම් අතර ජාලයක් නිර්මාණය කරයි, ලොග් එකතු කරයි. අපි "රූපයක් සාදන්න" කිව්වම භූතයත් ඒක කරනවා.

ඩොකර් CLI - ඩොකර් සේවාදායක කොටස, ඩීමන් සමඟ වැඩ කිරීම සඳහා කොන්සෝල උපයෝගීතාව. මම නැවත නැවතත්, එය දේශීයව පමණක් නොව, ජාලය හරහාද වැඩ කළ හැකිය.

මූලික විධාන:

docker ps - දැනට Docker සත්කාරකයේ ධාවනය වන බහාලුම් පෙන්වන්න.
ඩොකර් පින්තූර - දේශීයව බාගත කළ පින්තූර පෙන්වන්න.
ඩොකර් සෙවුම <> - රෙජිස්ට්රි තුළ රූපයක් සොයන්න.
ඩොකර් පුල් <> - රෙජිස්ට්‍රි එකෙන් පින්තූරයක් යන්ත්‍රයට බාගන්න.
docker build < > - රූපය එකතු කරන්න.
docker run <> - බහාලුම දියත් කරන්න.
docker rm <> - කන්ටේනරය ඉවත් කරන්න.
docker logs <> - බහාලුම් ලොග
docker start/stop/restart <> - බහාලුම සමඟ වැඩ කිරීම

ඔබ මෙම විධානයන් ප්‍රගුණ කර ඒවා භාවිතා කිරීමට විශ්වාස නම්, ඔබ පරිශීලක මට්ටමින් ඩොකර් හි 70% ප්‍රවීණයෙකු ලෙස සලකන්න.

ඩොකර්ෆයිල් - රූපයක් නිර්මාණය කිරීම සඳහා උපදෙස්. සෑම උපදෙස් විධානයක්ම පාහේ නව ස්ථරයකි. අපි උදාහරණයක් බලමු.

ඩොකර් යනු කුමක්ද: ඉතිහාසය සහ මූලික සාරාංශ පිළිබඳ කෙටි විනෝද චාරිකාවක්

Dockerfile පෙනුම මෙයයි: වම් පැත්තේ විධාන, දකුණේ තර්ක. මෙහි ඇති සෑම විධානයක්ම (සහ සාමාන්‍යයෙන් Dockerfile හි ලියා ඇත) රූපයේ නව ස්ථරයක් සාදයි.

වම් පැත්ත බැලුවත් දළ වශයෙන් මොකක්ද වෙන්නේ කියලා තේරුම් ගන්න පුළුවන්. අපි කියනවා: "අප වෙනුවෙන් ෆෝල්ඩරයක් සාදන්න" - මෙය එක් ස්ථරයකි. "ෆෝල්ඩරය වැඩ කරන්න" තවත් ස්ථරයක්, සහ එසේ ය. ස්ථර කේක් ජීවිතය පහසු කරයි. මම වෙනත් Dockerfile එකක් සාදා අවසාන පේළියේ යමක් වෙනස් කරන්නේ නම් - මම “python” “main.py” හැර වෙනත් දෙයක් ධාවනය කරන්නේ නම් හෝ වෙනත් ගොනුවකින් පරායත්තතා ස්ථාපනය කරන්නේ නම් - එවිට පෙර ස්ථර හැඹිලියක් ලෙස නැවත භාවිතා වේ.

රූප - මෙය බහාලුම් ඇසුරුම්; බහාලුම් රූපයෙන් දියත් කෙරේ. අපි පැකේජ කළමණාකරුවෙකුගේ දෘෂ්ටිකෝණයෙන් ඩොකර් දෙස බැලුවහොත් (අපි deb හෝ rpm පැකේජ සමඟ වැඩ කරනවාක් මෙන්), එවිට රූපය අත්‍යවශ්‍යයෙන්ම rpm පැකේජයකි. yum ස්ථාපනය හරහා අපට යෙදුම ස්ථාපනය කිරීමට, එය මකා දැමීමට, ගබඩාවෙන් එය සොයා ගැනීමට සහ බාගත කිරීමට හැකිය. එය මෙහි සමාන වේ: බහාලුම් රූපයෙන් දියත් කරනු ලැබේ, ඒවා ඩොකර් රෙජිස්ට්‍රියේ ගබඩා කර ඇත (yum හා සමාන, ගබඩාවක), සහ සෑම රූපයකටම SHA-256 හැෂ්, නමක් සහ ටැගයක් ඇත.

Dockerfile හි උපදෙස් අනුව රූපය ගොඩනගා ඇත. Dockerfile වෙතින් ලැබෙන සෑම උපදෙස්ම නව ස්ථරයක් නිර්මාණය කරයි. ස්ථර නැවත භාවිතා කළ හැකිය.

ඩොකර් රෙජිස්ට්රි යනු ඩොකර් රූප ගබඩාවකි. OS එකට සමානව, Docker සතුව පොදු සම්මත රෙජිස්ට්‍රියක් ඇත - dockerhub. නමුත් ඔබට ඔබේම ගබඩාවක්, ඔබේම ඩොකර් රෙජිස්ට්‍රියක් සාදාගත හැක.

කන්ටේනර් - රූපයෙන් දියත් කරන දේ. අපි Dockerfile හි උපදෙස් අනුව රූපයක් ගොඩනඟා, පසුව අපි එය මෙම රූපයෙන් දියත් කරමු. මෙම කන්ටේනරය වෙනත් බහාලුම් වලින් හුදකලා කර ඇති අතර යෙදුම ක්‍රියාත්මක වීමට අවශ්‍ය සියල්ල අඩංගු විය යුතුය. මෙම අවස්ථාවේදී, එක් බහාලුමක් - එක් ක්රියාවලියක්. ඔබට ක්‍රියාවලි දෙකක් කළ යුතු බව සිදු වේ, නමුත් මෙය ඩොකර් මතවාදයට තරමක් පටහැනි ය.

"එක් බහාලුමක්, එක් ක්‍රියාවලියක්" අවශ්‍යතාවය PID නාම අවකාශයට සම්බන්ධ වේ. PID 1 සමඟ ක්‍රියාවලියක් Namespace හි ආරම්භ වන විට, එය හදිසියේ මිය ගියහොත්, එවිට සම්පූර්ණ කන්ටේනරය ද මිය යයි. ක්‍රියාවලි දෙකක් එහි ක්‍රියාත්මක වන්නේ නම්: එකක් ජීවතුන් අතර අනෙකා මිය ගොස් ඇත, එවිට කන්ටේනරය දිගටම ජීවත් වනු ඇත. නමුත් මෙය හොඳම භාවිතයන් පිළිබඳ ප්රශ්නයකි, අපි වෙනත් ද්රව්යවල ඔවුන් ගැන කතා කරමු.

පාඨමාලාවේ විශේෂාංග සහ සම්පූර්ණ වැඩසටහන වඩාත් විස්තරාත්මකව අධ්‍යයනය කිරීමට කරුණාකර සබැඳිය අනුගමනය කරන්න: "ඩොකර් වීඩියෝ පාඨමාලාව".

කර්තෘ: Marcel Ibraev, සහතික ලත් Kubernetes පරිපාලක, සවුත්බ්‍රිජ් හි පුහුණු ඉංජිනේරු, කථිකයා සහ Slurm පාඨමාලා සංවර්ධකයා.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න