उबंटू पर पोडमैन: डॉकरफ़ाइल के साथ कंटेनर बनाना और चलाना (शुरुआती से व्यावहारिक गाइड)

.## 1. परिचय

目次

कंटेनर तकनीक का विकास और यह क्यों महत्वपूर्ण है

हाल के वर्षों में, कंटेनर तकनीक का महत्व एप्लिकेशन विकास और संचालन में तेज़ी से बढ़ा है। विशेष रूप से, विकास और उत्पादन वातावरण को संरेखित करके पुनरुत्पादनशीलता सुनिश्चित करने की क्षमता ने इंजीनियरों के बीच मजबूत समर्थन प्राप्त किया है।

Docker लंबे समय तक इस क्षेत्र में प्रमुख समाधान रहा है, लेकिन हाल के वर्षों में Podman एक शक्तिशाली विकल्प के रूप में उभरा है। Podman Docker के समान लगभग समान CLI (कमांड लाइन इंटरफ़ेस) प्रदान करता है, साथ ही डेमनलेस आर्किटेक्चर, हल्का संचालन, और रूट विशेषाधिकारों की आवश्यकता के बिना रूटलेस निष्पादन जैसी प्रमुख लाभ देता है।

क्यों “Podman + Dockerfile + Ubuntu”?

यह लेख Linux पर आधुनिक कंटेनर संचालन को तीन आवश्यक तत्वों को मिलाकर समझाता है: Podman, Dockerfile, और Ubuntu

  • Ubuntu एक व्यापक रूप से उपयोग किया जाने वाला Linux वितरण है जो शुरुआती और उन्नत उपयोगकर्ताओं दोनों के लिए उपयुक्त है,
  • Dockerfile कंटेनर इमेज बनाने के लिए एक ब्लूप्रिंट के रूप में कार्य करता है,
  • और Podman एक अगली पीढ़ी का टूल है जो अधिक लचीला और सुरक्षित कंटेनर प्रबंधन सक्षम करता है।

सुरक्षा जागरूकता में वृद्धि के साथ, Ubuntu पर Dockerfile के साथ Podman का उपयोग व्यक्तिगत डेवलपर्स और एंटरप्राइज़ वातावरण दोनों के लिए एक लोकप्रिय विकल्प बन गया है।

उद्देश्य और लक्षित दर्शक

इस लेख का लक्ष्य Ubuntu पर Podman का उपयोग करके Dockerfile बनाना और व्यावहारिक कंटेनर बनाना को सावधानीपूर्वक समझाना है।

यह लेख निम्नलिखित पाठकों के लिए है:

  • Docker का अनुभव रखने वाले लोग जो Podman में रुचि रखते हैं
  • Ubuntu उपयोगकर्ता जो कंटेनरों को सुरक्षित रूप से प्रबंधित करना चाहते हैं
  • इंजीनियर जो अपने कार्य में कंटेनर तकनीक अपनाने की योजना बना रहे हैं
  • शुरुआती जो Dockerfile लिखना और Podman के साथ इमेज बनाना आज़माना चाहते हैं

बुनियादी उपयोग के अलावा, यह लेख ट्रबलशूटिंग टिप्स, Docker से मुख्य अंतर, और माइग्रेशन रणनीतियों को भी कवर करता है।

2. Podman क्या है?

Podman का मूल अवलोकन

Podman (Pod Manager) Red Hat‑नेतृत्व वाली समुदाय द्वारा विकसित एक अगली पीढ़ी का कंटेनर प्रबंधन टूल है। Docker की तरह, यह OCI (Open Container Initiative)‑अनुपालन कंटेनरों को बनाना, चलाना और प्रबंधित करना सक्षम है, लेकिन इसकी डिज़ाइन फ़िलॉसफ़ी और आर्किटेक्चर में उल्लेखनीय अंतर हैं।

सबसे उल्लेखनीय विशेषता यह है कि Podman को डेमन की आवश्यकता नहीं होती। यह हल्का और सुरक्षित संचालन संभव बनाता है। Podman रूटलेस मोड का भी समर्थन करता है, जिससे सामान्य उपयोगकर्ता बिना विशेषाधिकार वृद्धि के कंटेनरों को प्रबंधित कर सकते हैं। Docker के साथ इसकी CLI संगतता बहुत अधिक है, जिससे माइग्रेशन सीधा हो जाता है।

Podman की मुख्य विशेषताएँ

नीचे Podman की मुख्य विशेषताएँ दी गई हैं:

डेमनलेस आर्किटेक्चर

Podman कंटेनरों को प्रबंधित करने के लिए बैकग्राउंड डेमन प्रक्रिया पर निर्भर नहीं करता। यह अनावश्यक बैकग्राउंड सेवाओं के बिना अधिक कुशल संसाधन उपयोग की अनुमति देता है।

रूटलेस (अधिकार रहित उपयोगकर्ता) समर्थन

Podman गैर‑प्रशासक उपयोगकर्ताओं को कंटेनर शुरू करने और प्रबंधित करने की अनुमति देता है। यह मल्टी‑यूज़र या सर्वर वातावरण में सुरक्षा को काफी बढ़ाता है और सुरक्षा जोखिमों को उल्लेखनीय रूप से कम करता है।

Docker‑संगत CLI

Podman Docker के समान कमांड संरचना का उपयोग करता है। उदाहरण के लिए, निम्नलिखित Docker कमांड Podman में लगभग समान रूप से काम करते हैं:

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

परिणामस्वरूप, Docker उपयोगकर्ता न्यूनतम कठिनाई के साथ माइग्रेट कर सकते हैं

पॉड कार्यक्षमता

Podman Kubernetes के “Pod” अवधारणा को शामिल करता है, जिससे कई कंटेनरों को एकल तार्किक इकाई के रूप में प्रबंधित किया जा सकता है। यह Podman को 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 विशेषाधिकार की आवश्यकता होती है। भले ही आप Podman को rootless मोड में उपयोग करने की योजना बना रहे हों, इंस्टॉलेशन के दौरान प्रशासक विशेषाधिकार अभी भी आवश्यक हैं।

Ubuntu आधिकारिक रिपॉजिटरी से Podman इंस्टॉल करना

20.04 या 22.04 जैसे हाल के Ubuntu संस्करणों पर, Podman को APT का उपयोग करके आसानी से इंस्टॉल किया जा सकता है।

sudo apt update
sudo apt install -y podman

इंस्टॉलेशन के बाद, संस्करण जांचकर सत्यापित करें कि Podman सही ढंग से इंस्टॉल हो गया है:

podman --version

आधिकारिक PPA का उपयोग करके नवीनतम संस्करण इंस्टॉल करना

Ubuntu की डिफ़ॉल्ट रिपॉजिटरी में शामिल Podman संस्करण अक्सर थोड़ा पुराना होता है। यदि आप नवीनतम सुविधाओं का उपयोग करना चाहते हैं, तो आप आधिकारिक PPA से Podman इंस्टॉल कर सकते हैं।

. /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

यह विधि आपको Red Hat और Fedora सिस्टमों पर उपलब्ध नवीनतम Podman संस्करणों के समकक्ष का उपयोग करने की अनुमति देती है।

Podman की बुनियादी कार्यक्षमता परीक्षण

इंस्टॉलेशन के बाद, Podman के सही ढंग से काम करने की पुष्टि करने के लिए एक सरल परीक्षण करें:

podman info

यह कमांड Podman की कॉन्फ़िगरेशन, संस्करण, और rootless मोड जैसी समर्थित सुविधाओं को प्रदर्शित करता है।

आप एक आधिकारिक Alpine Linux इमेज चलाकर कंटेनर निष्पादन का भी परीक्षण कर सकते हैं:

podman run --rm -it alpine sh

यदि शेल सफलतापूर्वक शुरू होता है, तो Podman सही ढंग से कार्य कर रहा है।

4. Dockerfile की बुनियादी बातें और Podman के साथ उपयोग

Dockerfile क्या है?

एक Dockerfile कंटेनर इमेजेस बनाने के लिए उपयोग किया जाने वाला ब्लूप्रिंट है। यह एक टेक्स्ट फाइल है जो आधार इमेज का उपयोग करने, कौन से पैकेज इंस्टॉल करने, और कौन सी फाइलें कॉपी करने जैसे निर्देशों को परिभाषित करती है।

इस फाइल के आधार पर, Podman और Docker जैसे कंटेनर टूल्स स्वचालित रूप से एक सुसंगत वातावरण बना सकते हैं।

सामान्य Dockerfile निर्देशों में शामिल हैं:

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"]

यह उदाहरण Ubuntu आधार इमेज पर पैकेज इंस्टॉल करता है, एक स्क्रिप्ट कॉपी करता है, और डिफ़ॉल्ट निष्पादन कमांड को परिभाषित करता है।

Podman के साथ Dockerfile का उपयोग

Podman Docker की तरह ही Dockerfiles से कंटेनर इमेजेस बना सकता है।

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! प्रदर्शित होगा।

Dockerfile बनाम Containerfile

Podman में, Dockerfile सिंटैक्स का उपयोग करने वाली फ़ाइलों को Containerfile भी कहा जा सकता है। यह नामकरण Docker‑स्वतंत्र शब्दावली की इच्छा को दर्शाता है।

Dockerfile और Containerfile के बीच कोई कार्यात्मक अंतर नहीं है। दोनों को Podman द्वारा पूरी तरह समर्थन दिया जाता है।

podman build -f Containerfile -t myimage .

आप -f विकल्प का उपयोग करके फ़ाइल का नाम स्पष्ट रूप से निर्दिष्ट कर सकते हैं।

5. व्यावहारिक उदाहरण: Ubuntu‑आधारित कंटेनर बनाना

Ubuntu पर आधारित Dockerfile बनाना

अब हम Ubuntu पर आधारित Dockerfile बनाने और Podman का उपयोग करके कंटेनर इमेज बनाकर चलाने का एक व्यावहारिक, चरण‑दर‑चरण उदाहरण देखेंगे।

सबसे पहले, निम्नलिखित सरल 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, this output is from a Podman container!"

स्क्रिप्ट को निष्पादन अधिकार दें:

chmod +x hello.sh

Podman के साथ इमेज बनाना

फ़ाइलें तैयार हो जाने पर, निम्नलिखित कमांड से इमेज बनाएं:

podman build -t ubuntu-hello .

-t ubuntu-hello विकल्प इमेज को एक टैग नाम देता है, और अंत में . Dockerfile वाली डायरेक्टरी को निर्दिष्ट करता है।

यदि बिल्ड सफलतापूर्वक पूरा हो जाता है, तो इमेज स्थानीय रूप से संग्रहीत हो जाएगी।

podman images

इमेज बन गई है या नहीं, यह जांचने के लिए आप यह कमांड उपयोग कर सकते हैं।

बनायी गई इमेज चलाना और सत्यापित करना

नव निर्मित इमेज से कंटेनर चलाने के लिए निम्न कमांड उपयोग करें:

podman run --rm ubuntu-hello

उदाहरण आउटपुट:

Hello, this output is from a Podman container!

--rm विकल्प कंटेनर को निष्पादन के बाद स्वचालित रूप से हटा देता है, जिससे यह परीक्षण उद्देश्यों के लिए आदर्श बन जाता है।

वैकल्पिक: इंटरैक्टिव कंटेनर चलाना

यदि आप कंटेनर के साथ सीधे इंटरैक्ट करना चाहते हैं, तो -it विकल्प के साथ इसे शुरू कर सकते हैं और Bash लॉन्च कर सकते हैं:

podman run -it ubuntu-hello bash

इससे आप कंटेनर को एक हल्के Ubuntu‑आधारित विकास वातावरण के रूप में उपयोग कर सकते हैं।

6. उपयोगी Podman सुविधाएँ और टिप्स

Podman की ताकत: लचीलापन और सुरक्षा

Docker संगतता बनाए रखते हुए, Podman ऐसी सुविधाएँ प्रदान करता है जो अधिक लचीले और सुरक्षित कंटेनर संचालन को सक्षम बनाती हैं। यह अनुभाग दैनिक कार्यप्रवाह में विशेष रूप से उपयोगी व्यावहारिक सुविधाएँ और टिप्स प्रस्तुत करता है।

रूटलेस मोड के साथ सुरक्षित संचालन

Podman की सबसे शक्तिशाली सुविधाओं में से एक रूटलेस मोड है, जो साधारण उपयोगकर्ताओं को बिना प्रशासनिक अधिकारों के कंटेनर शुरू, रोक और प्रबंधित करने की अनुमति देता है।

आप नीचे दिखाए अनुसार कंटेनर sudo के बिना चला सकते हैं:

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

.

This configuration ensures that containers automatically start when the system boots.

यह कॉन्फ़िगरेशन सुनिश्चित करता है कि कंटेनर सिस्टम बूट होने पर स्वचालित रूप से शुरू हो जाएँ

Managing Multiple Containers with podman-compose

podman-compose के साथ कई कंटेनरों का प्रबंधन

In addition to managing single containers, Podman supports multi-container orchestration. By using podman-compose, you can achieve functionality similar to Docker Compose.

एकल कंटेनरों के प्रबंधन के अलावा, Podman बहु-कंटेनर ऑर्केस्ट्रेशन का समर्थन करता है। podman-compose का उपयोग करके, आप Docker Compose के समान कार्यक्षमता प्राप्त कर सकते हैं।

Install podman-compose using pip:

pip का उपयोग करके podman-compose स्थापित करें:

pip install podman-compose

Because it is largely compatible with docker-compose.yml files, you can often reuse existing configurations.

चूँकि यह docker-compose.yml फ़ाइलों के साथ अधिकांशतः संगत है, आप अक्सर मौजूदा कॉन्फ़िगरेशन को पुनः उपयोग कर सकते हैं।

Starting services is as simple as running:

सेवाओं को शुरू करना इतना सरल है जितना कि चलाना:

podman-compose up -d

This allows you to reproduce complete development environments instantly even when using Podman.

यह आपको Podman का उपयोग करते हुए भी तुरंत पूर्ण विकास वातावरण को पुनः उत्पन्न करने की अनुमति देता है।

Additional Useful Commands and Tips

अतिरिक्त उपयोगी कमांड और टिप्स

Cleaning Up Unused Images and Containers

अनउपयोगी इमेज और कंटेनरों को साफ़ करना

podman system prune -a

This command removes unused containers, images, and temporary files, helping keep your storage clean.

यह कमांड अनउपयोगी कंटेनर, इमेज और अस्थायी फ़ाइलों को हटा देता है, जिससे आपका स्टोरेज साफ़ रहता है।

Enabling Command Completion (bash/zsh)

कमांड पूर्णता सक्षम करना (bash/zsh)

You can install command completion support with the following package:

आप निम्नलिखित पैकेज के साथ कमांड पूर्णता समर्थन स्थापित कर सकते हैं:

sudo apt install podman-docker

This enables Docker-like command completion for Podman, improving productivity.

यह Podman के लिए Docker जैसी कमांड पूर्णता सक्षम करता है, जिससे उत्पादकता बढ़ती है।

7. Migration Guide: From Docker to Podman

7. माइग्रेशन गाइड: Docker से Podman तक

Why Migration to Podman Is Gaining Attention

क्यों Podman की ओर माइग्रेशन का ध्यान आकर्षित कर रहा है

Docker has long been synonymous with container technology, but in recent years, a shift toward Podman as a more lightweight and secure alternative has gained momentum. In particular, Red Hat Enterprise Linux (RHEL) and Fedora have reduced Docker support and adopted Podman as the default container engine, prompting many organizations to consider migration.

Docker लंबे समय से कंटेनर तकनीक के समानार्थी रहा है, लेकिन हाल के वर्षों में एक हल्के और अधिक सुरक्षित विकल्प के रूप में Podman की ओर बदलाव ने गति पकड़ी है। विशेष रूप से, Red Hat Enterprise Linux (RHEL) और Fedora ने Docker समर्थन को कम किया है और डिफ़ॉल्ट कंटेनर इंजन के रूप में Podman को अपनाया है, जिससे कई संगठनों को माइग्रेशन पर विचार करने के लिए प्रेरित किया गया है।

This section explains practical steps and important considerations for migrating smoothly from Docker to Podman.

यह अनुभाग Docker से Podman में सुगम माइग्रेशन के लिए व्यावहारिक कदम और महत्वपूर्ण विचार समझाता है।

Command Compatibility Between Docker and Podman

Docker और Podman के बीच कमांड संगतता

Podman maintains a high level of CLI compatibility with Docker, allowing most commands to be directly replaced without modification.

Podman Docker के साथ उच्च स्तर की CLI संगतता बनाए रखता है, जिससे अधिकांश कमांड को बिना संशोधन के सीधे बदलना संभव हो जाता है।

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

This makes it possible to switch to Podman without changing your workflow, which is one of its biggest advantages.

यह आपके कार्यप्रवाह को बदले बिना Podman में स्विच करने को संभव बनाता है, जो इसकी सबसे बड़ी लाभों में से एक है।

Achieving Full Compatibility with podman-docker

podman-docker के साथ पूर्ण संगतता प्राप्त करना

If existing scripts, CI/CD pipelines, or tools assume the presence of the docker command, you can install the podman-docker package to make Podman act as a drop-in replacement.

यदि मौजूदा स्क्रिप्ट, CI/CD पाइपलाइन, या टूल docker कमांड की उपस्थिति मानते हैं, तो आप podman-docker पैकेज स्थापित कर सकते हैं ताकि Podman को एक ड्रॉप-इन विकल्प के रूप में उपयोग किया जा सके।

sudo apt install podman-docker

After installation, the docker command becomes a symbolic link to Podman:

स्थापना के बाद, docker कमांड Podman की एक सिम्बॉलिक लिंक बन जाता है:

which docker
# → /usr/bin/docker → symbolic link to podman

This allows existing Docker-based scripts to run on Podman without modification.

यह मौजूदा Docker-आधारित स्क्रिप्ट को बिना संशोधन के Podman पर चलाने की अनुमति देता है।

Replacing docker-compose with podman-compose

docker-compose को podman-compose से बदलना

For projects that use Docker Compose to define multi-container environments, podman-compose provides a compatible alternative.

उन प्रोजेक्ट्स के लिए जो बहु-कंटेनर वातावरण को परिभाषित करने के लिए Docker Compose का उपयोग करते हैं, podman-compose एक संगत विकल्प प्रदान करता है।

While compatibility is generally high, note the following limitations:

जबकि संगतता सामान्यतः उच्च है, निम्नलिखित सीमाओं पर ध्यान दें:

  • Some Compose options (such as depends_on ) may be unsupported or behave differently
  • Differences may exist in event logging and health check behavior

  • कुछ Compose विकल्प (जैसे depends_on) असमर्थित हो सकते हैं या अलग तरह से व्यवहार कर सकते हैं

  • इवेंट लॉगिंग और हेल्थ चेक व्यवहार में अंतर हो सकता है

For typical configurations such as a web server and database combination, migration is usually straightforward.

वेब सर्वर और डेटाबेस संयोजन जैसी सामान्य कॉन्फ़िगरेशन के लिए, माइग्रेशन आमतौर पर सीधा होता है।

Migrating Images and Volumes

इमेज और वॉल्यूम का माइग्रेशन

Docker images stored locally cannot be accessed directly by Podman. You must either re-pull them or export and import them.

स्थानीय रूप से संग्रहीत Docker इमेज को सीधे Podman द्वारा एक्सेस नहीं किया जा सकता। आपको या तो उन्हें पुनः पुल करना होगा या निर्यात और आयात करना होगा।

Option 1: Re-pull Images with Podman

विकल्प 1: Podman के साथ इमेज को पुनः पुल करें

podman pull ubuntu:22.04

Option 2: Export from Docker and Import into Podman

विकल्प 2: Docker से निर्यात करें और Podman में आयात करें

# Export from Docker
docker save myimage > myimage.tar

# Import into Podman
podman load < myimage.tar

This enables Docker-built images to be reused in Podman.

यह Docker-निर्मित इमेज को Podman में पुनः उपयोग करने को सक्षम बनाता है।

Additional Migration Considerations

अतिरिक्त माइग्रेशन विचार

  • Rootless operation differences : Docker typically assumes root usage, while Podman is designed for rootless operation
  • Daemon architecture : Podman is daemonless, changing how background processes are managed
  • Log and data storage locations differ and should be reviewed during migration

  • रूटलेस ऑपरेशन अंतर : Docker आमतौर पर रूट उपयोग मानता है, जबकि Podman रूटलेस ऑपरेशन के लिए डिज़ाइन किया गया है

  • डेमन आर्किटेक्चर : Podman डेमनलेस है, जिससे बैकग्राउंड प्रोसेस के प्रबंधन में बदलाव आता है
  • लॉग और डेटा स्टोरेज स्थान अलग होते हैं और माइग्रेशन के दौरान समीक्षा किए जाने चाहिए

8. अक्सर पूछे जाने वाले प्रश्न (FAQ)

प्रश्न 1. Podman और Docker के बीच मुख्य अंतर क्या है?

उत्तर 1. सबसे महत्वपूर्ण अंतर यह है कि Podman बिना डेमन के संचालित होता है। इससे हल्का और अधिक सुरक्षित संचालन संभव होता है। Podman रूटलेस मोड का भी समर्थन करता है, जो विशेषाधिकार वृद्धि के बिना कंटेनर प्रबंधन की अनुमति देता है। Docker के साथ CLI संगतता बहुत अधिक है।

प्रश्न 2. Dockerfile और Containerfile के बीच अंतर क्या है?

उत्तर 2. इसमें कोई कार्यात्मक अंतर नहीं है। दोनों फाइलें समान सिंटैक्स का उपयोग करके कंटेनर बिल्ड निर्देशों का वर्णन करती हैं।
OCI-अनुरूप परियोजनाओं में Containerfile नाम को प्राथमिकता दी जाती है ताकि Docker-विशिष्ट शब्दावली से बचा जा सके। व्यवहार में, Dockerfile Podman के साथ पूरी तरह से काम करता है।

प्रश्न 3. क्या Docker Compose को Podman के साथ उपयोग किया जा सकता है?

उत्तर 3. Docker Compose को सीधे समर्थन नहीं है, लेकिन आप podman-compose को विकल्प के रूप में उपयोग कर सकते हैं। यह Podman वातावरण में docker-compose.yml फाइलों की व्याख्या करता है।

कुछ विकल्प जैसे depends_on सीमित हैं, इसलिए जटिल सेटअप के लिए परीक्षण की सिफारिश की जाती है

प्रश्न 4. क्या Podman Ubuntu पर स्थिर रूप से चलता है?

उत्तर 4. हाँ। Podman Ubuntu 20.04 LTS और उसके बाद के संस्करणों पर स्थिर रूप से चलता है। यह आधिकारिक Ubuntu रिपॉजिटरी में उपलब्ध है और apt का उपयोग करके आसानी से इंस्टॉल किया जा सकता है। नए संस्करणों के लिए, PPA का उपयोग भी एक विकल्प है।

प्रश्न 5. रूटलेस मोड का उपयोग करते समय क्या सीमाएँ हैं?

उत्तर 5. रूटलेस मोड कुछ विशेषाधिकार प्राप्त संचालन और 1024 से नीचे के पोर्ट्स पर बाइंडिंग को प्रतिबंधित करता है। हालांकि, ये सीमाएँ अक्सर पोर्ट फॉरवर्डिंग का उपयोग करके हल की जा सकती हैं। अधिकांश उपयोग मामलों के लिए, रूटलेस मोड पूरी तरह से व्यावहारिक है।

प्रश्न 6. क्या Podman Docker Hub से वही इमेजेस पुल कर सकता है?

उत्तर 6. हाँ। Podman डिफ़ॉल्ट रूप से Docker Hub से इमेजेस पुल कर सकता है। कुछ वातावरणों में, आपको रजिस्ट्री और नेमस्पेस को स्पष्ट रूप से निर्दिष्ट करने की आवश्यकता हो सकती है:

podman pull docker.io/library/ubuntu

Podman अन्य रजिस्ट्री जैसे Quay.io और GitHub Container Registry का भी समर्थन करता है।

प्रश्न 7. क्या Podman प्रोडक्शन वातावरणों के लिए उपयुक्त है?

उत्तर 7. हाँ। Podman में प्रोडक्शन उपयोग के लिए आवश्यक सुविधाएँ शामिल हैं, जैसे Kubernetes-आनुरूप पॉड अवधारणाएँ और systemd एकीकरण। सुरक्षा-संवेदनशील वातावरणों में, Podman Docker से बेहतर विकल्प हो सकता है।

Podman RHEL और Fedora में डिफ़ॉल्ट कंटेनर इंजन है और इसमें व्यापक प्रोडक्शन अपनाना हो चुका है।

年収訴求