|
🐳 ඩොකර් (Docker) ගැඹුරින් දැනගමු: Software Development පහසු කරන විප්ලවය! 🚀

🐳 ඩොකර් (Docker) ගැඹුරින් දැනගමු: Software Development පහසු කරන විප්ලවය! 🚀

technology programming
By Rasanjana 2025-04-25 19:02:20

🐳 ඩොකර් (Docker) කියන්නේ මොකක්ද? ඇයි මේක මෙච්චර වැදගත්? 🤔


ඩොකර් කියන්නේ සරලවම කිව්වොත්, අපේ ඇප්ලිකේෂන් (Software) හදන එක, ටෙස්ට් කරන එක සහ ඩිප්ලෝයි (Deploy - එළිදැක්වීම) කරන එක ගොඩක් පහසු කරන ටෙක්නොලොජි එකක්. හරියට බඩු භාණ්ඩ ප්‍රවාහනය කරන කන්ටේනර් වගේ තමයි. 🚢

හිතන්නකෝ ඔයා ලොකු නැවක බඩු ගොඩක් ගෙනියන්න තියෙනවා කියලා - එක එක ජාතියේ, එක එක ප්‍රමාණයේ බඩු. මේවා නිකන්ම නැවට පැටෙව්වොත් එකට එක ගැටෙනවා, අවුල් වෙනවා, ඉඩ මදි වෙනවා. 😓 ඒකට විසඳුම තමයි කන්ටේනර්. එකම ප්‍රමාණයේ පෙට්ටිවලට (කන්ටේනර්) බඩු පිළිවෙලට අසුරලා, ඒ කන්ටේනර් ටික නැවට පැටෙව්වාම හරිම ලේසියි, ඉඩත් ඉතුරුයි, බඩුත් ආරක්ෂිතයි නේද? ✅

ඩොකර් කරන්නේත් ඒ වගේ දෙයක්. අපේ ඇප්ලිකේෂන් එකට අවශ්‍ය හැමදේම (කෝඩ් එක, ලයිබ්‍රරි, settings, අවශ්‍ය අනෙකුත් software) එක පැකේජ් එකකට, ඒ කියන්නේ කන්ටේනර් (Container) එකකට අසුරනවා. 📦 ඊට පස්සේ මේ කන්ටේනර් එක ඕනම පරිගණකයක, සර්වර් එකක කිසිම ප්‍රශ්නයක් නැතුව run කරන්න පුළුවන්.


🤯 ඩොකර් එන්න කලින් තිබ්බ ප්‍රශ්න (The "Works on My Machine" Problem)

Developer කෙනෙක් විදියට ඔයාටත් මේ අත්දැකීම ඇති:

  • ඔයාගෙ මැෂින් එකේ (ලැප් එකේ/ඩෙස්ක්ටොප් එකේ) ඇප් එක සුපිරියට වැඩ! 😎
  • ඒත් ඒක වෙන කෙනෙක්ගෙ මැෂින් එකට දැම්මම හරි, ටෙස්ටින් server එකට දැම්මම හරි, අන්තිමට ලයිව් දාන්න server එකට දැම්මම හරි එක එක error එනවා! 😩 "මගේ මැෂින් එකේ නම් වැඩ!" කියලා ඔලුවේ අත් ගහගන්න වෙනවා.

මේකට හේතුව තමයි එක එක පරිසරයන් (Environments) වල තියෙන වෙනස්කම්. Operating System එකේ version එක, install කරලා තියෙන software, ලයිබ්‍රරි වල version, system settings වගේ ගොඩක් දේවල් වෙනස් වෙන්න පුළුවන්. මේ නිසා එක තැනක වැඩ කරන ඇප් එක තව තැනක වැඩ නොකර යන්න ඉඩ වැඩියි.


✨ ඩොකර් මේ ප්‍රශ්න විසඳන්නේ කොහොමද?

ඩොකර් මේ ප්‍රශ්නෙට නියම විසඳුමක් ගේනවා. ඒ කන්ටේනරීකරණය (Containerization) හරහා.

ඩොකර් වල ප්‍රධාන කොටස්:

  1. ඩොකර් ඉමේජ් (Docker Image) 📜:
  • මේක හරියට කන්ටේනර් එකක් හදන්න අවශ්‍ය උපදෙස් මාලාවක් (Blueprint) වගේ.
  • අපේ ඇප් එකට ඕන කරන හැම දෙයක්ම (OS එකේ පොඩි කොටසක්, කෝඩ් එක, ලයිබ්‍රරි, dependencies, settings) මේ ඉමේජ් එකේ අඩංගු වෙනවා.
  • මේවා read-only, ඒ කියන්නේ වෙනස් කරන්න බැහැ.
  1. ඩොකර් කන්ටේනර් (Docker Container) 📦➡️🏃‍♂️:
  • මේ තමයි ඩොකර් ඉමේජ් එකක් run කළාම හැදෙන ක්‍රියාත්මක වන instance එක.
  • හරියට ඉමේජ් එක කියන recipe එකෙන් උයපු කෑම එක වගේ. 🍲
  • මේක ඇතුලේ අපේ ඇප් එක දුවනවා. එක ඉමේජ් එකකින් කන්ටේනර් ගොඩක් හදන්න පුළුවන්.
  • කන්ටේනර් එකිනෙකට සහ host system එකට (ඩොකර් install කරපු මැෂින් එකට) බලපෑමක් නැතුව ස්වාධීනව වැඩ කරනවා.
  1. ඩොකර්ෆයිල් (Dockerfile) 📝:
  • ඩොකර් ඉමේජ් එකක් හදාගන්න පියවරෙන් පියවර ලියන උපදෙස් ගොනුව තමයි මේ.
  • හරියට recipe එක ලියන කොළය වගේ.
  • "මේ OS එකේ පොඩි version එක ගන්න", "මේ ලයිබ්‍රරි ටික install කරන්න", "මගේ ඇප් කෝඩ් එක copy කරන්න", "ඇප් එක start කරන්න මේ command එක ගහන්න" වගේ දේවල් මේකේ ලියනවා.
  1. ඩොකර් එන්ජින් (Docker Engine) ⚙️:
  • මේ තමයි ඩොකර් වල හදවත.
  • ඉමේජ් හදන එක (build), කන්ටේනර් run කරන එක (run), ඒවා කළමනාකරණය කරන එක (manage) කරන්නේ මේ එන්ජින් එකෙන්.
  • මේක client-server application එකක්. අපි docker run වගේ command එකක් දෙන්නේ client එක හරහා, server එක (daemon) තමයි වැඩේ කරන්නේ.
  1. ඩොකර් හබ් / රෙජිස්ට්‍රි (Docker Hub / Registry) 📚☁️:
  • ඩොකර් ඉමේජ් ගබඩා කරලා තියන තැනක්. Docker Hub කියන්නේ පොදු (public) රෙජිස්ට්‍රියක්. ගොඩක් official software වල images මෙතන තියෙනවා (උදා: Python, Node.js, Ubuntu, MySQL).
  • අපිට අපේම private රෙජිස්ට්‍රි හදාගන්නත් පුළුවන්.
  • මේකෙන් ඉමේජ් download (pull) කරගන්නත්, අපේ ඉමේජ් upload (push) කරන්නත් පුළුවන්.


🚀 කන්ටේනරීකරණය vs වර්චුවලීකරණය (Containerization vs. Virtualization)

ගොඩක් දෙනෙක්ට පටලැවෙන තැනක් තමයි මේ.

  • වර්චුවල් මැෂින් (VMs) 🐢: VM එකක් කියන්නේ සම්පූර්ණ පරිගණකයක් simulate කරන එකක්. ඒකෙ සම්පූර්ණ Operating System එකක් (Guest OS) තියෙනවා. මේකට ගොඩක් resources (RAM, CPU, Disk Space) ඕන වෙනවා සහ start වෙන්න වෙලාවක් යනවා.
  • ඩොකර් කන්ටේනර් (Containers) 🚀: කන්ටේනර් එහෙම සම්පූර්ණ OS එකක් දුවවන්නේ නැහැ. ඒවා host system එකේ OS එකේ kernel එක share කරගන්නවා. අවශ්‍ය ලයිබ්‍රරි සහ binaries විතරක් කන්ටේනර් එක ඇතුලේ තියෙනවා. මේ නිසා ඒවා ගොඩක් සැහැල්ලුයි (lightweight), වේගවත් (faster), සහ අඩු resources ප්‍රමාණයක් තමයි ගන්නේ. 🌱


💎 ඩොකර් භාවිතා කිරීමේ වාසි

  1. එකම පරිසරය (Consistency) ✅: Development, testing, production කියන හැම තැනම එකම විදියට ඇප් එක දුවනවා. "මගේ මැෂින් එකේ වැඩ" ප්‍රශ්නේ ඉවරයි!
  2. වේගවත් Development සහ Deployment ⚡: ඇප් හදන එකත්, ඒවා deploy කරන එකත් ගොඩක් ඉක්මන්. තත්පර ගානකින් අලුත් කන්ටේනර් එකක් හදලා run කරන්න පුළුවන්.
  3. απομόνωση (Isolation) 🛡️: එක කන්ටේනර් එකක දුවන ඇප් එකක් අනිත් කන්ටේනර් වලටවත්, host system එකටවත් බලපෑමක් කරන්නේ නැහැ. එකක ප්‍රශ්නයක් ආවොත් අනිත් ඒවට බලපාන්නේ නැහැ.
  4. සම්පත් කාර්යක්ෂමතාව (Resource Efficiency) 🌱: VMs වලට වඩා ගොඩක් අඩු RAM, CPU පාවිච්චි කරන්නේ. එකම hardware එකේ කන්ටේනර් ගොඩක් run කරන්න පුළුවන්.
  5. οπουδήποτε (Portability) 🌍: ඩොකර් install කරලා තියෙන ඕනම මැෂින් එකක (Windows, macOS, Linux, Cloud) කිසිම වෙනසක් නැතුව කන්ටේනර් run කරන්න පුළුවන්.
  6. ප්‍රසාරණය (Scalability) 📈: ඇප් එකට එන traffic එක වැඩිවෙනකොට ලේසියෙන්ම කන්ටේනර් ගාන වැඩි කරලා load එක balance කරන්න පුළුවන්.


🛠️ ඩොකර් පාවිච්චි වෙන්නේ මොනවටද? (Use Cases)

  • වෙබ් ඇප්ලිකේෂන් Development සහ Deployment 🌐: Web servers (Nginx, Apache), databases (MySQL, PostgreSQL), backend (Node.js, Python, Java), frontend (React, Angular) වගේ හැමදේම කන්ටේනර් වල දුවවන්න පුළුවන්.
  • මයික්‍රොසර්විසස් (Microservices) 🧩: ලොකු ඇප්ලිකේෂන් එකක් පොඩි, ස්වාධීන සර්විස් වලට කඩලා, එක එක සර්විස් එක වෙනම කන්ටේනර් එකක deploy කරන්න ඩොකර් නියමයි.
  • CI/CD Pipelines (Continuous Integration/Continuous Deployment) 🔄: කෝඩ් එක commit කරපු ගමන් auto build වෙලා, test වෙලා, deploy වෙන process එක smooth කරන්න ඩොකර් උදව් වෙනවා.
  • ඩේටා සයන්ස් (Data Science) 📊: Analysis tools, Jupyter notebooks, machine learning models වගේ දේවල් share කරන්න සහ reproduce කරන්න ලේසියි.
  • ටෙස්ටින් පරිසරයන් (Testing Environments) 🧪: එක එක version වලින්, එක එක database එක්ක ඇප් එක test කරන්න ඕන නම්, ඉක්මනට ඒ environment එක කන්ටේනර් එකකින් හදාගන්න පුළුවන්.


🏁 පටන් ගන්නේ කොහොමද? (Getting Started)

  1. Docker Desktop Install කරන්න: ඔයාගේ Windows, macOS, හෝ Linux මැෂින් එකට Docker Desktop software එක එයාලගේ official website එකෙන් download කරලා install කරගන්න. 💻
  2. Command Line එක Open කරන්න: Terminal එකක් හරි Command Prompt එකක් හරි open කරගන්න.
  • මූලික Commands ටිකක් Test කරන්න:docker --version: ඩොකර් install වෙලාද, version එක මොකක්ද බලන්න.
  • docker run hello-world: ඩොකර් වැඩද කියලා බලන්න simple කන්ටේනර් එකක් run කරන්න.
  • docker pull ubuntu: Ubuntu Linux ඉමේජ් එක Docker Hub එකෙන් download කරගන්න.
  • docker images: ඔයාගේ මැෂින් එකේ තියෙන ඉමේජ් ලිස්ට් එක බලන්න.
  • docker ps: දැනට run වෙන කන්ටේනර් ලිස්ට් එක බලන්න.
  • docker build -t my-app .: ඔයාගේ Dockerfile එක තියෙන directory එකේ ඉඳන් අලුත් ඉමේජ් එකක් build කරන්න.
  • docker run my-app: ඔයා හදපු ඉමේජ් එකෙන් කන්ටේනර් එකක් run කරන්න. ▶️🔨👀


🎉 අවසාන වශයෙන්...

ඩොකර් කියන්නේ අද කාලේ software development වල නැතුවම බැරි ටූල් එකක්. ඒකෙන් developer ලගේ ජීවිතය ගොඩක් පහසු කරනවා වගේම, ඇප්ලිකේෂන් හදන process එකත් ගොඩක් කාර්යක්ෂම කරනවා. මුලදී ටිකක් සංකීර්ණයි වගේ පෙනුනට, ටිකෙන් ටික ඉගෙන ගන්නකොට ඒකෙ තියෙන වටිනාකම තේරෙයි. 💪


Rasanjana

Rasanjana

Member since 2025-04-09 13:55:06

Comments

Please login to post a comment.

No comments yet. Be the first to comment!