Ubuntu මත Docker ස්ථාපනය කිරීම: සම්පූර්ණ ආරම්භක-හිතකාමී මාර්ගෝපදේශය (නිල ක්‍රමය)

.

目次

1. හැඳින්වීම

Ubuntu මත සංවර්ධන පරිසරයක් සකස් කරන විට “දැන් Docker එකක් ස්ථාපනය කරමු” යන අදහසක් ඇති වීම ඉතා සාමාන්‍ය වී ඇත. වෙබ් යෙදුම්, බැච් ප්‍රොසෙසින්, පරීක්ෂණ දත්ත ගබඩා, පරීක්ෂණ මැදපෙළ… මේවා සෑම වරක්ම අතින් ස්ථාපනය කරන්නේ නම්, පරිසර සැකසීම සඳහා විශාල කාලය සහ උත්සාහයක් වැය වේ.

මෙම අවස්ථාවේ Docker නමින් හැඳින්වෙන කන්ටේනර් වර්චුවලිසේශන් තාක්ෂණය ඉතා ප්‍රයෝජනවත් වේ. Docker සමඟ, ඔබට යෙදුම පමණක් නොව, අවශ්‍ය සියලු පුස්තකාල සහ සැකසුම් “ඉමැජ්” එකක් ලෙස එකට කළමනාකරණය කළ හැකිය. Ubuntu මත Docker ස්ථාපනය කරගත් පසු, පහසුවෙන් කරගත හැකි දේවල් වන්නේ:

  • මිනිත්තු කිහිපයකින් නව සංවර්ධන පරිසරයක් ආරම්භ කිරීම
  • සියලු කණ්ඩායම් සාමාජිකයන්ට එකම පරිසරය තුළ හැසිරීම නැවත නිර්මාණය කළ හැකි වීම
  • නිෂ්පාදන‑සමාන සැකසුමක් දේශීයව පහසුවෙන් නැවත සාදීම

මෙම ප්‍රතිලාභයන් අඩුම උත්සාහයෙන්ම ලබාගත හැකිය.

අනෙක් පැත්තට, Docker පළමු වරට භාවිතා කරන අයට බොහෝ පොදු ගැටළු පවතී:

  • “ඇත්තටම කුමන ස්ථාපන ක්‍රියාවලිය නිවැරදියි?” යන ප්‍රශ්නය නොදැනීම
  • Ubuntu හි පෙරනිමි රෙපොසිටරිය සහ Docker හි නිල රෙපොසිටරිය අතර වෙනස නොදැනීම
  • sudo භාවිතා කළ යුතු අවස්ථාව ගැන ගැඹුරු නොවීම නිසා අවසර දෝෂ වලට මුහුණ දීම

“ubuntu install docker” යන වචන සෙවීමේදී, දිගු කමාන්ඩ් අනුක්‍රම ලැයිස්තුගත කරන ලද ලිපි බොහොමයක් ලැබෙනවා, නමුත් ඒවා ඇයි ඒ පියවරවලට අවශ්‍යද හෝ පූර්ණ ස්ථාපනයක් යනු කුමක්ද යන කරුණු පැහැදිලි කරන්නේ නැත.

1-1. මෙම ලිපියේ ඉලක්කය

මෙම ලිපිය Ubuntu මත Docker ස්ථාපනය කිරීමට අවශ්‍ය පාඨකයන් සඳහා වන අතර, පහත සඳහන් ප්‍රධාන කරුණු ආවරණය කරයි:

  • Ubuntu මත Docker ස්ථාපනය කිරීමේ වර්තමාන පොදු ක්‍රියාවලිය
  • නිල රෙපොසිටරිය භාවිතා කරමින් වඩාත් කළමනාකරණය කළ හැකි ස්ථාපන ක්‍රමය
  • docker කමාන්ඩ් එක sudo නොමැතිව ක්‍රියාත්මක කිරීමේ ක්‍රමය
  • ස්ථාපනයෙන් පසු සත්‍යාපනය සහ අත්‍යවශ්‍ය මූලික කමාන්ඩ්
  • Docker Compose වැනි සාමාන්‍යයෙන් භාවිතා වන මෙවලම් පිළිබඳ හැඳින්වීම

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

1-2. ඉලක්ක පාඨකයන් සහ පෙරඅවශ්‍යතා

මෙම ලිපිය පහත සඳහන් පාඨකයන් සඳහා වේ:

  • මූලික Ubuntu මෙහෙයුම් (ටර්මිනලයක් විවෘත කිරීම, apt කමාන්ඩ් භාවිතය ආදිය) දැන සිටින අය
  • Docker පළමු වරට භාවිතා කිරීමට උත්සාහ කරන සංවර්ධකයන් හෝ ඉංජිනේරුවන්
  • පවතින පරීක්ෂණ පරිසරයන් කන්ටේනර් වෙත මාරු කිරීමට සැලසුම් කරන අය

උසස් Linux පරිපාලන දැනුම අවශ්‍ය නොවේ. ඔබට ටර්මිනලයේ කමාන්ඩ් ටයිප් කිරීමේ හැකියාව තිබේ නම්, මෙම මාර්ගෝපදේශය ප්‍රමාණවත් වේ.

1-3. ලිපියේ ව්‍යුහය සහ කියවීමේ ආකාරය

මෙම ලිපිය පහත පියවර අනුව ඉදිරියට යයි:

  • පෙරඅවශ්‍යතා පරීක්ෂා කිරීම
  • ස්ථාපන ක්‍රම (නිල රෙපොසිටරිය / ස්ක්‍රිප්ට්‑අධාරිත)
  • අවසර සැකසීම් සහ සත්‍යාපනය
  • Docker Compose ස්ථාපනය
  • ගැටළු විසඳුම් සහ ඊළඟ පියවර

ඔබට මුල සිට අවසානය දක්වා කියවිය හැකිය, නැතහොත් Docker දැනට ස්ථාපනය කර තිබේ නම් “අවසර” හෝ “Compose” කොටස් පමණක් පරීක්ෂා කර ගත හැකිය.

2. පෙරඅවශ්‍යතා සහ සූදානම්

Docker ස්ථාපනයම සරලයි, නමුත් ඔබේ Ubuntu අනුවාදය හෝ පවතින පරිසරය අනුව, පෙර පරීක්ෂා කළ යුතු කරුණු කිහිපයක් ඇත. මෙහිදී සාර්ථක ස්ථාපනයක් සඳහා අවශ්‍ය පෙරඅවශ්‍යතා සහ සූදානම් සාරාංශ කර ඇත.

2-1. සහය දක්වන Ubuntu අනුවාදයන්

Docker බොහෝ Ubuntu අනුවාදයන්හි ක්‍රියා කරයි, නමුත් පහත සඳහන් LTS (Long Term Support) නිකුත් කිරීම් වැඩිම වශයෙන් භාවිතා වේ:

  • Ubuntu 22.04 LTS (නිර්දේශිත)
  • Ubuntu 20.04 LTS
  • Ubuntu 24.04 LTS (නවතම)

LTS නිකුත් කිරීම් දිගුකාලීන ස්ථායීත්වය ලබා දේ, එබැවින් Docker‑අධාරිත සංවර්ධන පරිසරයන් පවත්වා ගැනීමට ඉතා සුදුසු වේ.

LTS නොවන නිකුත් කිරීම් (උදා: 23.10) ද භාවිතා කළ හැකි නමුත්, වෘත්තීය පරිසරයන්හි සාමාන්‍යයෙන් LTS අනුවාදයන්ට ප්‍රමුඛතාවය දෙනු ලැබේ.

2-2. පෙර ස්ථාපිත Docker පැකේජ්​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

Ubuntu හි පෙරනිමි ගබඩාව docker.io නමැති පැකේජයක් ඇතුළත් කරයි. එය Docker Inc. විසින් සැපයූ නිල Docker පැකේජය නොවේ, සහ යාවත්කාලීන කිරීම් පසුබැසීමේ傾向があります. එබැවින්, නිල ගබඩාවෙන් Docker ස්ථාපනය කිරීම දැඩි ලෙස නිර්දේශ කරයි.

පළමුව, අවශ්‍ය නම් පවතින Docker‑සම්බන්ධ පැකේජයන් පරීක්ෂා කර ඉවත් කරන්න:

sudo apt remove docker docker.io containerd runc

පණිවිඩය කිසිවක් ස්ථාපනය කර නැතැයි පෙන්වන්නේ නම්, කිසිදු ක්‍රියාවක් අවශ්‍ය නොවේ.

2-3. APT යාවත්කාලීන කිරීම සහ අවශ්‍ය පැකේජ ස්ථාපනය

නිල Docker ගබඩාව එක් කිරීමට පෙර, APT යාවත්කාලීන කර අවශ්‍ය මෙවලම් ස්ථාපනය කරන්න:

sudo apt update
sudo apt install -y ca-certificates curl gnupg

මෙම මෙවලම් Docker‑ගේ GPG යතුර සහ ගබඩාව ආරක්ෂිතව එක් කිරීමට අවශ්‍ය වේ.

2-4. පරිපාලක අධිකාරි (sudo) පරීක්ෂා කිරීම

Docker ස්ථාපනය සඳහා sudo අධිකාරි අවශ්‍ය වේ. ඔබේ ගිණුමට sudo ප්‍රවේශය නොමැති නම්, පරිපාලක ගිණුමකට මාරු වන්න හෝ අවසර ඉල්ලන්න.

පහත කමාන්ඩ් එකෙන් sudo ප්‍රවේශය පරීක්ෂා කළ හැකිය:

sudo -v

ඔබට මුරපදයක් ඇතුළත් කිරීමට ඉල්ලීම් ලැබී, කමාන්ඩ් සාර්ථකව ක්‍රියාත්මක වූවා නම්, ඔබට ඉදිරියට යා හැකිය.

2-5. ජාල සම්බන්ධතාව පරීක්ෂා කිරීම

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

එවැනි අවස්ථාවල, ප්‍රොක්සි සැකසුම් හෝ අනුමත ලැයිස්තු (allowlist) සම්බන්ධයෙන් ඔබේ ජාල පරිපාලකයා සමඟ සාකච්ඡා කරන්න.

2-6. ස්ථාපන ක්‍රමය තේරීම

Docker ස්ථාපනය සඳහා ප්‍රධාන වශයෙන් තුනක් ක්‍රම ඇත:

  1. නිල Docker ගබඩාවෙන් ස්ථාපනය (නිර්දේශිත)
  2. get.docker.com ස්ථාපන ස්ක්‍රිප්ට් භාවිතා කිරීම (ඉක්මන් සහ පහසු)
  3. Docker .deb පැකේජයන් අතින් බාගත කර ස්ථාපනය කිරීම (විශේෂ අවස්ථා)

මෙම ලිපිය නිල ගබඩාව භාවිතා කරන ක්‍රමය මත ප්‍රධාන වශයෙන් අවධානය යොමු කරයි; එය අතිශය පොදු සහ නඩත්තු කිරීම පහසුම ක්‍රමයයි.

3. Docker ස්ථාපනය

දැන් Ubuntu හි Docker ස්ථාපනය කරමු. බොහෝ ස්ථාපන ක්‍රම තිබුණද, මෙම මාර්ගෝපදේශය නිල Docker ගබඩාව භාවිතා කරන ක්‍රමය මත කේන්ද්‍රගත වේ; එය නිශ්චිතවම විශ්වාසදායක සහ නිෂ්පාදන පරිසරවල වැඩි වශයෙන් භාවිතා වේ.

මෙම ක්‍රමය apt upgrade මගින් ස්ථායී යාවත්කාලීන කිරීම් ලබා දෙන බැවින්, දිගුකාලීන භාවිතයට ඉතා සුදුසුය.

3-1. නිල Docker ගබඩාව එක් කිරීම (නිර්දේශිත)

පළමුව, Docker විසින් සැපයූ නිල GPG යතුර ලියාපදිංචි කර Docker ගබඩාව APT වෙත එක් කරන්න. මෙය නිසි ලෙස සකස් කරගත් පසු, Ubuntu හි පරණ docker.io පැකේජය අහඹු ලෙස ස්ථාපනය වීමෙන් වැළකිය හැකිය.

3-1-1. GPG යතුර ලියාපදිංචි කිරීම

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  • /etc/apt/keyrings/ යනු Ubuntu 22.04 සහ ඊට පසු අනුවාද සඳහා නිර්දේශිත යතුරු ගබඩා ස්ථානයයි
  • --dearmor යතුර බයිනරි ආකාරයට පරිවර්තනය කරයි

මෙම පියවර මගින් APT නිල Docker ගබඩාව විශ්වාස කිරීමට හැකි වේ.

3-1-2. ගබඩාව එක් කිරීම

ඊළඟට, Docker ගබඩාව APT හි මූලාශ්‍ර ලැයිස්තුවට එක් කරන්න.

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
  https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo $VERSION_CODENAME) stable" \
  | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

ප්‍රධාන කරුණු:

  • $(. /etc/os-release && echo $VERSION_CODENAME) මඟින් Ubuntu කේත නාමය (උදා: jammy හෝ focal) ස්වයංක්‍රීයව ඇතුළත් වේ
  • එක් කරන ලද ගබඩාව ස්ථාවර (stable) ගබඩාව පමණි

3-1-3. ගබඩා තොරතුරු යාවත්කාලීන කිරීම

ගබඩාව එක් කළ පසු, APT අනුලේඛනය යාවත්කාලීන කරන්න.

sudo apt update

මෙම අවස්ථාවේ docker-ce (Docker Engine) ස්ථාපනය කළ හැකි පැකේජයක් ලෙස පෙන්විය යුතුය.

3-2. Docker Engine ස්ථාපනය

දැන් ප්‍රධාන Docker පැකේජයන් ස්ථාපනය කරමු.

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

පැකේජ භූමිකා:

  • docker-ce : Docker Engine මූලික කොටස
  • docker-ce-cli : Docker විධාන රේඛා අතුරුමුහුණත
  • containerd.io : Docker භාවිතා කරන මූලික කන්ටේනර් රන්ටයිම්
  • docker-buildx-plugin : බහු-වෙළඳපොළ ගොඩනැගීම වැනි උසස් ගොඩනැගීමේ විශේෂාංග
  • docker-compose-plugin : Docker Compose V2 ( docker compose විධානය)

ස්ථාපනය කිරීමෙන් පසු, Docker ඩේමන් ස්වයංක්‍රීයව ආරම්භ වේ.

3-3. ස්ථාපනය තහවුරු කිරීම

පහත විධානය භාවිතා කර Docker හි රන්ටයිම් තත්ත්වය පරීක්ෂා කරන්න:

sudo systemctl status docker

active (running) ලෙස පෙන්වන්නේ නම්, Docker නිවැරදිව ක්‍රියා කරයි.

තත්ත්ව දර්ශනයෙන් පිටවීමට q ඔබන්න.

3-4. විකල්ප: පහසුව සඳහා ස්ක්‍රිප්ට්-අධාරිත ස්ථාපනය

Docker එකම-එකතු ස්ථාපන ස්ක්‍රිප්ට් එකක් ද ලබා දෙයි.

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

ලාභ:

  • විධාන සංඛ්‍යාව අඩු සහ ඉක්මන් සැකසීම
  • සරල හෝ තාවකාලික පරිසර සඳහා සුදුසු

අවාසි:

  • අනුවාද පාලනය අභියෝගාත්මක
  • නිෂ්පාදන හෝ දිගුකාලීන භාවිතයට සාමාන්‍යයෙන් නොසලස්වයි

ආරම්භකයන්ට පහසු වුවද, මෙම ලිපිය නඩත්තුකිරීම ප්‍රමුඛ කරයි, එබැවින් නිල රිපොසිටරිය ක්‍රමය මත අවධානය යොමු කරයි.

3-5. නවතම Ubuntu නිකුත් කිරීම් සඳහා සටහන් (උදාහරණයක්: 24.04)

ප්‍රධාන Ubuntu නිකුතුවෙන් පසු, Docker හි නිල රිපොසිටරිය නව අනුවාදය තවම සම්පූර්ණයෙන් සහය නොදක්වන්න පුළුවන්.
එවැනි අවස්ථාවල, පහත දේ පරීක්ෂා කරන්න:

  • GPG යතුරු ස්ථානය සහ ආකෘතිය වත්මන් විස්තරයන්ට ගැළපෙන බව
  • VERSION_CODENAME නිල වශයෙන් සහය දක්වන බව
  • apt update ක්‍රියාවලිය තුළ අත්සන් දෝෂ නොසිදුවීම

සහාය ප්‍රමාද වූ විට, තාවකාලිකව get.docker.com ස්ක්‍රිප්ට් භාවිතා කිරීම ප්‍රායෝගික විසඳුමක් විය හැක.

4. පරිශීලක අවසර සහ sudo නොමැතිව Docker ධාවනය

Docker ස්ථාපනය කිරීමෙන් පසු, ඔබට docker විධානය වහාම භාවිතා කිරීමට අවශ්‍ය විය හැක. නමුත්, පෙරනිමි ලෙස, ඔබ සෑම විධානයක්ම sudo සමඟ පූර්ව-ඇතුළත් කළ යුතුය.

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

4-1. sudo නොමැතිව ධාවනය කිරීමේ වැදගත්කම

Ubuntu හි, Docker ඩේමන් (dockerd) රූට් අවසර සමඟ ක්‍රියා කරයි.
ඒ නිසා, docker විධානය භාවිතා කර කන්ටේනර් නිර්මාණය හෝ ඉවත් කිරීම සාමාන්‍යයෙන් රූට් ප්‍රවේශය අවශ්‍ය වේ.

docker කණ්ඩායම මෙම අවශ්‍යතාව සපුරාලීමට පවතී.

  • මෙම කණ්ඩායමේ පරිශීලකයන් Docker ඩේමන්ට සෘජුව ප්‍රවේශ විය හැක
  • මෙය docker run වැනි විධාන sudo නොමැතිව භාවිතා කිරීමට ඉඩ සලසයි
  • සංවර්ධන භාවිතයට මෙම සැකසීම تقریباً අත්‍යවශ්‍ය වේ

docker කණ්ඩායම ප්‍රායෝගිකව රූට් සමීප අවසර ලබා දෙන බැවින්, බෙදාගත් පරිසරවල අවධානය අවශ්‍ය වේ.
(පුද්ගලික ඩෙස්ක්ටොප් හෝ WSL2 සඳහා, මෙය සාමාන්‍යයෙන් ගැටලුවක් නොවේ.)

4-2. ඔබේ පරිශීලකයා docker කණ්ඩායමට එක් කිරීම

දැනට ලොග් වුණු පරිශීලකයා docker කණ්ඩායමට එක් කරන්න:

sudo usermod -aG docker $USER

මෙම විධානය පරිශීලකයා කණ්ඩායමට එක් කරයි. -aG විකල්පය කණ්ඩායමට එක් කිරීම යන අර්ථය දරයි.

4-3. වෙනස්කම් යෙදීම

කණ්ඩායම් සාමාජිකත්ව වෙනස්කම් ලොග් අවුට් වී නැවත ලොග් ඉන් වීමෙන් පසු ක්‍රියාත්මක වේ.

වෙනස්කම වහාම යෙදීමට, ඔබට පහත විධානයද ධාවනය කළ හැක:

newgrp docker

මෙය docker කණ්ඩායම් අවසර සමඟ නව ශෙල් සැසියක් ආරම්භ කරයි.

4-4. sudo-රහිත ක්‍රියාත්මක කිරීම තහවුරු කිරීම

දැන් sudo නොමැතිව Docker පරීක්ෂා කරන්න:

docker run hello-world

සාර්ථක ප්‍රතිඵල:

  • Docker වෙතින් ආයුබෝවන්!
  • රූපය බාගත කර පණිවුඩය පෙන්වයි

දෝෂයක් සිදු වූ විට, පහත දේ පරීක්ෂා කරන්න:

  • කණ්ඩායම් සාමාජිකත්වය වෙනස් කිරීමෙන් පසු ඔබ ලොග් අවුට් වී නැවත ලොග් ඉන් වුණාද?
  • /usr/bin/docker භාවිතා කරමින් සිටීද?
  • Docker ඩේමන් ක්‍රියාත්මක වෙමින් තිබේද ( systemctl status docker )?

4-5. ආරක්ෂක සැලකිලි (වැදගත්)

docker කණ්ඩායම ශක්තිමත් අවසර ලබා දේ, ඒවා ප්‍රායෝගිකව රූට් ප්‍රවේශයට සමාන වේ.

  • අහඹු ගොනු කියවීම
  • කන්ටේනර් වලට හෝස්ට් ඩිරෙක්ටරී මවුන්ට් කිරීම
  • ජාල ක්‍රියාකාරකම් සිදු කිරීම
  • Docker සොකට් මගින් පද්ධති මට්ටමේ පාලනය

final answer.මෙය පුද්ගලික පද්ධති සඳහා පිළිගත හැකි වුවත්, බෙදාගත් සේවාදායකවල පරිශීලක කළමනාකරණය අත්‍යවශ්‍ය වේ.

එවැනි අවස්ථාවල, ඔබට rootless Docker ගැන සිතන්න පුළුවන්, එය පසුගිය කොටස්වල සාකච්ඡා කර ඇත.

5. ආරම්භය සහ මෙහෙයුම් සත්‍යාපනය

Docker ස්ථාපනය සහ අවසර සැකසීම සම්පූර්ණ වූ පසු, ඊළඟ පියවර Docker නිවැරදිව ක්‍රියා කරන බව සත්‍යාපනය කිරීම වේ. මෙම කොටස Docker සේවාවේ තත්ත්වය පරීක්ෂා කිරීම සහ පරිඝණක (containers) ඇත්තේ ක්‍රියාත්මක කිරීම පිළිබඳ විස්තර කරයි.

5-1. Docker Daemon තත්ත්වය පරීක්ෂා කිරීම

පළමුව, Docker පසුබිමේ නිවැරදිව ක්‍රියා කරමින් සිටින බව සත්‍යාපනය කරන්න.

sudo systemctl status docker

ප්‍රධාන තත්ත්ව සංඥා:

  • active (running) → සාමාන්‍ය ලෙස ක්‍රියා කරයි
  • inactive → ක්‍රියා නොකරයි (අතින් ආරම්භ කළ යුතුය)
  • failed → සැකසීම හෝ පරායන දෝෂයක්

තත්ත්වය inactive හෝ failed නම්, පහත කමාන්ඩ් එකෙන් Docker ආරම්භ කරන්න:

sudo systemctl start docker

Docker මෙහෙයුම් පද්ධතිය ආරම්භ වන විට ස්වයංක්‍රීයව ආරම්භ වන බවට සහතික වීමට:

sudo systemctl enable docker

5-2. hello-world පරිඝණකය සමඟ මෙහෙයුම සත්‍යාපනය කිරීම

Docker ස්ථාපනය සත්‍යාපනය කිරීමේ සාමාන්‍යම ක්‍රමය නිල hello-world රූපය (image) ක්‍රියාත්මක කිරීමයි.

docker run hello-world

මෙම කමාන්ඩ් පහත ක්‍රියාමාර්ග සිදු කරයි:

  1. Docker Hub වෙතින් රූපය බාගත කරයි, එය දේශීයව නොමැති නම්
  2. රූපයෙන් පරිඝණකයක් ආරම්භ කරයි
  3. පරීක්ෂණ පණිවුඩයක් පෙන්වා ඉවත් වේ

සාර්ථක නම්, ඔබට පහත වැනි ප්‍රතිඵලයක් දැකිය හැක:

Hello from Docker!
This message shows that your installation appears to be working correctly.

මෙම පණිවුඩය පෙන්වෙනවා නම්, Docker ස්ථාපනය කර ඇති අතර නිවැරදිව ක්‍රියා කරයි.

5-3. මූලික Docker කමාන්ඩ් පරීක්ෂා කිරීම

මූලික මෙහෙයුම තහවුරු වූ පසු, සාමාන්‍යයෙන් භාවිතා වන Docker කමාන්ඩ් කිහිපයක් පරීක්ෂා කරන්න.

5-3-1. Docker රූප (Images) ලැයිස්තුගත කිරීම

docker images

මෙය දේශීයව බාගත කර ඇති රූප들의 ලැයිස්තුව පෙන්වයි. hello-world පෙන්වෙනවා නම්, සියල්ල අපේක්ෂිත ලෙස ක්‍රියා කරයි.

5-3-2. ක්‍රියාත්මක පරිඝණක පරීක්ෂා කිරීම

docker ps

මෙම කමාන්ඩ් වර්තමාන ක්‍රියාත්මක පරිඝණක ලැයිස්තු කරයි. (hello-world පරිඝණකය වහාම ඉවත් වන බැවින් සාමාන්‍යයෙන් පෙන්වන්නේ නැත.)

නවතී පරිඝණකද පෙන්වීමට:

docker ps -a

5-3-3. නිල රූපයක් ධාවනය කිරීමේ උදාහරණය

සරල Nginx වෙබ් සේවාදායකයක් පරීක්ෂා කිරීමට:

docker run -d -p 8080:80 nginx
  • -d → පසුබිමේ ධාවනය
  • -p → හෝස්ට් පෝට් 8080 එක පරිඝණක පෝට් 80 වෙත සම්බන්ධ කරයි

ඔබේ බ්‍රවුසරයේ http://localhost:8080 විවෘත කර පෙරනිමි Nginx පිටුව බලන්න.

5-4. පරිඝණක නවත්වීම සහ ඉවත් කිරීම

පහත කමාන්ඩ් භාවිතා කර ක්‍රියාත්මක පරිඝණකයක් නවත්විය හැක:

docker stop <container-id>

පරිඝණකයක් ඉවත් කිරීමට:

docker rm <container-id>

භාවිත නොකළ රූප ඉවත් කිරීමට:

docker rmi <image-id>

උපරිමය පරිඝණක → රූප → පරිමාණය (container → image → volume) ලෙස පවතින බැවින්, ඒවා අවධානයෙන් ඉවත් කරන්න.

5-5. දෝෂවල සාමාන්‍ය හේතු

● අවසර දෝෂ

Got permission denied while trying to connect to the Docker daemon socket → පරිශීලකයා docker කණ්ඩායමට එකතු කර නොමැත

● Docker Daemon ක්‍රියා නොකරයි

Cannot connect to the Docker daemon at unix:///var/run/docker.socksystemctl start docker භාවිතා කර Docker ආරම්භ කරන්න

● රූප බාගත කිරීමේ ජාල ගැටළු

→ ප්‍රොක්සි සැකසුම්, DNS වින්‍යාසය, හෝ ජාල සීමා පරීක්ෂා කරන්න

● පරණ docker.io පැකේජය තවමත් ස්ථාපිතයි

→ එය සම්පූර්ණයෙන් ඉවත් කර නිල රිපොසිටරියෙන් Docker නැවත ස්ථාපනය කරන්න

6. Docker Compose ස්ථාපනය සහ භාවිතය

Docker විශාල පරිමාණයේ භාවිතා කිරීමේ අත්‍යවශ්‍ය මෙවලම Docker Compose වේ. නවීන වෙබ් යෙදුම් සාමාන්‍යයෙන් දත්ත ගබඩා, කෑෂ්, වැඩකරුවන්, සහ වෙබ් සේවාදායක වැනි බහු කොටස් වලින් සමන්විත වේ. මෙම කොටස් වෙන්ව docker run කමාන්ඩ් භාවිතා කර කළමනාකරණය කිරීම ඉක්මනින් අසාර්ථක වේ.

Docker Compose ඔබට එකම ගොනුවක බහු පරිඝණක වින්‍යාසයන් නිර්වචනය කර ඒවා එකට කළමනාකරණය කිරීමට ඉඩ දේ, එමඟින් එය වාස්තුකලාවේ සාමාන්‍යයෙන් භාවිතා වන මෙවලම් අතරින් එකක් වේ.

6-1. Docker Compose V2 ස්ථාපනය තහවුරු කිරීම

නිල රෙපොසිටරියෙන් Docker ස්ථාපනය කරන විට, Docker Compose ස්වයංක්‍රීයව ප්ලග්ඉනයක් ලෙස ස්ථාපනය වේ.

පහත කමාන්ඩ් එක භාවිතා කර ස්ථාපනය තහවුරු කරන්න:

docker compose version

නිවැරදිව ස්ථාපනය කර ඇත්නම්, ඔබට පහත වගේ ප්‍රතිඵලයක් දැකිය හැක:

Docker Compose version v2.x.x

docker: 'compose' is not a docker command වැනි දෝෂයක් පෙනේ නම්, ප්ලග්ඉනය අතින් ස්ථාපනය කරන්න:

sudo apt install docker-compose-plugin

6-2. Docker Compose හි ප්‍රතිලාභ

Docker Compose හි ප්‍රධාන වාසි මෙසේය:

  • බහු කන්ටේනර් එකතුවේ ඒකාබද්ධ කළමනාකරණය (ආරම්භ, නවතා, නැවත ආරම්භ)
  • කේත ලෙස වින්‍යාස කිරීම, නැවත නිර්මාණය කළ හැකි පරිසරයන් සලසයි
  • යෙදුම්, API, සහ දත්ත ගබඩා සැකසුම් පහසුවෙන් බෙදා ගැනීම
  • එක් docker compose up කමාන්ඩ් එකක් මඟින් සංවර්ධන පරිසර ආරම්භ කිරීම

මෙම හේතුවෙන් Docker Compose යෙදුම් සංවර්ධනය සඳහා අත්‍යවශ්‍යයක් බවට පත්වේ.

6-3. Compose වින්‍යාස ගොනුවේ මූලික ව්‍යුහය

Docker Compose සේවාවන් නිර්වචනය කිරීමට docker-compose.yml (හෝ compose.yaml) ගොනුව භාවිතා කරයි. අවම උදාහරණයක් ලෙස, Nginx ආරම්භ කරන සරල වින්‍යාසයක් සාදන්න.

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"

ගොනුව අඩංගු ඩිරෙක්ටරිය තුළ පහත කමාන්ඩ් එක ක්‍රියාත්මක කරන්න:

docker compose up -d

Nginx පසුබිමේ ආරම්භ වේ. ඔබේ බ්‍රවුසරයෙන් http://localhost:8080 වෙත පිවිසීමෙන් තහවුරු කරන්න.

6-4. උදාහරණය: බහු-කන්ටේනර් සැකසුම (වෙබ් + දත්ත ගබඩා)

Compose හි සැබෑ බලය එකවර බහු කන්ටේනර් කළමනාකරණය කිරීමේදී පෙනේ. උදාහරණයක් ලෙස, වෙබ් යෙදුමක් MySQL සමඟ එක්ක ධාවනය කිරීම පහත පරිදි වින්‍යාස කළ හැක:

services:
  app:
    build: .
    ports:
      - "3000:3000"
    depends_on:
      - db

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: example
    volumes:
      - db-data:/var/lib/mysql

volumes:
  db-data:

විස්තරය:

  • depends_on මඟින් දත්ත ගබඩා යෙදුමට පෙර ආරම්භ වන බව සහතික කරයි
  • volumes මඟින් දත්ත ගබඩා දත්ත ස්ථිරව රඳවා තබයි
  • බහු සේවා එක YAML ගොනුවක් තුළ කළමනාකරණය වේ

මෙය සංවර්ධන පරිසර සඳහා ඉතා ප්‍රයෝජනවත් රටාවකි.

6-5. සාමාන්‍යයෙන් භාවිතා වන Docker Compose කමාන්ඩ්

මෙම කමාන්ඩ් මතක තබා ගැනීම ප්‍රයෝජනවත් වේ:

CommandDescription
docker compose up -dStart containers in the background
docker compose downStop and remove containers and networks
docker compose buildBuild images using Dockerfile
docker compose psList containers managed by Compose
docker compose logs -fView logs (optionally per service)

Compose භාවිතයෙන් ඔබට එකම පරිසරය නැවත නැවත සෑදිය හැකි අතර, කණ්ඩායම් සංවර්ධනය සඳහා ඉතා සුදුසු වේ.

6-6. සංවර්ධනයේ Compose සඳහා නිර්දේශිත භාවිතා අවස්ථා

  • එක්-කමාන්ඩ් මඟින් දේශීය පරිසර සැකසීම
  • නිෂ්පාදනයට සමීප පරිසරවල පරීක්ෂණ
  • දත්ත ගබඩා, කෑෂ්, පණිවිඩ පෝලිම් වැනි එකතු කළ සේවා ආරම්භ කිරීම
  • වොලියුම් භාවිතයෙන් දත්ත ස්ථිර කිරීම
  • .env පරිසර විචල්‍යයන් මඟින් වින්‍යාස කළමනාකරණය
  • සංකීර්ණ මයික්‍රෝසේවා ව්‍යුහයන්ට සහය

Docker සහ Compose සමඟ ඔබට පළපුරුදු වීමෙන් පසු, පරිසර සැකසීමේ කාලය ගණනාවක් අඩු වේ, සංවර්ධන කාර්යක්ෂමතාවය විශාල ලෙස වැඩි වේ.

7. ආරක්ෂාව සහ මෙහෙයුම් සලකා බැලීම්

Docker ඉතා බලවත් සහ පහසු මෙවලමක් වන නමුත් “කන්ටේනරීකරණය” කිරීම ස්වයංක්‍රීයව “ආරක්ෂිත” බවක් නොවේ. Ubuntu මත Docker නිතර භාවිතා කරන විට, ඔබට අවබෝධය ඇති කළ යුතු වැදගත් ආරක්ෂක හා මෙහෙයුම් කරුණු කිහිපයක් ඇත.

මෙම කොටස Docker ආරක්ෂිතව සහ ස්ථාවරව මෙහෙයවීමට අවශ්‍ය මූලික දැනුම සංවිධානය කරයි, අරඹන්නන්ටත් පහසුවෙන් තේරුම් ගත හැකි පරිදි.

7-1. docker කණ්ඩායමට “ප්‍රායෝගිකව රූට්” අධිකාරි ඇත

පෙර සකස් කර ඇති docker කණ්ඩායම ඉතා ශක්තිමත් අධිකාරි ලබා දෙයි. docker කණ්ඩායමට අයත් පරිශීලකයන් Docker සොකට් මඟින් හෝස්ට් OS ක්‍රියාත්මක කළ හැක, එය ප්‍රායෝගිකව රූට් මට්ටමේ ප්‍රවේශයක් සමඟ සමාන වේ.

● අවධානය යොමු කළ යුතු ප්‍රධාන කරුණු

  • හවුල් සේවාදායකවල අහඹු පරිශීලකයන් docker කණ්ඩායමට එක් නොකරන්න
  • “sudo අවශ්‍ය නොවේ” යන පහසුවට පමණක් නොව, එහි ප්‍රතිඵල තේරුම් ගන්න
  • දෘඪ ආරක්ෂක ප්‍රතිපත්ති ඇති සංවිධානවල, පරිපාලක අනුමැතිය අවශ්‍ය විය හැක

.මෙය පුද්ගලික Ubuntu යන්ත්‍රවල හෝ සංවර්ධන පරිගණකවල අඩු වශයෙන් සිදුවන ගැටළුවක් වන අතර, නිෂ්පාදන සේවාදායකවලදී අවධානයෙන් තීරණය කිරීම අවශ්‍ය වේ.

7-2. Rootless Docker ගැන සලකා බැලීම (උසස් විකල්පය)

Docker rootless mode නමින් හැඳින්වෙන විශේෂාංගයක් ලබා දේ, එය Docker daemon එක රූට් (root) පරිශීලකයා වෙනුවට සාමාන්‍ය පරිශීලක ගිණුමක් යටතේ ක්‍රියාත්මක වීමට ඉඩ සලසයි.

වාසි

  • ආධාරක OS හි අවසර අවදානම වැදගත් ලෙස අඩු කරයි
  • දෘඪ ආරක්ෂක අවශ්‍යතා ඇති පරිසරවල Docker භාවිතය ආරක්ෂිතව කර ගැනීමට ඉඩ සලසයි

අවාසි

  • කොටසක් ජාලා විශේෂාංග සීමා කර ඇත
  • ආරම්භකයන් සඳහා වින්‍යාසය වඩා සංකීර්ණ වේ
  • ප්‍රවර්තනය සාමාන්‍ය Docker වලින් වෙනස් විය හැක

Rootless mode බොහෝ සංවර්ධන භාවිතයන් සඳහා අවශ්‍ය නොවුවත්, ව්‍යාපාරික හෝ අනුකූලතා-කේන්ද්‍රිත පරිසරවල එය ප්‍රායෝගික විකල්පයක් විය හැක.

7-3. භාවිත නොකළ රූප සහ කන්ටේනර් පිරිසිදු කිරීම

කාලයත් සමඟ Docker ඔබට දැනුම් නොදෙමින් විශාල තැටි ඉඩක් භාවිතා කර ගත හැක. භාවිත නොකළ කන්ටේනර්, රූප සහ වොලියුම් එකතු වී 100GB කට වඩා පහසුවෙන් ඉක්මවා යා හැක.

● භාවිත නොකළ සම්පත් ඉවත් කිරීම සඳහා විධාන

භාවිත නොකළ රූප ඉවත් කිරීම

docker image prune

කන්ටේනර් සහ ජාලා එකට ඉවත් කිරීම

docker system prune

තීව්‍ර පිරිසිදු කිරීම (අවධානයෙන් භාවිතා කරන්න)

docker system prune -a

-a විකල්පය සියලු භාවිත නොකළ රූප ඉවත් කරයි, එබැවින් අවධානයෙන් භාවිතා කරන්න.

7-4. නිෂ්පාදනයේ “latest” ටැගය භාවිතා කිරීමෙන් වැළකී සිටින්න

nginx:latest වැනි ටැග් සංවර්ධනයේදී පහසු වුවත්, නිෂ්පාදනයේ භාවිතයට ඒවා නිර්දේශ නොකෙරේ.

හේතු

  • latest පිටුපස ඇති නිශ්චිත සංස්කරණය සහතික නොවේ
  • අනපේක්ෂිත යාවත්කාලීනවලින් ක්‍රියාකාලීන දෝෂ ඇති විය හැක
  • ප්‍රතිපත්තිකරණය අහිමි වීම අස්ථිර නිකුත් කිරීම් වෙත හේතු වේ

නිර්දේශිත ක්‍රමය: සංස්කරණයන් පැහැදිලිව පින් කරන්න


image: nginx:1.25


පැහැදිලි සංස්කරණය කිරීම නිෂ්පාදන පරිසරවල මූලික නීතියකි.

7-5. Dockerfile වල නිල මූල රූප භාවිතා කරන්න

Dockerfile සෑදීමේදී, මෙම මාර්ගෝපදේශ අනුගමනය කරන්න:

  • නිල රූප (library රූප) ප්‍රමුඛ වන්න
  • නොදන්නා හෝ අවිශ්වාසනීය ලේඛකයන් විසින් නඩත්තු කරන රූප වලින් වැළකී සිටින්න
  • Alpine වැනි ලාංඡන OS රූප භාවිතා කරන විට, දුර්වලතා සහය තත්ත්වය පරීක්ෂා කරන්න

අවිශ්වාසනීය රූප වල මැල්වෙයා අඩංගු විය හැක. සංවර්ධන පරිසරවලද, හැකි තරම් ඒවාෙන් වැළකී සිටින්න.

7-6. ජාල සහ පෝට් ප්‍රදර්ශනයේදී අවධානයෙන් සිටින්න

කන්ටේනර් හෝස්ට් OS හි පෝට් ප්‍රදර්ශනය කරන විට, ඒවා පද්ධතියේ පිටත සිට ප්‍රවේශය ලැබිය හැක.

අවධානම්

  • අවශ්‍ය නොවන -p 80:80 මැප් කිරීමෙන් වැළකී සිටින්න
  • දේශීය භාවිතය සඳහා, localhost වෙත පමණක් බැඳන්න, උදාහරණය -p 127.0.0.1:8080:80
  • UFW වැනි ගිනිගුල සැකසුම් සමඟ එකතු කරන්න
  • නිෂ්පාදනය සඳහා, ආරක්ෂාව වැඩිදියුණු කිරීමට reverse proxy (උදාහරණය Nginx) භාවිතා කරන්න

VPS හෝ වලාකුළු-අධාරිත Ubuntu සේවාදායකවල පෝට් කළමනාකරණය විශේෂයෙන් වැදගත් වේ.

7-7. දෝෂ සිදුවීමේදී ලොග් කළමනාකරණය

Docker ලොග් පහත විධානයෙන් බැලිය හැක:

docker logs <container-name>

ලොග් ප්‍රමාණය වැඩි වීම ඉක්මනින් තැටි ඉඩ භාවිතා කරයි, එබැවින් ලොග් ධාවක සහ ලොග් රෝටේෂන් සැකසීමට සැලකිල්ලෙන් සිටින්න.

8. පොදු ගැටළු සහ දෝෂ නිරාකරණය

Docker ශක්තිමත් මෙවලමක් වුවද, පරිසර වෙනස්කම් හෝ වින්‍යාස දෝෂයන් නිසා Ubuntu හි අනපේක්ෂිත දෝෂ සිදුවිය හැක. මෙම කොටස ආරම්භකයන් සිට මධ්‍යම මට්ටමේ පරිශීලකයන් සඳහා පොදු ගැටළු සහ ඒවායේ විසඳුම් සාරාංශ කරයි.

8-1. Docker Daemon වෙත සම්බන්ධ විය නොහැක

● දෝෂ පණිවුඩය

Cannot connect to the Docker daemon at unix:///var/run/docker.sock.

● හේතු සහ විසඳුම්

  1. Docker daemon ක්‍රියාත්මක නොවේ : sudo systemctl start docker
  2. docker කණ්ඩායමේ වෙනස්කම් යෙදුනේ නැත : පිටවී නැවත පිවිසෙන්න, හෝ newgrp docker ක්‍රියාත්මක කරන්න
  3. /var/run/docker.sock හි අවසර ගැටලුව : පරිශීලකයා docker කණ්ඩායමේ සාමාජිකය බව තහවුරු කරන්න

8-2. අවසර ප්‍රතික්ෂේප දෝෂ

● සාමාන්‍ය දෝෂය

Got permission denied while trying to connect to the Docker daemon socket

● විසඳුම

හේතුව බොහෝ විට docker කණ්ඩායම් සැකසුම නොමැති වීමයි.

sudo usermod -aG docker $USER

ඉන්පසු පිටවී නැවත පිවිසෙන්න.

.

8-3. APT රෙපොසිටරිය එකතු කිරීමේදී GPG දෝෂ

● දෝෂ උදාහරණ

NO_PUBKEY XXXXXXXX

or

The following signatures couldn't be verified

● හේතු සහ විසඳුම්

  • GPG යතුර නිවැරදිව ලියාපදිංචි කර නොමැති වීම
  • ජාල සීමා හේතුවෙන් curl අසාර්ථක වීම

යතුර නැවත ලියාපදිංචි කිරීම:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
 | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

ඊළඟට sudo apt update නැවත ක්‍රියාත්මක කරන්න.

8-4. පෝට් බැඳීමේ ගැටළු

● දෝෂ උදාහරණ

Bind for 0.0.0.0:80 failed: port is already allocated.

● හේතුව

  • පෝට් එක දැනටමත් හෝස්ට් මත වෙනත් ක්‍රියාවලියක් භාවිතා කරයි
  • වෙනත් Docker කන්ටේනරයක් ඒම පෝට් එක භාවිතා කරයි

● විසඳුම්

පෝට් එක භාවිතා කරන ක්‍රියාවලිය පරීක්ෂා කරන්න:

sudo lsof -i -P -n | grep :80

දැන් ක්‍රියාත්මක වන කන්ටේනර පරීක්ෂා කරන්න:

docker ps

පෝට් මැප්පිං වෙනස් කරන්න:

-p 8080:80

8-5. රූප (Image) බාගත කිරීමේ අසාර්ථකතා

● සාමාන්‍ය හේතු

  • ජාල සීමා (ආයතනික පරිසර)
  • DNS වින්‍යාස ගැටළු
  • Docker Hub වෙත ප්‍රවේශය අවහිර වීම

● විසඳුම්

  • DNS සේවාදායකයන් වෙනස් කරන්න (උදා: 1.1.1.1 හෝ 8.8.8.8)
  • ප්‍රොක්සි වින්‍යාසය පරීක්ෂා කරන්න
  • පරිසරය අවශ්‍ය නම් VPN භාවිතා කරන්න

8-6. තැටි (Disk) ඉඩ අවසන් වීමේ දෝෂ

● සාමාන්‍ය පණිවිඩය

no space left on device

● විසඳුම

භාවිත නොකරන සම්පත් ඉවත් කරන්න:

docker system prune -a

රූප, කන්ටේනර සහ වොලියුම් පරීක්ෂා කරන්න:

docker images
docker ps -a
docker volume ls

තැටි ඉඩ අවසන් වීම Docker මෙහෙයුම් ගැටළු අතර අතිශය සාමාන්‍යය.