ThishVerse Logo
THISHVERSE
HomeBlogAboutContact
Back to all posts
DevOps

Docker කියන්නේ මොකක්ද?

Docker කියන්නේ මොකක්ද, containers වැඩ කරන්නේ කොහොමද?

HHirun Thishakya
August 31, 2026
6 min read
Docker කියන්නේ මොකක්ද?

ඔයා application එකක් හදලා, ඒක ඔයාගේ computer එකේ හොඳටම වැඩ කළත් වෙන computer එකකදී වැඩ නොකරන situation එකකට මුහුණ දීලා තියෙනවද?

සමහරවිට developersලා කියන මේ famous phrase එක අහලා ඇති:

It works on my machine!

මේ වගේ ප්‍රශ්න ඇති වෙන්නේ application එකක් තනිවම වැඩ කරන්නේ නැති නිසා. ඒකට programming language versions, libraries, dependencies, system configurations වගේ දේවල් ගොඩක් අවශ්‍ය වෙනවා.

Docker කියන්නේ මේ වගේ environment-related problems අඩු කරගන්න භාවිතා කරන technology එකක්.


Docker වලින් වෙන්නෙ මොකක්ද?

Docker කියන්නේ application එකක්, එය run වීමට අවශ්‍ය dependencies සහ environment එක සමඟ package කරලා, ඒක isolated container එකක් තුළ run කිරීමට ඉඩ දෙන platform එකක්.

සරලව කිව්වොත්:

Docker මඟින් application එකක් වෙනස් environments වල වඩාත් consistent ලෙස run කරන්න පුළුවන්.

උදාහරණයක් විදිහට ඔයා Node.js application එකක් හදනවා කියලා හිතමු.

ඒ application එකට:

Node.js version
npm packages
Environment variables
System libraries
Configuration

වගේ දේවල් අවශ්‍ය වෙන්න පුළුවන්.

ඔයාගේ computer එකේ මේ හැමදේම නිවැරදිව තිබුණත්, වෙන developer කෙනෙකුගේ computer එකේ versions වෙනස් නම් application එක වෙනස් ආකාරයට වැඩ කරන්න හෝ සම්පූර්ණයෙන්ම fail වෙන්න පුළුවන්.

Docker මඟින් application එකට අවශ්‍ය environment එකත් සමඟ application එක package කරලා container එකක් තුළ run කරන්න පුළුවන්.

Application
     +
Dependencies
     +
Configuration
     ↓
Docker Image
     ↓
Docker Container
     ↓
Application runs

Standardized Box එකක්

Docker තේරුම්ගන්න ලේසිම විදිහක් තමයි මේ analogy එක.

ඔයා ගෙදරදී කෑමක් හදනවා කියලා හිතන්න.

ඒක හොඳට හැදෙන්නේ ඔයාට:

  • හරි ingredients තියෙන නිසා

  • හරි cooking equipment තියෙන නිසා

  • හරි temperature එක තියෙන නිසා

  • හුරුපුරුදු environment එකක් තියෙන නිසා

නමුත් ඒ කෑමම ඔයාගේ යාළුවෙකුගේ ගෙදර හදන්න ගියොත්?

එයාගේ kitchen එකේ equipment වෙනස් වෙන්න පුළුවන්. Ingredients වෙනස් වෙන්න පුළුවන්. Cooking conditions වෙනස් වෙන්න පුළුවන්.

ඒ වෙනුවට ඒ කෑම හදන්න අවශ්‍ය හැමදේම standardized box එකකට දාලා අරගෙන ගියා කියලා හිතන්න.

ඒ box එක වෙන kitchen එකකට අරගෙන ගියත්, අවශ්‍ය දේවල් එකටම තියෙන නිසා එකම result එක අරගන්න පහසුයි.

Docker එකත් ටිකක් මේ වගේ.

Box එක = Container එකකට

ඒක ඇතුළේ application එකට අවශ්‍ය software environment එක තියෙනවා.

ඇත්තටම Docker එක සම්පූර්ණ computer එකක් container එකකට දානවා නෙවෙයි. Application එකට අවශ්‍ය software සහ dependencies එකතු කරලා isolated environment එකක් හදලා දෙනවා.


Docker Container කියන්නේ මොකක්ද?

Container එකක් කියන්නේ application එකක් එයට අවශ්‍ය components සමඟ isolated environment එකක run වෙන එකක්.

උදාහරණයක්:

┌─────────────────────────┐
│     Docker Container    │
│                         │
│    Your Application     │
│    Node.js              │
│    Dependencies         │
│    Configuration        │
└─────────────────────────┘

මේ නිසා application එක developer ගේ computer එකේ configuration එක මත සම්පූර්ණයෙන්ම depend වීම අඩු වෙනවා.

ඒ application එක වෙනත් environments වලට move කිරීමත් පහසු වෙනවා.

උදාහරණයක්:

Developer PC
     ↓
Docker Container
     ↓
Testing Server
     ↓
Production Server

මේ stages වලදී එකම container image එක භාවිතා කරන්න පුළුවන්.


Docker Image කියන්නේ මොකක්ද?

Docker ඉගෙනගන්නකොට නිතරම හමුවෙන terms දෙකක් තමයි:

Image සහ Container

මේ දෙක එකම දෙයක් නෙවෙයි.

Docker Image

Docker Image කියන්නේ container එකක් create කිරීමට භාවිතා කරන packaged template එකක්.

Docker Container

Docker Container කියන්නේ ඒ image එකෙන් create කරලා run කරන instance එක.

මේක recipe එකකට සමාන කරන්න පුළුවන්.

Recipe
  ↓
Docker Image
  ↓
Running Meal
  ↓
Docker Container

එකම image එකෙන් containers කිහිපයක් create කරන්නත් පුළුවන්.

             Docker Image
                  ↓
       ┌──────────┼──────────┐
       ↓          ↓          ↓
  Container   Container   Container

ඒ containers එකිනෙකට independent ලෙස run වෙන්න පුළුවන්.


ඔයා application එකක් develop කරන්නේ:

Node.js 22
Express
MongoDB
Several npm packages

භාවිතා කරලා කියලා හිතන්න.

ඔයාගේ computer එකේ application එක හොඳට වැඩ කරනවා.

නමුත් ඔයාගේ teammate ගේ computer එකේ:

Node.js 18
Different package versions
Different configuration

තියෙනවා.

දැන් application එකේ behavior එක වෙනස් වෙන්න පුළුවන්.

Environment එකේ වෙනස්කම් නිසා ඇති වෙන ප්‍රශ්න හොයන්න developer කෙනෙකුට පැය ගණනක් යන්නත් පුළුවන්.

Docker භාවිතා කරලා application එකට අවශ්‍ය environment එක define කරලා image එකක් create කරන්න පුළුවන්.

ඊට පස්සේ teammate ටත් ඒ same container එක run කරන්න පුළුවන්.

Your Computer
     ↓
┌─────────────────┐
│ Docker Container│
│ Node.js 22      │
│ Dependencies    │
│ Your App        │
└─────────────────┘
   SAME

Teammate's Computer ↓ ┌─────────────────┐ │ Docker Container│ │ Node.js 22 │ │ Dependencies │ │ Your App │ └─────────────────┘

මේක environment-related differences අඩු කරන්න ගොඩක් උපකාරී වෙනවා.


Docker සහ Virtual Machine අතර වෙනස

ගොඩක් දෙනෙක් අහන ප්‍රශ්නයක් තමයි:

“Docker කියන්නේ Virtual Machine එකක්ද?”

ඇත්තටම නෑ.

මේ දෙකම isolated enviroments ලබාදෙනවා. නමුත් ඒවා වැඩ කරන ආකාරය වෙනස්.

Virtual Machine (VM) එකක සාමාන්‍යයෙන් සම්පූර්ණ guest operating system එකක් තියෙනවා.

Hardware
↓
Host OS
↓
Hypervisor
↓
┌──────────────┐
│ VM           │
│ Application  │
│ Libraries    │
│ Guest OS     │
└──────────────┘

┌──────────────┐ │ VM │ │ Application │ │ Libraries │ │ Guest OS │ └──────────────┘

Docker containers සාමාන්‍යයෙන් host operating system එකේ kernel එක share කරගන්න ගමන්ම applications සහ ඒවායේ environments isolate කරනවා.

Hardware
↓
Host OS
↓
Docker Engine
↓
┌──────────────┐
│ Container    │
│ Application  │
│ Dependencies │
└──────────────┘

┌──────────────┐ │ Container │ │ Application │ │ Dependencies │ └──────────────┘

ඒ නිසා containers වලට සාමාන්‍යයෙන් සම්පූර්ණ guest operating system එකක් අවශ්‍ය නොවන නිසා, traditional VMs වලට වඩා lightweight වගේම ඉක්මනින් start වෙන්නත් පුළුවන්.


Docker භාවිතා කරන අවස්ථා මොනවද?

Docker software development වල විවිධ stages වලදී ප්‍රයෝජනවත්.

1. Development

Team එකේ developers ලාට එකම environment එකක් භාවිතා කරන්න පුළුවන්.

හැම developer කෙනෙකුටම:

මේ version එක install කරන්න, මේ library එක configure කරන්න, මේ setting එක වෙනස් කරන්න…

කියනවා වෙනුවට project එකේ Docker configuration එක මඟින් අවශ්‍ය environment එක define කරන්න පුළුවන්.


2. Testing

Testing environments වඩාත් consistent කරන්න Docker භාවිතා කරන්න පුළුවන්.

Code
↓
Docker Container
↓
Run Tests
↓
Results

මේක developer computers සහ testing servers අතර තියෙන environment වෙනස්කම් නිසා ඇතිවන problems අඩු කරන්න උපකාරී වෙනවා.


3. Deployment

Application එක container එකක් විදිහට package කළාම ඒ container එක environments අතර move කිරීම පහසු වෙනවා.

උදාහරණයක්:

Development
↓
Testing
↓
Production

මේ නිසා deployment process එක වඩාත් predictable කරගන්න පුළුවන්.


4. Microservices

Modern applications බොහෝ විට smaller services කිහිපයකට divide කරනවා.

මේවාට microservices කියනවා.

උදාහරණයක්:

┌────────────────┐
│ User Service   │
└────────────────┘

┌────────────────┐ │ Payment Service│ └────────────────┘

┌────────────────┐ │ Product Service│ └────────────────┘

මේ සෑම service එකක්ම වෙනම container එකක run කරන්න පුළුවන්.

ඒ නිසා services වෙන වෙනම develop, deploy සහ scale කරන්න පහසු වෙනවා.


5. CI/CD

Docker CI/CD pipelines වලදීත් බහුලව භාවිතා වෙනවා.

CI/CD කියන්නේ Continuous Integration සහ Continuous Delivery/Deployment.

සරල workflow එකක්:

Developer
↓
Push Code
↓
CI/CD Pipeline
↓
Build Docker Image
↓
Run Tests
↓
Deploy

Application එක consistent environment එකක test කරන්න පුළුවන් නිසා automated software delivery process එක වඩාත් reliable කරන්න Docker උපකාරී වෙනවා.


Docker Engine කියන්නේ මොකක්ද?

Docker Engine කියන්නේ Docker containers build සහ run කිරීමට අවශ්‍ය core technology එක.

සරලව:

Your Command
↓
Docker CLI
↓
Docker Engine
↓
Containers

ඔයා Docker command එකක් භාවිතා කරලා container එකක් start කළාම, Docker tooling Docker Engine සමඟ communicate කරනවා. Docker Engine එක container එක manage කරනවා.


Docker application එකට අවශ්‍ය දේවල් දන්නේ කොහොමද?

මෙතනදී Dockerfile එක වැදගත් වෙනවා.

Dockerfile කියන්නේ Docker image එකක් build කිරීමට අවශ්‍ය instructions තියෙන text file එකක්.

සරල example එකක්:

FROM node:22

WORKDIR /app

COPY package*.json ./

RUN npm install

COPY . .

CMD ["npm", "start"]

මේ instructions මඟින් Docker ට:

  • භාවිතා කළ යුතු base environment එක

  • Application එක තිබිය යුතු location එක

  • Copy කළ යුතු files

  • Install කළ යුතු dependencies

  • Application එක start කරන command එක

වගේ දේවල් කියනවා.

ඊට පස්සේ Docker ඒ instructions භාවිතා කරලා image එක build කරනවා.

Dockerfile
↓
Docker Build
↓
Docker Image
↓
Docker Container

Real Project එකක Docker

ඔයා online store එකක් build කරනවා කියලා හිතන්න.

Application එකේ:

Frontend
↓
Backend API
↓
Database

වගේ components තියෙන්න පුළුවන්.

Docker භාවිතා කරලා මේවා වෙන වෙනම containers වල run කරන්න පුළුවන්.

┌──────────────────┐
│ Frontend         │
│ Container        │
└──────────────────┘

┌──────────────────┐ │ Backend API │ │ Container │ └──────────────────┘

┌──────────────────┐ │ Database │ │ Container │ └──────────────────┘

මේ containers Docker network එකක් හරහා එකිනෙකා සමඟ communicate කරන්නත් පුළුවන්.

Containers කිහිපයක් එකට manage කිරීමට Docker Compose භාවිතා කරන්නත් පුළුවන්.

Tags:Docker ContainerDockerDocker ImageDocker ComposeCI/CDDockerfileMicroservicesDevOpsContainersCloud Computing

Did you find this article helpful?

Related Articles

View Post
Azure වලින් මොනවද කරන්න පුළුවන්?
Cloud Computing
October 7, 2026

Azure වලින් මොනවද කරන්න පුළුවන්?

Microsoft Azure කියන්නේ විවිධ විදිහෙ දේවල් ගොඩක් කරන්න පුලුවන් cloud platform එකක්.

View Post
මොනවද මේ Linux Shell වර්ග?
DevOpsFeatured
October 2, 2026

මොනවද මේ Linux Shell වර්ග?

Linux වල තියෙන Bash, Zsh, Fish, Dash වගේ Shells අතර වෙනස්කම්

View Post
Flutter සහ React Native
Programming
September 24, 2026

Flutter සහ React Native

Mobile App Development එකට හොද මොකක්ද?

ThishVerse Logo
THISHVERSE
|

© 2026 ThishVerse. All rights reserved.

PrivacyTerms
|By Thish
Comments (0)

Sign in to join the conversation

No comments yet. Be the first to comment!