يعد Podman (POD MANager) أداة لإدارة الحاويات والصور والأحجام المثبتة في تلك الحاويات والقرون المصنوعة من مجموعات الحاويات. يقوم Podman بتشغيل الحاويات على Linux، ولكن يمكن استخدامه أيضًا على أنظمة Mac وWindows باستخدام جهاز ظاهري يديره Podman. يعتمد Podman على مكتبة libpod لإدارة دورة حياة الحاوية والموجودة أيضًا في هذا المستودع. توفر مكتبة libpod واجهات برمجة التطبيقات (APIs) لإدارة الحاويات، والقرون، وصور الحاويات، ووحدات التخزين.
يُصدر Podman إصدارًا رئيسيًا أو ثانويًا جديدًا 4 مرات سنويًا، خلال الأسبوع الثاني من فبراير ومايو وأغسطس ونوفمبر. تعد إصدارات التصحيح أكثر تكرارًا وقد تحدث في أي وقت لإيصال إصلاحات الأخطاء إلى المستخدمين. جميع الإصدارات موقعة بواسطة PGP. المفاتيح العامة لأعضاء الفريق المعتمدين لإصدار الإصدارات موجودة هنا.
التكامل المستمر:
غودوك:
التنزيلات
على المستوى العالي، نطاق Podman و libpod هو كما يلي:
دعم تنسيقات صور الحاويات المتعددة، بما في ذلك صور OCI وDocker.
الإدارة الكاملة لتلك الصور، بما في ذلك السحب من مصادر مختلفة (بما في ذلك الثقة والتحقق)، والإنشاء (الذي تم إنشاؤه عبر Containerfile أو Dockerfile أو الالتزام به من حاوية)، والدفع إلى السجلات وواجهات التخزين الخلفية الأخرى.
الإدارة الكاملة لدورة حياة الحاوية، بما في ذلك الإنشاء (سواء من صورة أو من نظام ملفات جذر مقسم)، والتشغيل، والفحص والاستعادة (عبر CRIU)، والإزالة.
إدارة كاملة لشبكات الحاويات باستخدام Netavark.
دعم القرون، ومجموعات الحاويات التي تتقاسم الموارد ويتم إدارتها معًا.
دعم تشغيل الحاويات والقرون بدون صلاحيات الجذر أو غيرها من الامتيازات المرتفعة.
عزل الموارد من الحاويات والقرون.
دعم واجهة CLI المتوافقة مع Docker، والتي يمكنها تشغيل الحاويات محليًا وعلى الأنظمة البعيدة.
لا يوجد برنامج خفي للمدير، لتحسين الأمان وتقليل استخدام الموارد في وضع الخمول.
دعم REST API الذي يوفر واجهة متوافقة مع Docker وواجهة محسنة تعرض وظائف Podman المتقدمة.
دعم التشغيل على نظامي التشغيل Windows وMac عبر الأجهزة الافتراضية التي يتم تشغيلها بواسطة podman machine
.
مزيد من التحسينات على podman machine
لدعم Podman Desktop وحالات استخدام المطورين الأخرى بشكل أفضل.
دعم conmon-rs، مما سيؤدي إلى تحسين تسجيل الحاويات.
دعم واجهة برمجة تطبيقات BuildKit.
تحسينات الأداء والاستقرار.
تخفيضات في حجم ثنائي Podman.
إذا كنت تعتقد أنك حددت مشكلة أمنية في المشروع، فيرجى عدم الإبلاغ عن المشكلة علنًا عبر متتبع مشكلات GitHub، أو القائمة البريدية، أو IRC. بدلاً من ذلك، أرسل بريدًا إلكترونيًا يحتوي على أكبر عدد ممكن من التفاصيل إلى [email protected]
. هذه قائمة بريدية خاصة للمشرفين الأساسيين.
للأسئلة العامة والمناقشة، يرجى استخدام قنوات Podman.
لإجراء مناقشات حول المشكلات/الأخطاء والميزات، يمكنك استخدام نظام تتبع المشكلات والعلاقات العامة على GitHub.
توجد أيضًا قائمة بريدية على lists.podman.io
. يمكنك الاشتراك عن طريق إرسال رسالة إلى [email protected]
بموضوع subscribe
.
يمكن تشغيل Podman بسهولة كمستخدم عادي، دون الحاجة إلى تعيين ثنائي. عند التشغيل بدون جذر، تستخدم حاويات Podman مساحات أسماء المستخدمين لتعيين الجذر في الحاوية للمستخدم الذي يقوم بتشغيل Podman. يقوم Rootless Podman بتشغيل حاويات مقفلة بدون أي امتيازات لا يتمتع بها المستخدم الذي يقوم بتشغيل الحاوية. يمكن رفع بعض هذه القيود (عبر --privileged
، على سبيل المثال)، لكن الحاويات التي لا تحتوي على جذور لن تتمتع أبدًا بامتيازات أكثر من المستخدم الذي قام بتشغيلها. إذا قمت بتشغيل Podman كمستخدم لك وقمت بالتثبيت في /etc/passwd
من المضيف، فلن تتمكن من تغييره، نظرًا لأن المستخدم الخاص بك ليس لديه الإذن للقيام بذلك.
تتوفر جميع وظائف Podman العادية تقريبًا، على الرغم من وجود بعض أوجه القصور. يجب أن يكون أي إصدار حديث من Podman قادرًا على العمل بدون الجذر دون أي تكوين إضافي، على الرغم من أن نظام التشغيل الخاص بك قد يتطلب بعض التكوينات الإضافية المفصلة في دليل التثبيت.
يلزم إجراء القليل من التكوين بواسطة المسؤول قبل استخدام Podman بدون جذور، وقد تم توثيق الإعداد الضروري هنا.
يوفر Podman Desktop بيئة تطوير محلية لـ Podman وKubernetes على أجهزة Linux، وWindows، وMac. إنها واجهة أمامية لواجهة مستخدم سطح المكتب كاملة الميزات لـ Podman والتي تستخدم الواجهة الخلفية podman machine
على أنظمة تشغيل غير Linux لتشغيل الحاويات. وهو يدعم إدارة دورة حياة الحاوية الكاملة (إنشاء الصور وسحبها ودفعها وإنشاء الحاويات وإدارتها وإنشاء القرون وإدارتها والعمل مع Kubernetes YAML). تم تطوير المشروع على GitHub والمساهمات مرحب بها.
التوقيع المتخصص ودفع الصور إلى واجهات التخزين الخلفية المختلفة. راجع Skopeo لهذه المهام.
دعم واجهة Kubernetes CRI لإدارة الحاويات. البرنامج الخفي CRI-O متخصص في ذلك.
يستخدم Podman مشاريع OCI وأفضل المكتبات في جوانب مختلفة:
وقت التشغيل: نستخدم أدوات وقت تشغيل OCI لإنشاء تكوينات وقت تشغيل OCI التي يمكن استخدامها مع أي وقت تشغيل متوافق مع OCI، مثل crun وrunc.
الصور: تستخدم إدارة الصور الحاويات/مكتبة الصور.
التخزين: تتم إدارة تخزين الحاويات والصور بواسطة الحاويات/التخزين.
الشبكات: دعم الشبكات من خلال استخدام Netavark وAardvark. يتم التعامل مع الشبكات بدون جذور عبر المعكرونة أو slirp4netns.
البنيات: يتم دعم البنيات عبر Buildah.
Conmon: Conmon هي أداة لمراقبة أوقات تشغيل OCI، يستخدمها كل من Podman وCRI-O.
Seccomp: سياسة Seccomp موحدة لـ Podman وBuildah وCRI-O.
للحصول على المدونات وإعلانات الإصدارات والمزيد، يرجى مراجعة موقع podman.io!
ملاحظات التثبيت معلومات حول كيفية تثبيت Podman في بيئتك.
معلومات دعم خطافات OCI حول كيفية تكوين Podman لخطافات OCI للتشغيل عند تشغيل الحاوية.
وثائق Podman API على Podman REST API.
أوامر Podman قائمة بأوامر Podman مع روابط لصفحات الدليل الخاصة بهم وفي كثير من الحالات مقاطع فيديو توضح الأوامر المستخدمة.
صور حاوية Podman معلومات عن صور حاوية Podman الموجودة على quay.io.
دليل استكشاف أخطاء Podman وإصلاحها قائمة بالمشكلات والحلول الشائعة لـ Podman.
نقل استخدام Podman معلومات مفيدة للعمليات ونقل التطوير من حيث صلتها بالبنية التحتية التي تستخدم Podman. تتضمن هذه الصفحة جداول تعرض أوامر Docker وأوامر Podman المكافئة لها.
دروس خصوصية حول استخدام Podman.
العميل البعيد كيفية استخدام عميل Podman البعيد.
الإعداد الأساسي واستخدام Podman في بيئة بدون جذور برنامج تعليمي يوضح الإعداد والتكوين الضروريين لتشغيل Rootless Podman.
ملاحظات الإصدار ملاحظات الإصدار لإصدارات Podman الأخيرة.
المساهمة بمعلومات حول المساهمة في هذا المشروع.
يعد Buildah وPodman مشروعين متكاملين مفتوحي المصدر متاحين على معظم منصات Linux وكلاهما موجود في GitHub.com مع Buildah هنا وPodman هنا. تعد كل من Buildah وPodman من أدوات سطر الأوامر التي تعمل على صور وحاويات مبادرة الحاوية المفتوحة (OCI). ويختلف المشروعان في تخصصهما.
Buildah متخصص في بناء صور OCI. أوامر Buildah تكرر كافة الأوامر الموجودة في ملف Dockerfile. يتيح ذلك إنشاء صور باستخدام ملفات Dockerfiles وبدونها دون الحاجة إلى أي امتيازات جذر. الهدف النهائي لـ Buildah هو توفير واجهة أساسية ذات مستوى أدنى لإنشاء الصور. تسمح مرونة إنشاء الصور بدون Dockerfiles بدمج لغات البرمجة النصية الأخرى في عملية الإنشاء. يتبع Buildah نموذجًا بسيطًا fork-exec ولا يعمل كبرنامج خفي ولكنه يعتمد على واجهة برمجة تطبيقات شاملة في golang، والتي يمكن بيعها إلى أدوات أخرى.
يتخصص Podman في جميع الأوامر والوظائف التي تساعدك في صيانة صور OCI وتعديلها، مثل السحب ووضع العلامات. كما يسمح لك بإنشاء وتشغيل وصيانة تلك الحاويات التي تم إنشاؤها من تلك الصور. لبناء صور الحاويات عبر Dockerfiles، يستخدم Podman واجهة برمجة تطبيقات Buildah's golang ويمكن تثبيتها بشكل مستقل عن Buildah.
الفرق الرئيسي بين Podman وBuildah هو مفهوم الحاوية. يسمح Podman للمستخدمين بإنشاء "حاويات تقليدية" حيث يكون الهدف من هذه الحاويات أن يدوم طويلاً. في حين أن حاويات Buildah تم إنشاؤها للتو للسماح بإضافة المحتوى مرة أخرى إلى صورة الحاوية. طريقة سهلة للتفكير في الأمر هي أن أمر buildah run
يحاكي أمر RUN في ملف Dockerfile بينما يحاكي أمر podman run
أمر docker run
في الوظيفة. وبسبب هذا والاختلافات الأساسية في التخزين، لا يمكنك رؤية حاويات Podman من داخل Buildah أو العكس.
باختصار، تعد Buildah طريقة فعالة لإنشاء صور OCI بينما يسمح لك Podman بإدارة تلك الصور والحاويات وصيانتها في بيئة إنتاج باستخدام أوامر cli المألوفة للحاويات. لمزيد من التفاصيل، راجع دليل أدوات الحاوية.
$ podman run quay.io/podman/hello Trying to pull quay.io/podman/hello:latest... Getting image source signatures Copying blob a6b3126f3807 done Copying config 25c667d086 done Writing manifest to image destination Storing signatures !... Hello Podman World ...! .--"--. / - - / (O) (O) ~~~| -=(,Y,)=- | .---. /` |~~ ~/ o o ~~~~.----. ~~ | =(X)= |~ / (O (O) ~~~~~~~ ~| =(Y_)=- | ~~~~ ~~~| U |~~ Project: https://github.com/containers/podman Website: https://podman.io Documents: https://docs.podman.io Twitter: @Podman_io