- 1 1. හැඳින්වීම
- 2 2. Ubuntu හි Docker ස්ථාපනය කිරීම
- 3 3. Docker Images හි මූලික ක්රියාකාරකම්
- 4 4. Dockerfile සමඟ අභිරුචි රූප (Images) නිර්මාණය
- 5 5. Ubuntu කන්ටේනර් වල ජපන් පරිසරය සකසීම
- 6 6. Docker රූප (Images) සුමට කිරීම සහ කුඩා කිරීම
- 7 7. ප්රායෝගික උදාහරණය: Ubuntu කොන්ටේනර්ස් තුළ යෙදුම් සංවර්ධනය
- 8 8. නිතර අසන ප්රශ්න & ගැටළු විසඳුම්
1. හැඳින්වීම
Docker යනු මොකක්ද?
Docker යනු container-පදනම් virtualization technology භාවිතා කරමින් applications කාර්යක්ෂමව විකාශනය, විතරණය සහ ධාවනය කිරීම සඳහා භාවිතා වන platform එකකි. සාම්ප්රදායික virtual machines (VMs) වලින් වෙනස්ව, containers host OS kernel එක බෙදාගනී, වේගවත් startup සහ අඩු resource consumption සඳහා ඉඩ සලසයි.
Ubuntu හි Docker භාවිතා කිරීමේ වාසි
Ubuntu යනු Docker සමඟ ශක්තිමත් compatibility ඇති Linux distributions වලින් එකකි. ප්රධාන හේතු මෙසේ වේ:
- අධිකාරී සහාය : Docker Ubuntu සඳහා අධිකාරී සහාය දක්වයි, official repository ඔස්සේ පහසුවෙන් ස්ථාපනය කිරීමට ඉඩ සලසයි.
- ස්ථාවර Package Management : Ubuntu හි APT package manager version management සරල කරයි.
- විස්තීර්ණ Community Support : Ubuntu හි විශාල global user base එකක් ඇති නිසා, ගැටලු ඇති වූ විට troubleshooting පහසු වේ.
මෙම ලිපියෙන් ඔබ ඉගෙන ගන්නා දේ
මෙම මාර්ගෝපදේශය පහත තේමා පියවරෙන් පියවරට පැහැදිලි කරයි:
- Ubuntu හි Docker ස්ථාපනය කිරීමේ ක්රමය
- Docker images සඳහා මූලික ක්රියාකාරකම්
- Dockerfile භාවිතා කරමින් custom images නිර්මාණය කිරීම
- Ubuntu container එකක Japanese locale සකස් කිරීම
- Docker images optimize කිරීම සහ අවම කිරීම
- Ubuntu containers තුළ applications විකාශනය කිරීම
- සුලභ දෝෂ සහ troubleshooting
භාවිතාව ආරම්භකයින්ට මෙන්ම උසස් පරිශීලකයින්ට ද ගුණදායක වන content එකකි, එබැවින් ඕනෑම අවධියකදී reference කරන්න.
2. Ubuntu හි Docker ස්ථාපනය කිරීම
Official Repository භාවිතා කරමින් Docker ස්ථාපනය කිරීම
Ubuntu හි, official repository භාවිතා කරමින් Docker පහසුවෙන් ස්ථාපනය කළ හැකිය. ඔබේ environment සකස් කිරීම සඳහා පහත පියවර අනුගමනය කරන්න.
1. පවතින Docker Packages ඉවත් කිරීම
Ubuntu හි docker.io නම් package එකක් ඇතුළත් විය හැකි අතර, එය පැරණි version එකක් විය හැකිය. නවතම Docker ස්ථාපනය කිරීමට පෙර එය ඉවත් කරන්න.
sudo apt remove docker docker-engine docker.io containerd runc
2. අවශ්ය Packages ස්ථාපනය කිරීම
ස්ථාපනයට පෙර dependency packages ස්ථාපනය කරන්න.
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
3. Official Docker Repository එක එකතු කිරීම
Docker හි official GPG key එක එකතු කර repository configure කරන්න.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. Docker ස්ථාපනය කිරීම
Repository එකතු කළ පසු, Docker ස්ථාපනය කරන්න.
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
5. ස්ථාපනය තහවුරු කිරීම
Version information පෙන්වීමෙන් Docker නිවැරදිව ස්ථාපිත වූ බව පරීක්ෂා කරන්න.
docker --version
ස්ථාපනයෙන් පසු මුල් සැකසුම්
1. Docker Service ආරම්භ කිරීම සහ Enable කිරීම
Docker service ආරම්භ කර boot වෙලාවේ automatic startup enable කරන්න.
sudo systemctl start docker
sudo systemctl enable docker
2. Non-Root Users ට Docker ධාවනයට ඉඩ සැලසීම
Default වශයෙන් root පමණක් Docker ධාවනය කළ හැකිය. සාමාන්ය users ට Docker commands execute කිරීමට ඉඩ සලසන්න.
sudo usermod -aG docker $USER
Changes apply කිරීමට log out වී log back in වන්න.
3. Docker Operation පරීක්ෂා කිරීම
සාමාන්ය user account එකකින් hello-world container එක ධාවනය කරන්න.
docker run hello-world
Output එකේ “Hello from Docker!” ඇතුළත් නම්, ස්ථාපනය සාර්ථක වී ඇත.

3. Docker Images හි මූලික ක්රියාකාරකම්
Docker Image එකක් යනු මොකක්ද?
Docker image එක containers නිර්මාණය කිරීම සඳහා template එකක් ලෙස ක්රියා කරයි. Ubuntu-පදනම් Docker image එකක් භාවිතා කරමින්, ඔබට ඉක්මනින් Ubuntu environment එකක් ආරම්භ කළ හැකිය.
Docker Hub වෙතින් Ubuntu Images Pull කිරීම
Docker Hub numerous official Docker images සපයයි. Ubuntu image එක download කිරීමට, run කරන්න:
docker pull ubuntu
Containers ආරම්භ කිරීම සහ නවත්වීම
Download කළ Ubuntu image එක භාවිතා කර container එක ආරම්භ කරන්න:
docker run -it ubuntu bash
මෙය Ubuntu කන්ටේනරය තුළ ශෙල් එකක් විවෘත කරයි, ඔබට එය තුළ ක්රියා කිරීමට ඉඩ සලසයි.
කන්ටේනර් ලැයිස්තුව
දැන් ක්රියාත්මක වන කන්ටේනර් පෙන්වන්න:
docker ps
නවතා ඇති කන්ටේනර් ඇතුළුව සියලු කන්ටේනර් පෙන්වන්න:
docker ps -a
කන්ටේනර් නවත්වීම සහ ඉවත් කිරීම
ක්රියාත්මක කන්ටේනර් එකක් නවත්වන්න:
docker stop [container ID or name]
අවශ්ය නොවන කන්ටේනර් එකක් ඉවත් කරන්න:
docker rm [container ID or name]
Docker රූප (Images) කළමනාකරණය
බාගත කර ඇති Docker රූප ලැයිස්තුව:
docker images
රූපයක් ඉවත් කරන්න:
docker rmi [image ID]
4. Dockerfile සමඟ අභිරුචි රූප (Images) නිර්මාණය
Dockerfile කියන්නේ මොනවාද?
Dockerfile යනු Docker රූප (images) සාදීමට භාවිතා කරන වින්යාස ගොනුවකි. Dockerfile තුළ ලියන උපදෙස් මත පදනම්ව ඔබට අභිරුචි Docker රූප (images) නිර්මාණය කළ හැක. මෙය සංවර්ධන පරිසර එකතු කිරීම හෝ අවශ්ය පැකේජ ඇතුළත් රූප (images) සෑදීමට ඉඩ සලසයි.
Dockerfile හි මූලික ව්යවස්ථාව
Dockerfile එක සාමාන්යයෙන් පහත කමාන්ඩ් (commands) ඇතුළත් කරයි:
| Command | Description |
|---|---|
FROM | Specifies the base image |
RUN | Executes commands to build the image |
COPY | Copies files into the container |
WORKDIR | Sets the working directory |
CMD | Default command executed when the container starts |
ENTRYPOINT | Defines the entry point of the container |
අභිරුචි Ubuntu-අධාරිත රූපයක් (Image) නිර්මාණය
අභිරුචි Ubuntu-අධාරිත Docker රූපයක් (Image) සෑදීමට පහත පියවර අනුගමනය කරන්න.
1. වැඩ කරන ෆෝල්ඩරයක් (Directory) සාදන්න
පළමුව, නව ව්යාපෘති ෆෝල්ඩරයක් සාදලා එයට යන්න.
mkdir my-ubuntu-image
cd my-ubuntu-image
2. Dockerfile එකක් සාදන්න
ෆෝල්ඩරය තුළ Dockerfile එකක් සාදලා පහත අන්තර්ගතය ලියන්න:
# Base Ubuntu official image
FROM ubuntu:latest
# Maintainer information (optional)
LABEL maintainer="your-email@example.com"
# Update package list and install basic tools
RUN apt update && apt install -y curl vim git
# Set working directory
WORKDIR /workspace
# Default command when the container starts
CMD ["bash"]
3. Docker රූපය (Image) ගොඩනඟන්න
ඔබේ Dockerfile එකෙන් අභිරුචි රූපයක් (Image) ගොඩනඟන්න:
docker build -t my-ubuntu-image .
-t විකල්පය රූපයට (Image) නාමයක් ලබා දෙයි.
4. රූපය (Image) තහවුරු කරන්න
ඔබ නවතම ගොඩනඟා ඇති රූපය (Image) පරීක්ෂා කරන්න:
docker images
5. කන්ටේනරයක් (Container) ධාවනය කරන්න
අභිරුචි රූපයෙන් (Image) කන්ටේනරයක් (Container) ආරම්භ කරන්න:
docker run -it my-ubuntu-image
මෙම රූපය (Image) තුළ curl සහ vim වැනි මෙවලම් ඇතුළත් වේ.
5. Ubuntu කන්ටේනර් වල ජපන් පරිසරය සකසීම
පෙරනිමි Ubuntu රූපය (image) ඉංග්රීසි පරිසරයක් භාවිතා කරයි. ජපන් භාෂාව භාවිතා කිරීමට අතිරේක වින්යාසයක් අවශ්ය වේ.
ජපන් භාෂා (Locale) සකසීම
Ubuntu කන්ටේනරයක ජපන් දර්ශනය සහ ඇතුළත් කිරීම සක්රිය කිරීමට, ජපන් locale එක ස්ථාපනය කරන්න.
1. අවශ්ය පැකේජ ස්ථාපනය කරන්න
apt update
apt install -y language-pack-ja locales
2. Locale එක වින්යාස කරන්න
locale එක ජනනය කර යෙදවන්න:
locale-gen ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8
3. සැකසුම් යෙදවන්න
export LANG=ja_JP.UTF-8
ජපන් ඇතුළත් කිරීම සකසීම
ටර්මිනලයේ ජපන් අක්ෂර ඇතුළත් කිරීම සඳහා ibus-mozc ස්ථාපනය කරන්න:
apt install -y ibus-mozc
GUI යෙදුම් භාවිතා කරනවා නම්, පහත පරිසර විචල්ය (environment variables) එකතු කරන්න:
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
GUI යෙදුම් භාවිතය
Docker කන්ටේනරයක් තුළ GUI යෙදුම් ධාවනය කිරීමට, හෝස්ට් යන්ත්රයේ X server එකක් භාවිතා කරන්න.
X11 සක්රිය කර කන්ටේනරය ධාවනය කරන්න:
docker run -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix my-ubuntu-image
6. Docker රූප (Images) සුමට කිරීම සහ කුඩා කිරීම
Docker රූප (Images) සුමට කිරීමෙන් කන්ටේනර ආරම්භ වේගය වැඩි කර ගබඩා භාවිතය අඩු කළ හැක. මෙන්න ලාංඡන රූප (lightweight images) සෑදීමට කිහිපයක් තාක්ෂණික ක්රම.
ලාංඡන Ubuntu-අධාරිත රූපයක් (Image) සෑදීමේ ක්රම
පෙරනිමි ubuntu:latest රූපය (image) සාපේක්ෂව විශාලයි. ubuntu:minimal වැනි ලාංඡන විකල්පයක් භාවිතා කිරීමෙන් කන්ටේනර ප්රමාණය අඩු කරයි.
FROM ubuntu:minimal
තවත් විකල්පයක් ලෙස Alpine Linux භාවිතා කළ හැක, එය Ubuntu ට වඩා ගණනාවක් කුඩායි.
FROM alpine:latest
RUN apk add --no-cache bash curl
Alpine භාවිතා කිරීමෙන් රූප ප්රමාණය සිය ගණනක් මැගාබයිට් (MB) අඩු කළ හැක.
අවශ්ය නොවන ගොනු ඉවත් කිරීමෙන් රූප ප්රමාණය අඩු කිරීම
%%CODEBLOCK19%%
ඔබට apt-get මගින් සෑදූ අත්යවශ්ය නොවන කෑෂ් ගොනු මකා දමා රූපයේ ප්රමාණය අඩු කළ හැක.
RUN apt update && apt install -y curl vim \
&& apt clean \
&& rm -rf /var/lib/apt/lists/*
විශේෂයෙන්, rm -rf /var/lib/apt/lists/* විධානය පැකේජ ලැයිස්තු සහ භාවිත නොකළ දත්ත ඉවත් කරයි.
බහු-පියවර ගොඩනැගීම් භාවිත කිරීම
බහු-පියවර ගොඩනැගීම් ඔබට ගොඩනැගීමේ ක්රියාවලිය තුළ පමණක් මෙවලම් භාවිතා කිරීමට ඉඩ දෙන අතර අවසාන රූපය සුළු බරින් තබයි.
FROM ubuntu as builder
RUN apt update && apt install -y gcc
FROM ubuntu:minimal
COPY --from=builder /usr/bin/gcc /usr/bin/gcc
මෙම ආකාරයෙන්, ඔබ අවසාන රූපයේ සංවර්ධන මෙවලම් ඇතුළත් කිරීමෙන් වැළකී, ඉතා කුඩා පදනමක් ලබා ගනී.
7. ප්රායෝගික උදාහරණය: Ubuntu කොන්ටේනර්ස් තුළ යෙදුම් සංවර්ධනය
මෙම කොටස Ubuntu කොන්ටේනර්ස් තුළ සංවර්ධන පරිසර සැකසීමේ ක්රමය හඳුන්වා දෙයි.
Python සංවර්ධන පරිසරයක් සැකසීම
Ubuntu කොන්ටේනර් එකක Python සංවර්ධන පරිසරයක් සැකසීමට පහත Dockerfile එක සාදන්න:
FROM ubuntu:latest
RUN apt update && apt install -y python3 python3-pip
CMD ["python3"]
රූපය ගොඩනඟා කොන්ටේනර් එක ධාවනය කරන්න:
docker build -t python-dev .
docker run -it python-dev
මෙම පරිසරය ඔබට python3 විධානය භාවිතා කර ස්ක්රිප්ට් සංවර්ධනය සහ පරීක්ෂණය කිරීමට ඉඩ සලසයි.
Node.js සංවර්ධන පරිසරයක් සැකසීම
Node.js සංවර්ධන පරිසරයක් සැකසීමට, පහත Dockerfile එක භාවිතා කරන්න:
FROM ubuntu:latest
RUN apt update && apt install -y nodejs npm
CMD ["node"]
ගොඩනඟා කොන්ටේනර් එක ධාවනය කරන්න:
docker build -t node-dev .
docker run -it node-dev
මෙම පරිසරය node විධානය මඟින් JavaScript ක්රියාත්මක කිරීම සහ යෙදුම් සංවර්ධනය සක්රිය කරයි.
8. නිතර අසන ප්රශ්න & ගැටළු විසඳුම්
Docker භාවිතා කිරීම විවිධ ගැටළු ඇති කරවිය හැක. පහත සාමාන්ය ප්රශ්න සහ සාමාන්ය විසඳුම් ඇත.
Docker සහ වර්චුවල් යන්ත්ර අතර වෙනස
- Docker : හෝස්ට් OS කර්නලය බෙදා ගනිමින්, සුළු බර සහ වේගවත් කොන්ටේනර් ආරම්භයක් ලබා දෙයි.
- වර්චුවල් යන්ත්ර (VMs) : සෑම VM එකක්ම තමන්ගේම OS එකක් ඇතුළත් කරයි, එමනිසා වැඩි සම්පත් භාවිතය සහ මන්දගාමී ආරම්භයක් වේ.
Docker සම්පත් උපරිම කිරීමේදී ඉහළ ප්රදර්ශනයක් දක්වා, සංවර්ධන පරිසර සහ ස්වයංක්රීය නිකුත් කිරීම සඳහා සුදුසු වේ.
Ubuntu කොන්ටේනර්ස් තුළ දත්ත රැඳවීම
කොන්ටේනර් එක නවත්වූ පසුද දත්ත රැඳවීමට, වොලියුම් මවුන්ට් භාවිතා කරන්න:
docker run -v my_data:/data ubuntu
කොන්ටේනර් එක මකා දමුවත්, my_data වොලියුම තුළ සුරැකි දත්ත නැවත භාවිතා කළ හැක.
සාමාන්ය දෝෂ සහ විසඳුම්
1. permission denied දෝෂය
Docker ධාවනය කිරීමට උත්සාහ කරන විට permission denied පණිවුඩයක් දැකෙනවා නම්, ඔබේ පරිශීලකයා docker කණ්ඩායමේ සාමාජික නොවිය හැක.
පරිශීලකයා Docker කණ්ඩායමට එක් කරන්න:
sudo usermod -aG docker $USER
වෙනස්කම් ක්රියාත්මක කිරීමට ලොග් අවුට් කර නැවත ලොග් ඉන් කරන්න.
2. image not found දෝෂය
Docker Hub එකෙන් රූපයක් ඉවත් කර ඇත්නම්, ලබා ගැනීමේදී නවතම ටැගයක් සඳහන් කරන්න:
docker pull ubuntu:22.04
නිශ්චිත සංස්කරණයක් සඳහන් කිරීමෙන් නිවැරදි රූපය ලබා ගැනීමට සහතික වේ.
