Podman, Dockerfile, සහ Ubuntu භාවිතා කිරීම: ලිනක්ස් හි ආරක්ෂිත හා නවීන කන්ටේනර් කළමනාකරණය

目次

1. හැඳින්වීම

කන්ටේනර් තාක්ෂණයේ පරිණාමය සහ වැඩි වෙමින් පහසුකම

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

Docker යනු වඩාත්ම ප්‍රසිද්ධ කන්ටේනර් වේදිකාව වුවද, Podman යනු Docker හි නවීන විකල්පයක් ලෙස වැඩි අවධානය යොමු වෙමින් පවතී. Podman Docker හි ආදර්ශනානුකූල විධාන-රේඛා අතුරුමුහුණත (CLI) එකක් ලබා දෙන අතර, එහි daemonless සහ ලාභ සැලකිය යුතු ආකෘතිය සහ rootless (non-root) මෙහෙයුම් සඳහා සහාය ලෙස වෙන්වීමක් ලබා දෙයි.

“Podman + Dockerfile + Ubuntu” යනු ඇයි?

මෙම ලිපියෙහි, Podman, Dockerfile, සහ Ubuntu ඒකාබද්ධ කරමින් Linux හි නවීන කන්ටේනර් ක්‍රියාවලියන් සඳහා පැහැදිලි කිරීමක් ලබා දෙන්නෙමු.

  • Ubuntu යනු ආරම්භකයින්ගෙන් ආරම්භ වෙමින් දියුණු පරිශීලකයින් දක්වා සියලු දෙනා විසින් භාවිතා කරන ජනප්‍රිය Linux විතරණයක්,
  • Dockerfile යනු කන්ටේනර් රූප සංවිධානය සඳහා නිර්මාණ සැලසුම්පතක් ලෙස ක්‍රියා කරයි,
  • සහ Podman යනු මෙම රූප නිර්මාණය කිරීම සඳහා නම්‍යශීලීව සහ ආරක්ෂිතව කළමනාකරණය කිරීමට නිර්මාණය කරන ඊළඟ පරම්පරාවේ මෙවලමකි.

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

අරමුණ සහ ඉලක්කගත පිළිවෙත්

මෙම ලිපියේ ඉලක්කය වන්නේ Ubuntu හි Podman සහ Dockerfile භාවිතයෙන් ප්‍රායෝගික කන්ටේනර් සංවිධානය සඳහා පැහැදිලි, පියවරෙන් පියවර මාර්ගෝපදේශයක් ලබා දීම යි.

මෙම ලිපිය ඉලක්ක කරන පාඨකයින් ලෙස:

  • Podman ගැන කුතුහලයෙන් යුතු Docker හි පළපුරුදු සංවර්ධකයින්
  • ආරක්ෂිත කන්ටේනර් කළමනාකරණය සොයන Ubuntu පරිශීලකයින්
  • ඔවුන්ගේ ක්‍රියාවලියට කන්ටේනර් තාක්ෂණය ඒකාබද්ධ කිරීමට උත්සාහ කරන ඉංජිනේරුවන්
  • Dockerfile ලිවීමට සහ Podman භාවිතයෙන් සංවිධානය කිරීමට උනන්දුවක් දක්වන ආරම්භකයින්

අපි මූලික දේවල් සිට ආරම්භ වෙමින්, දෝෂ නිවැරීම් ඉඟි සිට Docker සමග ප්‍රධාන වෙනස්කම් සහ අන්තර්ගතයට සංක්‍රමණය කිරීම දක්වා සියල්ල ආවරණය කරන්නෙමු.

2. Podman යනු මොකක්ද?

Podman හි දළ විශ්ලේෂණය

Podman (Pod Manager) යනු Red Hat මුල් කරගත් ප්‍රජාවක් විසින් සංවර්ධනය කරන ලද ඊළඟ පරම්පරාවේ කන්ටේනර් කළමනාකරණ මෙවලමකි. Docker මෙන්ම, එය OCI-ගැලපෙන කන්ටේනර් සංවිධානය, ධාවනය කිරීම සහ කළමනාකරණය කළ හැකි වුවද, එහි නිර්මාණය සහ ආකෘතිය සැලකිය යුතු ආකාරයෙන් වෙනස් වේ.

Podman හි විශාලතම විශේෂාංගය වන්නේ එය පසුබිම් daemon එකක් අවශ්‍ය නොවීම යි. මෙය ලාභ සහ ආරක්ෂිත මෙහෙයුම් සක්‍රිය කරයි. Podman rootless ආකාරය ද සහාය දක්වයි, එයින් සාමාන්‍ය පරිශීලකයින්ට ඉහළ හිමිකම් නොමැතිව කන්ටේනර් කළමනාකරණය කිරීමට හැකියාව ලැබේ. CLI Docker සමග ඉහළ ගැලපීමක් ඇති නිසා, බොහෝ විධාන ආදර්ශනානුකූල වේ.

Podman හි ප්‍රධාන විශේෂාංග

Podman හි සැලකිය යුතු සමහර විශේෂාංග මෙසේය:

Daemonless ආකෘතිය

Podman කන්ටේනර් කළමනාකරණය සඳහා පසුබිම් daemon (නිවාසී ක්‍රියාවලිය) රහිතව මෙහෙයුම් කරයි. මෙය සම්පත් කාර්යක්ෂම භාවිතයක් ඇති කරයි, අනවශ්‍ය පසුබිම් ක්‍රියාවලි රහිතව.

Rootless සහාය (හිමිකම් රහිත පරිශීලකයින්)

Podman සාමාන්‍ය පරිශීලකයින්ට පරිපාලක හිමිකම් නොමැතිව කන්ටේනර් ධාවනය කිරීමට සහ කළමනාකරණය කිරීමට ඉඩ සලසයි. මෙය බහු-පරිශීලක හෝ සේවාදායක පරිසරවල කන්ටේනර් ආරක්ෂිතව මෙහෙයුම් කිරීමට හැකි කරයි, ආරක්ෂාවේ අවදානම් සැලකිය යුතු ආකාරයෙන් අඩු කරයි.

Docker-ගැලපෙන CLI

Podman Docker හි ආදර්ශනානුකූල විධාන රූපකරණය භාවිතා කරයි. උදාහරණයක් ලෙස, පහත Docker විධාන Podman හි ආදර්ශනානුකූලව ක්‍රියා කරයි:

podman build -t myimage .
podman run -it myimage bash

මෙය Docker හි පුරුදු පරිශීලකයින්ට Podman වෙත සුමටව මාරු වීමට ඉඩ සලසයි.

Pod විශේෂාංගය

Podman Kubernetes හි “Pod” සංකල්පය භාවිතා කරයි, එයින් ඔබට බහු කන්ටේනර් එක තර්කානුකූල ඒකකයක් ලෙස කළමනාකරණය කිරීමට හැකියාව ලැබේ. මෙය Kubernetes සමග ගැලපීම වැඩි දියුණු කරයි සහ දේශීය සිට වලාකුළු පරිසරවලට සුමට සංක්‍රමණය සක්‍රිය කරයි.

Ubuntu සමග ගැලපීම

Podman Fedora සහ RHEL-ආධාරිත විතරණවල පුළුල් ලෙස භාවිතා වුවද, එය Ubuntu හි ස්ථායීව ධාවනය වේ. ඔබට එය නිල භාණ්ඩාගාරවලින් ස්ථාපනය කළ හැකි අතර, සැකසුම සරල ය. විශේෂයෙන්ම Ubuntu 20.04 LTS සිට, භාණ්ඩාගාර නඩත්තුව වැඩි දියුණු වී ඇති නිසා, භාවිතයේ බාධක අඩු වී ඇත.

3. Ubuntu හි Podman ස්ථාපනය කිරීම

ආරම්භ කිරීමට පෙර: ස්ථාපන පෙර පරීක්ෂා ලැයිස්තුව

Ubuntu හි Podman ස්ථාපනය කිරීමට පෙර, පළමුව ඔබේ Ubuntu අනුවාදය පරීක්ෂා කරන්න. Podman Ubuntu 20.04 LTS හෝ ඊට පසු අනුවාද සඳහා නිර්දේශ කරයි. පරණ අනුවාදවල නිල රෙපොසිටරියේ අවශ්‍ය පැකේජ නොතිබිය හැක.

පහත කමාන්ඩ් එක භාවිතා කර ඔබේ Ubuntu අනුවාදය පරීක්ෂා කරන්න:

lsb_release -a

Podman ස්ථාපනය කිරීම සඳහා sudo අධිකාරි අවශ්‍ය වේ. ඔබ rootless ප්‍රකාරය භාවිතා කිරීමට සැලසුම් කරත්නම්, මුලින්ම ස්ථාපනය සඳහා පරිපාලක අධිකාරි අවශ්‍ය වන බැවින්, ඒවා ඔබට ඇති බවට සහතික වන්න.

Podman ස්ථාපනය (Ubuntu නිල රෙපොසිටරිය)

Ubuntu 20.04, 22.04 හෝ ඊට පසු අනුවාදවල, APT භාවිතා කර Podman පහසුවෙන් ස්ථාපනය කළ හැක:

sudo apt update
sudo apt install -y podman

ස්ථාපනයෙන් පසු, සාර්ථකව සකස් කර ඇති බව තහවුරු කිරීමට අනුවාදය පරීක්ෂා කරන්න:

podman --version

නවතම අනුවාද ලබා ගැනීම (නිල PPA)

සාමාන්‍ය Ubuntu රෙපොසිටරියේ Podman පැකේජය නවතම නොවිය හැක. ඔබ නවතම විශේෂාංග අවශ්‍ය නම්, නිල Personal Package Archive (PPA) භාවිතා කරන්න:

. /etc/os-release
echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list
curl -L https://download.opensuse.org/repositories/devel:kubic:libcontainers:stable/xUbuntu_${VERSION_ID}/Release.key | sudo apt-key add -
sudo apt update
sudo apt install -y podman

මෙය ඔබට නවතම Podman නිකුතුවට ප්‍රවේශය ලබා දෙයි, Red Hat සහ Fedora පද්ධති සමඟ සමාන.

මූලික Podman ක්‍රියාකාරිත්ව පරීක්ෂාව

ස්ථාපනයෙන් පසු, ඉක්මන් පරීක්ෂාවක් ක්‍රියාත්මක කරන්න:

podman info

මෙම කමාන්ඩ් එක Podman අනුවාදය, වින්‍යාසය, සහ rootless ප්‍රකාරය වැනි සහාය දක්වන විශේෂාංග පෙන්වයි.

නිල Alpine Linux කන්ටේනරයක් ලබාගෙන ධාවනය කිරීම පරීක්ෂා කරන්න:

podman run --rm -it alpine sh

Shell සාර්ථකව ආරම්භ වූ නම්, ඔබේ Podman සැකසීම නිවැරදිව ක්‍රියා කරයි.

4. Dockerfile එක Podman සමඟ භාවිත කිරීම

Dockerfile කියන්නේ කුමක්ද?

Dockerfile යනු කන්ටේනර් රූප නිර්මාණය සඳහා සැලසුම් පත්‍රයක් වේ. එය මූලික රූපය, ස්ථාපනය කළ යුතු පැකේජ, පිටපත් කළ යුතු ගොනු, සහ අනෙකුත් උපදෙස් අනුක්‍රමයෙන් ලැයිස්තුගත කරන පෙළ ගොනුවකි.

Podman සහ Docker වැනි කන්ටේනර් මෙවලම් මෙම ගොනුව මත පදනම්ව ස්වයංක්‍රීයව සමගාමී පරිසරයක් සෑදිය හැක.

උදාහරණ උපදෙස්:

FROM ubuntu:22.04
RUN apt update && apt install -y curl
COPY ./app.sh /usr/local/bin/app.sh
CMD ["bash", "/usr/local/bin/app.sh"]

මෙය පැකේජ ස්ථාපනය, ස්ක්‍රිප්ට් පිටපත් කිරීම, සහ නිර්මාණය වූ රූපයේ පෙරනිමි ලෙස ධාවනය විය යුතු දේ නියම කරයි.

Dockerfile එක Podman සමඟ භාවිත කිරීම

Dockerfile භාවිතා කර Podman සමඟ කන්ටේනර් රූප නිර්මාණය කළ හැක, Docker සමඟ කරන ආකාරයටම.

1. නාමාවලිය සකස් කිරීම

ඔබේ ගොනු මෙසේ සකසන්න:

project/
├── Dockerfile
└── app.sh

app.sh සරල ස්ක්‍රිප්ට් එකක් විය හැක:

#!/bin/bash
echo "Hello from Podman container!"

ස්ක්‍රිප්ට් එක ක්‍රියාත්මක කළ හැකි ලෙස කරන්න:

chmod +x app.sh

2. Podman සමඟ ගොඩනැගීම

Dockerfile ඔබේ වත්මන් නාමාවලියේ තිබේ නම්, මෙය ක්‍රියාත්මක කරන්න:

podman build -t mypodmanapp .

මෙය mypodmanapp නමින් කන්ටේනර් රූපයක් සෑදේ.

3. ගොඩනැගීමේ ප්‍රතිඵල පරීක්ෂා කිරීම

නිර්මාණය වූ රූපය මෙසේ බලන්න:

podman images

4. කන්ටේනරය ධාවනය කිරීම

ඔබ ගොඩනැගූ රූපයෙන් කන්ටේනරයක් ආරම්භ කරන්න:

podman run --rm mypodmanapp

සියල්ල නිවැරදිව සකසා ඇත්නම්, ඔබට මෙය දැකගත හැක: Hello from Podman container!

Containerfile සමඟ වෙනස

Podman Containerfile නමින් ගොනු සහය දක්වයි, ඒවා Dockerfile සමඟ එකම ව්‍යවස්ථාව භාවිතා කරයි. මෙය Docker වෙළඳ නාමයට සම්බන්ධ නොවන නිරපේක්ෂ නාමයක් පමණි.

කාර්ය සාධනය සමානයි. ඔබගේ ගොනුව Dockerfile හෝ Containerfile ලෙස නම් කළත්, Podman එය භාවිතා කරයි:

podman build -f Containerfile -t myimage .

අවශ්‍ය නම් -f විකල්පය සමඟ ගොනු නාමය සඳහන් කරන්න.

5. ප්‍රායෝගික උදාහරණය: Ubuntu-අධාරිත කන්ටේනරයක් ගොඩනැගීම

Ubuntu-අධාරිත Dockerfile එකක් සෑදීම

Let’s walk through building an Ubuntu-අධාරිත Dockerfile and Podman සමඟ කන්ටේනර් රූපයක් ගොඩනැගීම සහ ධාවනය කිරීම step by step.

මෙන්න සරල Dockerfile උදාහරණයක්:

FROM ubuntu:22.04

RUN apt update && 
    apt install -y curl && 
    apt clean

COPY hello.sh /usr/local/bin/hello.sh
RUN chmod +x /usr/local/bin/hello.sh

CMD ["/usr/local/bin/hello.sh"]

මෙම Dockerfile:

  • නිල Ubuntu 22.04 රූපය භාවිත කරයි
  • curl පැකේජය ස්ථාපනය කරයි
  • හෝස්ට් එකෙන් hello.sh ගොනුව කන්ටේනරයට පිටපත් කරයි
  • hello.sh ක්‍රමලේඛය පෙරනිමි ලෙස සකසයි

දැන්, සරල hello.sh ස්ක්‍රිප්ට් එකක් සාදන්න:

#!/bin/bash
echo "Hello from a Podman container!"

එයට ක්‍රියාත්මක කිරීමේ අවසර දෙන්න:

chmod +x hello.sh

Podman සමඟ රූපය ගොඩනැගීම

ඔබේ ගොනු සූදානම් වූ පසු, රූපය ගොඩනැගීමට භාවිතා කරන්න:

podman build -t ubuntu-hello .

-t ubuntu-hello කොඩිය ඔබේ රූපයට ටැග් එකක් දේ; . යනු ගොඩනැගීමේ නාමාවලිය නිරූපනය කරයි.

සාර්ථක නම්, ඔබේ නව රූපය මෙසේ ලැයිස්තුගත වනු ඇත:

podman images

රූපය ධාවනය කිරීම සහ පරීක්ෂා කිරීම

ඔබේ නව රූපයෙන් කන්ටේනරයක් ධාවනය කරන්න:

podman run --rm ubuntu-hello

උදාහරණ ප්‍රතිඵලය:

Hello from a Podman container!

--rm විකල්පය කන්ටේනරය ඉවත් වීමෙන් පසු ස්වයංක්‍රීයව මකා දමයි, පරීක්ෂණ සඳහා පරිපූර්ණයි.

උපදෙස්: අන්තර්ක්‍රියාකාරී කන්ටේනර ප්‍රවේශය

කන්ටේනරය තුළ අන්තර්ක්‍රියාකාරීව වැඩ කිරීමට අවශ්‍ය නම්, Bash ආරම්භ කිරීමට -it විකල්පය භාවිතා කරන්න:

podman run -it ubuntu-hello bash

මෙය ඔබට කන්ටේනරය තුළ ලාංඡන රහිත Ubuntu සංවර්ධන පරිසරයක් ලබා දේ.

6. Podman විශේෂාංග සහ උපදෙස්

Podman ශක්තිය: ලවච්ච්‍යතාව සහ ආරක්ෂාව

Podman වැඩි ලවච්ච්‍යතාව සහ වර්ධිත ආරක්ෂාව ලබා දේ, Docker සමඟ අනුකූලව පවතින අතර. මෙන්න ප්‍රයෝජනවත් විශේෂාංග සහ දිනපතා මෙහෙයුම් උපදෙස්.

රූට් රහිත මාදිලිය සමඟ ආරක්ෂිත මෙහෙයුම්

Podman හි ප්‍රධාන ශක්තිය රූට් රහිත මාදිලිය වන අතර, එය රූට් නොවන පරිශීලකයන්ට කන්ටේනර ධාවනය, නවත්වීම සහ කළමනාකරණය කිරීමට ඉඩ සලසයි.

උදාහරණයක් ලෙස, ඔබට sudo නොමැතිව Podman භාවිතා කළ හැක:

podman run -it ubuntu bash

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

ස්වයං-ආරම්භය සඳහා systemd සමඟ ඒකාබද්ධ කිරීම

Podman systemd සමඟ ස්වභාවිකව ඒකාබද්ධ විය හැක, එමඟින් කන්ටේනර Linux සේවාවන් ලෙස ස්වයංක්‍රීයව ආරම්භ වේ.

systemd ඒකක ගොනුවක් ජනනය කරන්න:

podman generate systemd --name mycontainer --files --restart-policy=always

මෙය ~/.config/systemd/user/ තුළ ඒකක ගොනුවක් සාදයි. සක්‍රිය කර ආරම්භ කරන්න:

systemctl --user daemon-reexec
systemctl --user enable --now container-mycontainer.service

කන්ටේනර දැන් සේවාදායකය නැවත ආරම්භ වූ පසුත් ස්වයංක්‍රීයව නැවත ආරම්භ වේ.

podman-compose සමඟ බහු කන්ටේනර කළමනාකරණය

තනි කන්ටේනර මෙහෙයුම් වලට අමතරව, Podman බහු කන්ටේනර කළමනාකරණය සහය දක්වයි. podman-compose භාවිතා කර Docker Compose වැනි සංකීර්ණ ව්‍යාපෘති කළමනාකරණය කළ හැක.

pip සමඟ ස්ථාපනය කරන්න:

pip install podman-compose

docker-compose.yml ගොනු සමඟ අනුකූල වන බැවින්, ව්‍යාපෘති මාරු කිරීම පහසුය.

සේවා ආරම්භ කිරීමට, පහත ක්‍රියාත්මක කරන්න:

podman-compose up -d

Podman ඔබට සංවර්ධන පරිසරයන් වහාම නැවත නිර්මාණය කිරීමට ඉඩ සලසයි.

වෙනත් ප්‍රයෝජනවත් විධාන සහ උපදෙස්

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

podman system prune -a

භාවිත නොකළ ගොනු සහ රූප මකා ගොඩනැගීමේ ඉඩ නිදහස් කරන්න.

Shell සම්පූර්ණ කිරීම (bash/zsh)

CLI භාවිතය පහසු කිරීම සඳහා Podman සම්පූර්ණ කිරීමේ ස්ක්‍රිප්ට්ස් ස්ථාපනය කරන්න:

sudo apt install podman-docker

මෙය Docker වැනි podman විධානය සඳහා විධාන සම්පූර්ණ කිරීම සක්‍රිය කරයි.

7. Docker සිට Podman වෙත මාරු කිරීම

Podman වෙත මාරු වීම ජනප්‍රිය වීමේ හේතු

Docker කන්ටේනර සඳහා දීර්ඝ කාලයක් පවතින ප්‍රමිතිය වූ අතර, Podman එහි සුළු බර සහ ශක්තිමත් ආරක්ෂාව නිසා ජනප්‍රියත්වය ලබා ගනිමින් ඇත. Red Hat Enterprise Linux (RHEL) සහ Fedora පෙරනිමියෙන් Docker සිට Podman වෙත මාරු වී ඇත, එමඟින් බොහෝ කණ්ඩායම් මාරු කිරීම ගැන සිතීමට හේතු විය.

මෙම කොටස Docker වෙතින් Podman වෙත සංක්‍රමණය සඳහා සලකා බැලිය යුතු ප්‍රායෝගික පියවර සහ කරුණු ආවරණය කරයි.

ආණාවරණ සමගතථාකාරිතාව: Docker vs. Podman

Podman Docker ආණාවරණ සමග ඉහළ සමගතථාකාරිතාවක් ඇති නිසා, ඔබට ඒවා සෘජුවම ප්‍රතිස්ථාපනය කළ හැක:

DockerPodman
docker build -t myapp .podman build -t myapp .
docker run -it myapppodman run -it myapp
docker imagespodman images
docker pspodman ps

මෙම seamless CLI සමගතථාකාරිතාව Podman හි ප්‍රධාන වාසියකි.

podman-docker සමග සම්පූර්ණ සමගතථාකාරිතාව ලබා ගැනීම

ඔබගේ ස්ක්‍රිප්ට් හෝ CI/CD pipelines docker ආණාවරණ භාවිතා කරන්නේ නම්, podman-docker package ස්ථාපනය කිරීම Podman ව drop-in replacement ලෙස ක්‍රියා කිරීමට ඉඩ සලසයි:

sudo apt install podman-docker

මෙය docker ආණාවරණය Podman වෙත සංකේතාත්මක සබඳතාවක් ලෙස සකස් කරයි:

which docker
# → /usr/bin/docker → podman symlink

එවිට ඔබට Docker ස්ක්‍රිප්ට් වෙනස්කම් නොකර ධාවනය කළ හැක.

Docker Compose වලට විකල්පය: podman-compose

ඔබ Docker Compose multi-container projects සඳහා භාවිතා කරන්නේ නම්, podman-compose සමාන ක්‍රියාකාරිත්වය සපයයි.

එය ඉහළ සමගතථාකාරිතාවක් ඇති නමුත් සමහර Compose options වෙනස් විය හැක (උදා: depends_on), සහ event logging හෝ health checks වෙනස් ලෙස හැසිරෙන්න පුළුවන්. මූලික web + DB stacks සඳහා, සංක්‍රමණය සාමාන්‍යයෙන් සුමටයි.

Images සහ Volumes සංක්‍රමණය

ප්‍රාදේශීය Docker images Podman වෙත අනුපදානයෙන් දෘශ්‍යමාන නොවේ. ඔබට:

විකල්පය 1: Podman සමග නැවත pull කිරීම

podman pull ubuntu:22.04

විකල්පය 2: Docker වෙතින් Export → Podman වෙත Import

# Export with Docker
docker save myimage > myimage.tar

# Import with Podman
podman load < myimage.tar

මෙය Docker-built images Podman හි ලබා ගත හැකි කරයි.

අනෙකුත් සලකා බැලීම්

  • Rootless operation: Docker සාමාන්‍යයෙන් root ලෙස ධාවනය වන අතර, Podman අනුපදානයෙන් rootless operation සඳහා නිර්මාණය කර ඇත
  • Daemon structure: Podman daemonless ය, එබැවින් process management වෙනස් වේ
  • Log සහ data storage locations වෙනස් විය හැක—සංක්‍රමණයේදී configs පරීක්ෂා කරන්න

8. නිතර අසන ප්‍රශ්න (FAQ)

Q1. Podman සහ Docker අතර ප්‍රධාන වෙනස්කම් මොනවාද?

A1. විශාලතම වෙනස තමයි Podman “daemonless” (පසුබිම් process අවශ්‍ය නොවේ), එය ලාභදායී සහ ආරක්ෂිත බව කරයි. Podman rootless mode ද සහය දක්වයි, එමඟින් පරිශීලකයින් ඉහළ privileges නොමැතිව containers කළමනාකරණය කළ හැක. CLI සමගතථාකාරිතාව ඉහළයි, එබැවින් බොහෝ ආණාවරණ එකමයි.

Q2. Dockerfile සහ Containerfile අතර වෙනසක් තිබේද?

A2. ක්‍රියාකාරී වෙනසක් නැත. දෙකම containers build කරන්නේ කෙසේ දැයි විස්තර කරන ගොනු වන අතර, සමාන syntax ඇත. සමහර projects “Containerfile” neutral නමක් ලෙස ප්‍රිය කරයි, නමුත් ඔබ Podman සමග ඕනෑම නමක් භාවිතා කළ හැක.

Q3. මට Podman සමග Docker Compose files භාවිතා කළ හැකිද?

A3. Podman Docker Compose natively සහය නොදක්වයි, නමුත් ඔබට podman-compose (Python tool) භාවිතා කර docker-compose.yml files Podman environment හි interpret කර ධාවනය කළ හැක.

සමහර Compose options (depends_on, ආදිය) සීමාවන් තිබිය හැක, එබැවින් complex setups advance ව පරීක්ෂා කරන්න.

Q4. Podman Ubuntu හි ස්ථාවරද?

A4. ඔව්, Podman Ubuntu 20.04 LTS සහ නවීන ඒවායේ විශ්වාසනීයව ධාවනය වේ. එය official Ubuntu repositories හි ලබා ගත හැකි අතර apt සමග ස්ථාපනය කළ හැක. නවතම version සඳහා, official PPA භාවිතා කළ හැක.

Q5. rootless mode හි access restrictions තිබේද?

A5. rootless mode හි, සමහර privileged operations සහ 1024 ට පහළ ports වලට binding restricted වේ. Port forwarding මෙය වටහා ගත හැක. බොහෝ use cases සඳහා, rootless mode ප්‍රායෝගික සහ recommended ය.

Q6. Podman Docker Hub වෙතින් images pull කළ හැකිද?

A6. ඔව්, Podman අනුපදානයෙන් Docker Hub වෙතින් images pull කළ හැක. සමහර විට full registry path specify කිරීම අවශ්‍ය විය හැක, උදා: docker.io/library/ubuntu:

podman pull docker.io/library/ubuntu

Podman Quay.io සහ GitHub Container Registry වැනි registries ද සහය දක්වයි.

Q7. Podman production use සඳහා සුදුසුද?

A7. ඔව්, පොඩ්මන් Kubernetes-අනුකූල pod සංකල්ප සහ systemd ඒකාබද්ධ කිරීම අරඹා-ආරම්භ කිරීම සඳහා ඇතුළත් කරයි, එය නිෂ්පාදන පරිසර සඳහා සුදුසු කරයි—විශේෂයෙන් ශක්තිමත් ආරක්ෂාව අවශ්‍ය වන තැන. පොඩ්මන් දැන් Red Hat Enterprise Linux සහ Fedora හි පෙරනිමි වේ, පුළුල් අනුග්‍රහයක් සමඟ.

侍エンジニア塾