| podman(1) | General Commands Manual | podman(1) |
نام (NAME)
podman - ابزار ساده برای مدیریت پادها، کانتینرها و ایمیجها
خلاصه دستور (SYNOPSIS)
podman [گزینهها] دستور
توضیحات (DESCRIPTION)
پودمن (Podman یا مدیر پاد) یک موتور کانتینر تمامعیار و ابزاری ساده و بدون دیمن (Daemonless) است. پودمن یک خط فرمان مشابه Docker-CLI ارائه میدهد که مهاجرت از سایر موتورهای کانتینر را تسهیل کرده و امکان مدیریت پادها، کانتینرها و ایمیجها را فراهم میسازد. به بیان ساده: alias docker=podman. بیشتر دستورات پودمن میتوانند به عنوان یک کاربر عادی و بدون نیاز به امتیازات ویژه اجرا شوند.
پودمن در ساختار داخلی خود از Buildah(1) برای ساخت ایمیجهای کانتینر استفاده میکند. هر دو ابزار فضای ذخیرهسازی ایمیج (و نه کانتینر) مشترک دارند، بنابراین هر یک میتوانند از ایمیجهای ساختهشده توسط دیگری استفاده کرده یا آنها را دستکاری کنند (اما کانتینرها را نه).
تنظیمات پیشفرض برای گزینهها در containers.conf تعریف شدهاند. بیشتر تنظیمات اتصالات از راه دور (Remote) از فایل containers.conf سرور استفاده میکنند، مگر مواردی که در صفحات راهنما مستند شده باشد.
برای مدیریت کانتینرها، پادها، ولومها، شبکهها و ایمیجها به صورت اعلانی از طریق systemd، از فایلهای quadlet استفاده کنید. به podman-quadlet(1) و podman-systemd.unit(5) مراجعه کنید.
podman [گزینههای عمومی]
گزینههای عمومی (GLOBAL OPTIONS)
--cdi-spec-dir=path
مسیر دایرکتوری مشخصات CDI (میتواند چندین بار مشخص شود). مسیر پیشفرض /etc/cdi است.
--cgroup-manager=manager
مدیر CGroup مورد استفاده برای cgroupهای کانتینر. مقادیر پشتیبانیشده cgroupfs یا systemd هستند. مقدار پیشفرض systemd است مگر اینکه در فایل containers.conf بازنویسی شده باشد.
نکته: تنظیم این فلگ میتواند در هنگام فراخوانی برای کانتینرهایی که قبلاً توسط نوع دیگری از مدیر CGroup ایجاد شدهاند، باعث خرابی برخی دستورات شود.
--config
محل فایل پیکربندی. عمدتاً برای سازگاری با docker بوده و تنها بخشهای احراز هویت پیکربندی پشتیبانی میشوند.
--conmon
مسیر باینری conmon (مسیر پیشفرض در containers.conf پیکربندی شده است).
--connection, -c
اتصال مورد استفاده برای پودمن از راه دور، از جمله ماشینهای مک و ویندوز (به استثنای WSL2) (اتصال پیشفرض در containers.conf پیکربندی شده است). تنظیم این گزینه، فلگ --remote را به true تغییر میدهد. اتصالات از راه دور به طور پیشفرض از containers.conf محلی استفاده میکنند.
--events-backend=type
بکاند مورد استفاده برای ذخیرهسازی رویدادها. مقادیر مجاز عبارتند از file، journald و none. هنگامی که file مشخص شود، رویدادها در مسیر <tmpdir>/events/events.log ذخیره میشوند (توضیحات --tmpdir در زیر را ببینید).
--help, -h
چاپ راهنمای نحوه استفاده از دستور.
--hooks-dir=path
هر فایل *.json در این مسیر، یک هوک (Hook) را برای کانتینرهای Podman پیکربندی میکند. برای جزئیات بیشتر درباره نحو فایلهای JSON و معناشناسی تزریق هوک، به oci-hooks(5) مراجعه کنید. در حال حاضر Podman و libpod از هر دو اسکیما هوک نسخه 1.0.0 و 0.1.0 پشتیبانی میکنند، اگرچه اسکیمای 0.1.0 منسوخ شده است.
این گزینه میتواند چندین بار مشخص شود؛ مسیرهای گزینههای بعدی اولویت بالاتری دارند (در oci-hooks(5) تقدم دایرکتوریها بررسی شده است).
برای شرایط انوتیشن (Annotation)، libpod از هرگونه انوتیشن تنظیمشده در پیکربندی OCI تولیدشده استفاده میکند.
برای شرایط bind-mount، تنها اتصالاتی که صراحتاً توسط فراخواننده از طریق --volume درخواست شده باشند در نظر گرفته میشوند. اتصالات bind که libpod به صورت پیشفرض درج میکند (مانند /dev/shm) در نظر گرفته نمیشوند.
اگر --hooks-dir برای فراخوانندههای root تنظیم نشده باشد، Podman و libpod در حال حاضر به ترتیب اولویت افزایشی از پیشفرضهای /usr/share/containers/oci/hooks.d و /etc/containers/oci/hooks.d استفاده میکنند. استفاده از این پیشفرضها منسوخ شده است. به تنظیم صریح --hooks-dir مهاجرت کنید.
در حال حاضر Podman و libpod از یک حالت اضافی به نام precreate پشتیبانی میکنند که قبل از عملیات create رانتایم فراخوانی میشود. بر خلاف سایر مراحل که وضعیت کانتینر را روی ورودی استاندارد خود دریافت میکنند، هوکهای precreate پیکربندی پیشنهادی رانتایم را روی ورودی استاندارد دریافت میکنند. آنها میتوانند آن پیکربندی را به صلاحدید خود تغییر دهند و شکل تغییریافته را در خروجی استاندارد بنویسند.
هشدار: هوک precreate امکان اعمال تغییرات قدرتمندی مانند افزودن مانتهای اضافی به پیکربندی رانتایم را فراهم میکند. این قدرت همچنین به راحتی میتواند باعث خراب شدن تنظیمات شود. پیش از گزارش خطاهای libpod، کانتینر را با هوکهای precreate غیرفعال اجرا کنید تا ببینید آیا مشکل ناشی از یکی از این هوکهاست یا خیر.
--identity=path
مسیر فایل هویت SSH (کلید خصوصی). اگر فایل هویت رمزگذاری شده باشد، پودمن عبارت عبور (passphrase) را از کاربر درخواست میکند. اگر هیچ فایل هویتی مشخص نشده باشد و هیچ کاربری ارائه نگردد، پودمن به طور پیشفرض از کاربری که دستور پودمن را اجرا میکند استفاده خواهد کرد. پودمن گذرواژه ورود به سرور ریموت را از کاربر درخواست میکند.
ترتیب
تقدم تعیین
مقدار هویت:
- مقدار خط
فرمان
- متغیر
محیطی CONTAINER_SSHKEY،
در صورتی که
CONTAINER_HOST یافت
شود
- فایل containers.conf
اتصالات
ریموت به
طور
پیشفرض از
containers.conf محلی
استفاده
میکنند.
--imagestore=path
مسیر ذخیرهساز ایمیج (imagestore) که ایمیجها در آن ذخیره میشوند. به طور پیشفرض، کتابخانه ذخیرهسازی تمامی ایمیجها را در graphroot ذخیره میکند، اما اگر یک imagestore ارائه شود، کتابخانه ذخیرهسازی ایمیجهای تازهدریافتشده را در imagestore مشخصشده ذخیره کرده و از graphroot برای سایر موارد استفاده خواهد کرد. اگر کاربر از درایور overlay استفاده کند، ایمیجهایی که پیش از این بخشی از graphroot بودهاند همچنان در دسترس خواهند بود.
این گزینه تنظیم imagestore در containers-storage.conf(5) را بازنویسی میکند؛ برای جزئیات بیشتر به containers-storage.conf(5) مراجعه فرمایید.
--log-level=level
ثبت پیامهای وقایع در سطح مشخصشده و بالاتر از آن: debug، info، warn، error، fatal یا panic (پیشفرض: warn).
--module=path
بارگذاری ماژول مشخصشده از containers.conf(5). میتواند یک مسیر مطلق یا نسبی باشد. لطفاً برای جزئیات به containers.conf(5) مراجعه فرمایید.
این فلگ در کلاینت ریموت، از جمله در ماشینهای مک و ویندوز (به استثنای WSL2) پشتیبانی نمیشود. همچنین توجه داشته باشید که این فلگ یک فلگ سطح ریشه (اصلی) است و باید قبل از هر زیردستور Podman مشخص شود.
--network-config-dir=directory
مسیر دایرکتوری حاوی فایلهای پیکربندی شبکه. مقدار پیشفرض در حالت کاربر ریشه "/etc/containers/networks" و در حالت بدون ریشه "$graphroot/networks" است.
--out=path
تغییر مسیر خروجی پودمن به مسیر مشخصشده، بدون اینکه بر خروجی کانتینر یا لاگهای آن تأثیری بگذارد. از این پارامتر میتوان برای ثبت مستقیم خروجی هر یک از دستورات پودمن در یک فایل استفاده کرد؛ همچنین با مشخص کردن dev/null/ به عنوان مسیر، خروجی پودمن مسدود میشود. برای غیرفعالسازی صریح ثبت وقایع کانتینر، باید از گزینه --log-driver استفاده شود.
--remote, -r
هنگامی که true باشد، دسترسی به سرویس Podman به صورت ریموت خواهد بود. مقدار پیشفرض false است. تنظیمات را میتوان در فایل containers.conf تغییر داد. اگر متغیر محیطی CONTAINER_HOST تنظیم شده باشد، گزینه --remote به طور پیشفرض true خواهد بود.
--root=value
دایرکتوری ریشه ذخیرهسازی که دادهها، از جمله ایمیجها، در آن ذخیره میشوند (پیشفرض: "/var/lib/containers/storage" برای UID 0، و "$HOME/.local/share/containers/storage" برای سایر کاربران). دایرکتوری ریشه پیشفرض در containers-storage.conf(5) پیکربندی شده است.
این گزینه باعث نادیده گرفته شدن تنظیمات storage.options.<driver> در containers-storage.conf(5) و متغیر محیطی STORAGE_OPTS میشود. کاربر باید گزینههای اضافی را از طریق فلگ --storage-opt مشخص کند.
--runroot=value
دایرکتوری وضعیت ذخیرهسازی که تمام اطلاعات وضعیت در آن نگهداری میشود (پیشفرض: "/run/containers/storage" برای UID 0، و "/run/user/$UID/run" برای سایر کاربران). دایرکتوری وضعیت پیشفرض در containers-storage.conf(5) پیکربندی شده است.
--runtime=value
نام رانتایم OCI همانطور که در containers.conf مشخص شده یا مسیر مطلق به باینری سازگار با OCI که برای اجرای کانتینرها استفاده میشود.
--runtime-flag=flag
فلگهای عمومی را به رانتایم کانتینر اضافه میکند. برای مشاهده فهرست فلگهای پشتیبانیشده، لطفاً به صفحات راهنمای رانتایم کانتینر انتخابشده مراجعه کنید (runc رانتایم پیشفرض است و صفحه راهنمای آن runc(8) میباشد؛ هنگامی که ماشین برای cgroup V2 پیکربندی شده باشد، رانتایم پیشفرض crun است که صفحه راهنمای آن crun(8) میباشد).
فلگهای پیشفرض رانتایم را میتوان در containers.conf اضافه کرد.
نکته: پیشوند -- را همراه با فلگ ارسال نکنید. به عنوان مثال برای ارسال فلگ --log-format json در runc به podman build، گزینه ارسالی میتواند به صورت --runtime-flag log-format=json باشد.
--ssh=value
این گزینه به کاربر امکان میدهد حالت SSH را تغییر دهد؛ به این معنی که به جای استفاده از حالت پیشفرض golang، میتوان از --ssh=native برای استفاده از باینری ssh نصبشده روی سیستم و فایل کانفیگ اعلامشده در containers.conf استفاده کرد.
--storage-driver=value
درایور ذخیرهسازی. درایور ذخیرهسازی پیشفرض در containers-storage.conf(5) پیکربندی شده است. متغیر محیطی STORAGE_DRIVER مقدار پیشفرض را بازنویسی میکند. درایوری که صراحتاً با --storage-driver تعیین شود بر همه چیز اولویت دارد.
این گزینه باعث نادیده گرفته شدن تنظیمات storage.options.<driver> در containers-storage.conf(5) و متغیر محیطی STORAGE_OPTS میشود. کاربر باید گزینههای اضافی را از طریق فلگ --storage-opt مشخص کند.
--storage-opt=value
تعیین گزینههای درایور ذخیرهسازی. گزینههای پیشفرض درایور ذخیرهسازی در containers-storage.conf(5) پیکربندی شدهاند. متغیر محیطی STORAGE_OPTS بر پیشفرضها ارجحیت دارد. گزینههای مشخصشده توسط --storage-opt بر همه چیز اولویت دارند. مقدار ""=storage-opt-- را تعیین کنید تا هیچ گزینه ذخیرهسازی اعمال نشود.
گزینههای --root و --storage-driver گزینههای ذخیرهسازی پیشفرض را پاک کرده و تنظیمات درایور ذخیرهسازی پیشفرض در containers-storage.conf(5) و متغیر محیطی STORAGE_OPTS را نادیده میگیرند.
--syslog
ارسال اطلاعات لاگ به syslog و همچنین کنسول (پیشفرض false).
در کلاینتهای ریموت، از جمله ماشینهای مک و ویندوز (به جز WSL2)، لاگها به فایل $HOME/.config/containers/podman.log هدایت میشوند.
--tls-ca=path
مسیر فایل PEM حاوی مجموعه گواهیهای مرجع صدور گواهی (CA) برای اعتبارسنجی گواهی سرور.
--tls-cert=path
مسیر فایل PEM حاوی گواهی کلاینت TLS برای ارائه به سرور. گزینه --tls-key نیز باید ارائه شود.
--tls-details=path
مسیر یک فایل containers-tls-details.yaml(5) که رفتار TLS را در سراسر برنامه تحت تأثیر قرار میدهد.
در صورت عدم تنظیم، مقداری پیشفرض و معقول اعمال میشود که ممکن است در طول زمان تغییر کند (بسته به سیاست کلی سیستم، نسخه برنامه، نسخه زبان Go و موارد مشابه).
کاربران معمولاً نباید از این گزینه استفاده کنند مگر اینکه سازوکاری برای بهروز نگهداشتن مداوم این پیکربندی داشته باشند.
--tls-key=path
مسیر فایل PEM حاوی کلید خصوصی منطبق با --tls-cert. گزینه --tls-cert نیز باید ارائه گردد.
--tmpdir=path
مسیر دایرکتوری موقت (tmp) برای محتوای رانتایم libpod. به طور پیشفرض در حالت بدون ریشه به $XDG_RUNTIME_DIR/libpod/tmp و در حالت ریشه به /run/libpod/tmp اشاره دارد.
نکته: tmpdir-- برای ذخیرهسازی موقت ایمیجهای بارگیریشده استفاده نمیشود. برای تغییر مکان موقت ذخیرهسازی ایمیجهای کانتینر بارگیریشده، از متغیر محیطی TMPDIR استفاده کنید. پودمن به طور پیشفرض از /var/tmp استفاده میکند.
--transient-store
حالت ذخیرهسازی موقت سراسری (Transient Storage) را فعال میکند که در آن تمام متادیتای کانتینرها در یک رسانه ناپایدار (یعنی در مکان تعیینشده توسط --runroot) ذخیره میشود. این حالت امکان راهاندازی سریعتر کانتینرها را فراهم کرده و همچنین شروع تمیز سیستم در هنگام بوت مجدد را پس از خاموش شدنهای ناگهانی یا سایر مشکلات تضمین میکند. با این حال با مدل سنتی که کانتینرها در میان ریبوتها باقی میمانند سازگار نیست.
تنها پایگاهداده Podman (متادیتای کانتینرها و ولومها) به صورت موقت ذخیره میشود. دادههای ولوم روی دیسک تحت تأثیر قرار نمیگیرند و در میان راهاندازیهای مجدد باقی میمانند. پس از راهاندازی مجدد، ولومهای قبلاً ایجادشده در دستور podman volume ls نمایش داده نمیشوند زیرا رکوردهای دیتابیس آنها از بین رفته است، اما دادههای زیربنایی در دایرکتوری ذخیرهسازی ولوم باقی خواهند ماند. اگر بعداً کانتینری ولومی با همان نام ایجاد کند، مجدداً از همان دادههای موجود استفاده خواهد کرد. برای پاکسازی دادههای باقیمانده ولومهایی که دیگر توسط پایگاهداده ردیابی نمیشوند، از podman system prune --external استفاده کنید.
این گزینه باید به طور پیوسته در تمام دستورات Podman استفاده شود و نباید با استفاده معمولی (غیرگذرا) در یک محیط ترکیب شود.
مقدار پیشفرض این حالت در containers-storage.conf(5) پیکربندی شده است.
--url=value
آدرس URL برای دسترسی به سرویس پودمن (پیشفرض از containers.conf، در حالت بدون ریشه unix:///run/user/$UID/podman/podman.sock یا در حالت ریشه unix:///run/podman/podman.sock). تنظیم این گزینه سوئیچ --remote را به true تغییر میدهد.
- •
- قالب CONTAINER_HOST به صورت <schema>://[<user[:<password>]@]<host>[:<port>][<path>] است.
جزئیات:
- schema یکی از
موارد زیر
است:
* ssh (پیشفرض):
یک سوکت
محلی unix(7) روی
host و port
مشخصشده،
قابل
دسترسی از
طریق SSH
* tcp: اتصال TCP
بدون
رمزگذاری و
بدون احراز
هویت به host و
port مشخصشده
* unix: یک سوکت
محلی unix(7) در path
مشخصشده
یا مسیر
پیشفرض
کاربر
- مقدار user به
طور
پیشفرض root
یا کاربر
جاری در حال
اجرا است
(فقط در ssh)
- مقدار password
هیچ
پیشفرضی
ندارد (فقط
در ssh)
- مقدار host
الزامی است
و آدرس IP یا
نام ماشین
ارائهدهنده
سرویس Podman
میباشد (ssh
و tcp)
- مقدار port به
طور
پیشفرض 22
است (ssh و tcp)
- مقدار path به
طور
پیشفرض
/run/podman/podman.sock است،
یا در صورت
اجرای بدون
ریشه برابر
با /run/user/$UID/podman/podman.sock
خواهد بود
(unix)، یا باید
صراحتاً
مشخص شود (ssh)
ترتیب
تقدم تعیین
مقدار URL:
- مقدار خط
فرمان
- متغیر
محیطی CONTAINER_HOST
- جدول engine.service_destinations
در فایل containers.conf
به استثنای
دایرکتوری
/usr/share/containers
- unix:///run/podman/podman.sock
اتصالات ریموت به طور پیشفرض از containers.conf محلی استفاده میکنند.
چند نمونه
از مقادیر URL
در
قالبهای
معتبر:
- unix:///run/podman/podman.sock
- unix:///run/user/$UID/podman/podman.sock
- ssh://notroot@localhost:22/run/user/$UID/podman/podman.sock
- ssh://root@localhost:22/run/podman/podman.sock
- tcp://localhost:34451
- tcp://127.0.0.1:34451
--version, -v
چاپ نسخه برنامه.
--volumepath=value
دایرکتوری ولوم که اطلاعات ولومهای توکار در آن نگهداری میشود (پیشفرض: "/var/lib/containers/storage/volumes" برای UID 0 و "$HOME/.local/share/containers/storage/volumes" برای سایر کاربران). مسیر پیشفرض ولوم میتواند در containers.conf بازنویسی شود.
متغیرهای محیطی (ENVIRONMENT VARIABLES)
پودمن میتواند متغیرهای محیطی را از بخش env جدول [engine] در containers.conf تنظیم کند. این متغیرها را میتوان با ارسال متغیرهای محیطی پیش از دستورات podman بازنویسی کرد.
CONTAINERS_CONF
تنظیم مکانهای پیشفرض فایل containers.conf.
CONTAINERS_REGISTRIES_CONF
تنظیم مکان پیشفرض فایل registries.conf.
CONTAINERS_STORAGE_CONF
تنظیم مکان پیشفرض فایل storage.conf.
CONTAINER_CONNECTION
بازنویسی مقدار پیشفرض --connection برای دسترسی به سرویس پودمن. به طور خودکار گزینه --remote را فعال میکند.
CONTAINER_HOST
تنظیم مقدار پیشفرض --url برای دسترسی به سرویس پودمن. به طور خودکار گزینه --remote را فعال میکند.
CONTAINER_SSHKEY
تنظیم مقدار پیشفرض مسیر --identity به فایل کلید ssh مورد استفاده برای دسترسی به سرویس پودمن.
PODMAN_CONNECTIONS_CONF
مسیر فایلی که اتصالات سیستم و فارمهای ایجادشده با podman system connection add و podman farm add در آن ذخیره میشوند؛ به طور پیشفرض از ~/.config/containers/podman-connections.json استفاده میکند.
STORAGE_DRIVER
تنظیم مقدار پیشفرض --storage-driver.
STORAGE_OPTS
تنظیم مقدار پیشفرض --storage-opt. گزینههای درایور ذخیرهسازی را در containers-storage.conf(5) بازنویسی میکند. در صورت تنظیم گزینههای --root یا --storage-driver نادیده گرفته میشود.
TMPDIR
تنظیم مکان ذخیرهسازی موقت ایمیجهای بارگیریشده کانتینر. پودمن به طور پیشفرض از /var/tmp استفاده میکند.
XDG_CONFIG_HOME
در حالت بدون ریشه (Rootless)، فایلهای پیکربندی در صورت مشخص بودن از XDG_CONFIG_HOME خوانده میشوند، در غیر این صورت در دایرکتوری خانگی کاربر تحت $HOME/.config/containers خوانده خواهند شد.
XDG_DATA_HOME
در حالت بدون ریشه، در صورت مشخص بودن، ایمیجها در XDG_DATA_HOME دریافت میشوند، در غیر این صورت در دایرکتوری خانگی کاربر تحت $HOME/.local/share/containers/storage قرار میگیرند.
XDG_RUNTIME_DIR
در حالت بدون ریشه، دادههای پیکربندی موقت در ${XDG_RUNTIME_DIR}/containers ذخیره میشوند.
PODMAN_NO_PAUSE_PROCESS
در حالت بدون ریشه، اگر روی مقداری غیر از "0" تنظیم شود، پودمن از فرایند مکث (pause process) استفاده نمیکند. هندلهای فایل فضای نام ذخیره میشوند تا در صورت زنده بودن، امکان پیوستن مجدد به فضای نام کاربری و مانت موجود فراهم گردد.
دسترسی از راه دور (REMOTE ACCESS)
دستور Podman را میتوان با استفاده از فلگ --remote همراه با سرویسهای ریموت استفاده کرد. اتصالات را میتوان با استفاده از سوکتهای دامنه یونیکس محلی، SSH یا مستقیماً به سوکتهای TCP برقرار کرد. هنگام مشخص کردن فلگ podman --remote، فقط گزینههای عمومی --url، --identity، --log-level و --connection استفاده میشوند.
اطلاعات اتصال را میتوان با استفاده از فایل containers.conf نیز مدیریت کرد.
کدهای خروج (EXIT CODES)
کد خروج از podman اطلاعاتی درباره علت عدم اجرای کانتینر یا دلیل خروج آن ارائه میدهد. هنگامی که دستورات podman با یک کد غیرصفر خارج میشوند، کدهای خروج از استاندارد chroot پیروی میکنند، به شرح زیر:
125 خطا مربوط به خود پودمن است:
$ podman run --foo busybox; echo $? Error: unknown flag: --foo 125
126 یک دستور کانتینر اجرا شده و امکان فراخوانی آن دستور وجود ندارد:
$ podman run busybox /etc; echo $? Error: container_linux.go:346: starting container process caused "exec: 126
127 یک دستور کانتینر اجرا شده و آن دستور پیدا نمیشود:
$ podman run busybox foo; echo $? Error: container_linux.go:346: starting container process caused "exec: 127
کد خروج در غیر این صورت، podman کد خروج دستور کانتینر را بازمیگرداند:
$ podman run busybox /bin/sh -c 'exit 3'; echo $? 3
دستورات (COMMANDS)
| دستور | توضیحات |
| podman-artifact(1) | مدیریت آرتیفکتهای OCI. |
| podman-attach(1) | متصل شدن به یک کانتینر در حال اجرا. |
| podman-auto-update(1) | بهروزرسانی خودکار کانتینرها بر اساس سیاست بهروزرسانی خودکار آنها |
| podman-build(1) | ساخت یک ایمیج کانتینر با استفاده از Containerfile. |
| podman-farm(1) | توزیع ساخت ایمیجها بین ماشینهای پودمن برای معماریهای مختلف |
| podman-commit(1) | ایجاد ایمیج جدید بر اساس تغییرات اعمالشده در یک کانتینر. |
| podman-completion(1) | تولید اسکریپتهای تکمیل خودکار خط فرمان شل (Completion) |
| podman-compose(1) | اجرای بارهای کاری Compose از طریق یک ارائهدهنده خارجی compose. |
| podman-container(1) | مدیریت کانتینرها. |
| podman-cp(1) | کپی فایلها/پوشهها میان یک کانتینر و فایلسیستم محلی. |
| podman-create(1) | ایجاد یک کانتینر جدید. |
| podman-diff(1) | بررسی تغییرات فایلسیستم یک کانتینر یا ایمیج. |
| podman-events(1) | نظارت بر رویدادهای پودمن. |
| podman-exec(1) | اجرای یک دستور در یک کانتینر در حال اجرا. |
| podman-export(1) | خروجی گرفتن از محتویات فایلسیستم کانتینر در قالب آرشیو tar. |
| podman-generate(1) | تولید دادههای ساختاریافته بر اساس کانتینرها، پادها یا ولومها. |
| podman-healthcheck(1) | مدیریت بررسیهای سلامت (Healthcheck) برای کانتینرها. |
| podman-history(1) | نمایش تاریخچه لایههای یک ایمیج. |
| podman-image(1) | مدیریت ایمیجها. |
| podman-images(1) | فهرست کردن ایمیجها در ذخیرهساز محلی. |
| podman-import(1) | ایمپورت یک فایل tarball و ذخیره آن به عنوان ایمیج فایلسیستم. |
| podman-info(1) | نمایش اطلاعات سیستم مربوط به پودمن. |
| podman-init(1) | راهاندازی اولیه یک یا چند کانتینر. |
| podman-inspect(1) | نمایش پیکربندی آرتیفکت، کانتینر، ایمیج، ولوم، شبکه یا پاد. |
| podman-kill(1) | خاتمه دادن به فرایند اصلی در یک یا چند کانتینر. |
| podman-load(1) | بارگذاری ایمیج(ها) از آرشیوهای tar، دایرکتوریها یا نشانیهای اینترنتی به حافظه ذخیرهسازی کانتینر. |
| podman-login(1) | ورود به یک رجیستری کانتینر. |
| podman-logout(1) | خروج از یک رجیستری کانتینر. |
| podman-logs(1) | نمایش لاگهای یک یا چند کانتینر. |
| podman-machine(1) | مدیریت ماشین مجازی پودمن. |
| podman-manifest(1) | ایجاد و دستکاری لیستهای مانیفست و نمایههای ایمیج (Image Index). |
| podman-mount(1) | مانت کردن فایلسیستم ریشه یک کانتینر فعال. |
| podman-network(1) | مدیریت شبکههای پودمن. |
| podman-pause(1) | مکث و متوقف کردن موقت یک یا چند کانتینر. |
| podman-kube(1) | اجرا و پیادهسازی کانتینرها، پادها یا ولومها بر اساس فایل ورودی ساختاریافته کوبرنتیز. |
| podman-pod(1) | ابزار مدیریت گروههای کانتینری تحت عنوان پاد (Pod). |
| podman-port(1) | فهرست کردن نگاشتهای پورت برای یک کانتینر. |
| podman-ps(1) | نمایش اطلاعات مربوط به کانتینرها. |
| podman-pull(1) | دریافت (Pull) یک ایمیج از یک رجیستری. |
| podman-push(1) | ارسال (Push) یک ایمیج، لیست مانیفست یا نمایه ایمیج از ذخیرهساز محلی به مقصدی دیگر. |
| podman-quadlet(1) | امکان مدیریت فایلهای کادلِت (Quadlets) را برای کاربران فراهم میکند. |
| podman-rename(1) | تغییر نام یک کانتینر موجود. |
| podman-restart(1) | راهاندازی مجدد یک یا چند کانتینر. |
| podman-rm(1) | حذف یک یا چند کانتینر. |
| podman-rmi(1) | حذف یک یا چند ایمیج ذخیرهشده به صورت محلی. |
| podman-run(1) | اجرای یک دستور در یک کانتینر جدید. |
| podman-save(1) | ذخیره ایمیج(ها) در یک فایل آرشیو یا دایرکتوری. |
| podman-search(1) | جستجوی یک ایمیج در یک رجیستری. |
| podman-secret(1) | مدیریت دادههای محرمانه (Secrets) در پودمن. |
| podman-start(1) | شروع یک یا چند کانتینر. |
| podman-stats(1) | نمایش جریان زنده آمارهای مصرف منابع یک یا چند کانتینر. |
| podman-stop(1) | متوقف کردن یک یا چند کانتینر در حال اجرا. |
| podman-system(1) | مدیریت پودمن. |
| podman-tag(1) | افزودن یک نام اضافی (تگ) به یک ایمیج محلی. |
| podman-top(1) | نمایش فرایندهای در حال اجرای یک کانتینر. |
| podman-unmount(1) | آزاد کردن مانت فایلسیستم ریشه یک کانتینر فعال. |
| podman-unpause(1) | از سرگیری اجرای یک یا چند کانتینر مکثدادهشده. |
| podman-unshare(1) | اجرای یک دستور درون یک فضای نام کاربری تغییریافته. |
| podman-untag(1) | حذف یک یا چند نام (تگ) از یک ایمیج ذخیرهشده محلی. |
| podman-update(1) | بهروزرسانی پیکربندی یک کانتینر مشخص. |
| podman-version(1) | نمایش اطلاعات نسخه پودمن. |
| podman-volume(1) | ابزار ساده مدیریت ولومها (دیسکهای داده). |
| podman-wait(1) | انتظار برای توقف یک یا چند کانتینر و چاپ کدهای خروج آنها. |
فایلهای پیکربندی (CONFIGURATION FILES)
containers.conf (/usr/share/containers/containers.conf, /etc/containers/containers.conf, $HOME/.config/containers/containers.conf)
پودمن پیشفرضهای توکاری برای گزینههای خط فرمان دارد. این پیشفرضها را میتوان با استفاده از فایلهای پیکربندی containers.conf بازنویسی کرد.
توزیعها فایل /usr/share/containers/containers.conf را با تنظیمات پیشفرض خود عرضه میکنند. مدیران سیستم میتوانند با ایجاد فایل /etc/containers/containers.conf فیلدهای این فایل را بازنویسی نمایند. کاربران نیز میتوانند با ایجاد فایل $HOME/.config/containers/containers.conf پیشفرضها را بیشتر سفارشیسازی کنند. در صورت وجود این فایلها، پودمن پیشفرضهای توکار خود را با فیلدهای مشخصشده در این فایلها ادغام میکند. فیلدهای مشخصشده در فایل کاربر بر فایل مدیر سیستم، و آن نیز بر فایل توزیع ارجحیت دارد که خود بر پیشفرضهای توکار اولویت دارد.
اگر هیچ فایل containers.conf یافت نشود، پودمن از پیشفرضهای توکار استفاده میکند.
اگر متغیر محیطی CONTAINERS_CONF تنظیم شده باشد، مقدار آن به جای پیشفرض برای فایل containers.conf استفاده میشود.
mounts.conf (/usr/share/containers/mounts.conf)
فایل mounts.conf دایرکتوریهای اتصال ولوم را مشخص میکند که هنگام اجرای دستورات podman run یا podman start به طور خودکار درون کانتینرها متصل (مانت) میشوند. مدیران سیستم میتوانند با ایجاد /etc/containers/mounts.conf فایل پیشفرض را بازنویسی کنند.
هنگامی که پودمن در حالت بدون ریشه اجرا میشود، فایل $HOME/.config/containers/mounts.conf در صورت وجود، پیشفرض را بازنویسی میکند. برای جزئیات، به containers-mounts.conf(5) مراجعه کنید.
policy.json (/etc/containers/policy.json, $HOME/.config/containers/policy.json)
فایلهای سیاست تأیید امضا برای تعیین سیاستها (مانند کلیدهای مورد اعتماد) به کار میروند که هنگام تصمیمگیری درباره پذیرش معتبر بودن یک ایمیج یا امضاهای مجزای آن ایمیج اعمال میشوند. برای جزئیات، به containers-policy.json(5) مراجعه فرمایید.
registries.conf (/etc/containers/registries.conf, $HOME/.config/containers/registries.conf)
فایل registries.conf فایل پیکربندیای است که مشخص میکند هنگام کامل کردن نام ایمیجهایی که فاقد بخش رجیستری یا دامنه هستند، به کدام رجیستریهای کانتینر مراجعه شود.
کاربران غیر ریشه پودمن میتوانند فایل $HOME/.config/containers/registries.conf را ایجاد کنند تا به جای پیشفرضهای سیستمی استفاده شود.
اگر متغیر محیطی CONTAINERS_REGISTRIES_CONF تنظیم شده باشد، مقدار آن به جای پیشفرض برای فایل registries.conf استفاده میشود.
storage.conf (/etc/containers/storage.conf, $HOME/.config/containers/storage.conf)
فایل storage.conf فایل پیکربندی ذخیرهسازی برای تمام ابزارهایی است که از containers/storage استفاده میکنند.
فایل پیکربندی ذخیرهسازی، تمام گزینههای در دسترس برای ذخیرهسازی کانتینر را برای ابزارهایی که از ذخیرهساز اشتراکی کانتینر استفاده میکنند مشخص مینماید.
هنگامی که پودمن در حالت بدون ریشه اجرا میشود، فایل $HOME/.config/containers/storage.conf به جای پیشفرضهای سیستم مورد استفاده قرار میگیرد.
اگر متغیر محیطی CONTAINERS_STORAGE_CONF تنظیم شده باشد، مقدار آن به جای پیشفرض برای فایل storage.conf استفاده خواهد شد.
حالت بدون ریشه (ROOTLESS MODE)
پودمن میتواند به عنوان کاربر غیر ریشه نیز استفاده شود. هنگامی که پودمن در حالت بدون ریشه اجرا میشود، یک فضای نام کاربری به طور خودکار برای کاربر ایجاد میگردد که در /etc/subuid و /etc/subgid تعریف شده است.
کانتینرهای ایجادشده توسط یک کاربر غیر ریشه برای سایر کاربران قابل مشاهده نیستند و توسط پودمن در حال اجرا با کاربر ریشه دیده یا مدیریت نمیشوند.
لازم است چندین UID/GID برای یک کاربر تنظیم شده باشد. اطمینان حاصل کنید که کاربر در فایلهای /etc/subuid و /etc/subgid حضور دارد.
برای افزودن دامنهها به این فایلها، دستورات زیر را اجرا کنید:
$ sudo usermod --add-subuids 10000-75535 USERNAME $ sudo usermod --add-subgids 10000-75535 USERNAME
یا محتوا را به صورت دستی اضافه نمایید:
$ echo USERNAME:10000:65536 >> /etc/subuid $ echo USERNAME:10000:65536 >> /etc/subgid
برای اطلاعات بیشتر به صفحات راهنمای subuid(5) و subgid(5) مراجعه کنید.
نکته: وجود فاصلههای خالی (Whitespace) در هر سطر از /etc/subuid یا /etc/subgid، از جمله فاصلههای خالی در انتهای خطوط، ممکن است باعث خطای عدم یافتن مدخل شود.
در صورت مشخص بودن، ایمیجها در XDG_DATA_HOME دریافت میشوند، در غیر این صورت در دایرکتوری خانگی کاربر تحت .local/share/containers/storage ذخیره خواهند شد.
در حال حاضر برای ایجاد یک دستگاه شبکه به نصب pasta نیاز است، در غیر این صورت کانتینرهای بدون ریشه باید در فضای نام شبکه میزبان اجرا شوند.
در برخی محیطها مانند HPC (رایانش با کارایی بالا)، کاربران نمیتوانند از UIDها و GIDهای اضافی سیستمهای /etc/subuid و /etc/subgid بهرهمند شوند. با این حال، در این محیط، پودمن بدون ریشه میتواند با یک UID واحد کار کند. برای این منظور، گزینه ignore_chown_errors را در فایل containers-storage.conf(5) تنظیم کنید. این گزینه به پودمن میگوید هنگام دریافت یک ایمیج، خطاهای chown را هنگام تلاش برای تغییر مالکیت یک فایل در ایمیج کانتینر جهت تطابق با UID غیرریشه در ایمیج، نادیده بگیرد. این به این معنی است که تمام فایلها با UID کاربر ذخیره میشوند. توجه داشته باشید که این موضوع میتواند هنگام اجرای کانتینر مشکلاتی ایجاد کند.
نکته: فایلسیستمهای پشتیبانینشده در حالت بدون ریشه
فایلسیستم Overlay (OverlayFS) با هستههای قبل از 5.12.9 در حالت بدون ریشه پشتیبانی نمیشود. بسته fuse-overlayfs ابزاری است که قابلیت OverlayFS را در فضای نام کاربری فراهم میکند و امکان مانت کردن فایلسیستمها را در محیطهای بدون ریشه میسر میسازد. توصیه میشود بسته fuse-overlayfs نصب شود. در حالت بدون ریشه، در صورت نصب بودن، پودمن به طور خودکار از برنامه fuse-overlayfs به عنوان mount_program استفاده میکند، مادامی که فایل $HOME/.config/containers/storage.conf قبلاً ایجاد نشده باشد. اگر storage.conf در پوشه خانگی وجود دارد، mount_program = "/usr/bin/fuse-overlayfs" را تحت [storage.options.overlay] اضافه کنید تا این ویژگی فعال شود.
فایلسیستم شبکه (NFS) و سایر فایلسیستمهای توزیعشده (به عنوان مثال: Lustre، Spectrum Scale و GPFS) هنگام اجرا در حالت بدون ریشه پشتیبانی نمیشوند زیرا این فایلسیستمها فضای نام کاربری را درک نمیکنند. با این حال، پودمن بدون ریشه میتواند با تغییر دادن $HOME/.config/containers/storage.conf بهگونهای که گزینه graphroot به دایرکتوری ذخیرهشده روی حافظه محلی (غیر NFS) اشاره کند، از پوشه خانگی NFS استفاده کند.
همچنین ببینید (SEE ALSO)
containers-mounts.conf(5), containers.conf(5), containers-registries.conf(5), containers-storage.conf(5), buildah(1), oci-hooks(5), containers-policy.json(5), crun(1), runc(8), subuid(5), subgid(5), pasta(1), conmon(8), podman-quadlet(1), podman-systemd.unit(5)
عیبیابی (Troubleshooting)
برای راهحلهای مربوط به مشکلات رایج، podman-troubleshooting(7) را ببینید.
برای مشکلات مربوط به حالت بدون ریشه، podman-rootless(7) را ببینید.
تاریخچه (HISTORY)
دسامبر ۲۰۱۶، در ابتدا توسط Dan Walsh گردآوری شد: dwalsh@redhat.com ⟨mailto:dwalsh@redhat.com⟩