| podman-image.unit(5) | File Formats Manual | podman-image.unit(5) |
نام (NAME)
podman-image.unit - فایلهای واحد systemd برای مدیریت دریافت ایمیجهای کانتینر با استفاده از Podman Quadlet
خلاصه دستور (SYNOPSIS)
name.image
توضیحات (DESCRIPTION)
فایلهای ایمیج با پسوند .image نامگذاری میشوند و شامل بخش [Image] هستند که دستور دریافت (pull) ایمیج کانتینر را توصیف میکند. سرویس ایجادشده یک دستور یکباره است که از وجود ایمیج روی میزبان اطمینان حاصل کرده و در صورت نیاز آن را دریافت میکند.
استفاده از واحدهای ایمیج به کانتینرها و حجمها اجازه میدهد به ایمیجهایی که بهطور خودکار دریافت شدهاند وابسته باشند. این موضوع بهویژه هنگام استفاده از گزینههای خاص برای کنترل دریافت ایمیج جالب توجه است.
خلاصه کاربرد (USAGE SUMMARY)
فایل .image هنگام بوت یا بارگذاری مجدد توسط podman-system-generator پردازش شده و یک .service در systemd ایجاد میکند که دستور podman image pull را اجرا مینماید.
یک فایل .image میتواند در گزینه Image= فایل .container ارجاع داده شود.
گزینهها (OPTIONS)
گزینههای معتبر برای [Image] در زیر فهرست شدهاند:
| گزینههای [Image] | معادل در podman image pull |
| AllTags=true | --all-tags |
| Arch=aarch64 | --arch=aarch64 |
| AuthFile=/etc/registry/auth.json | --authfile=/etc/registry/auth.json |
| CertDir=/etc/registry/certs | --cert-dir=/etc/registry/certs |
| ContainersConfModule=/etc/nvd.conf | --module=/etc/nvd.conf |
| Creds=myname:mypassword | --creds=myname:mypassword |
| DecryptionKey=/etc/registry.key | --decryption-key=/etc/registry.key |
| GlobalArgs=--log-level=debug | --log-level=debug |
| Image=quay.io/centos/centos:latest | podman image pull quay.io/centos/centos:latest |
| ImageTag=quay.io/centos/centos:latest | از این نام هنگام حل ارجاعات .image استفاده میشود |
| OS=windows | --os=windows |
| PodmanArgs=--os=linux | --os=linux |
| Policy=always | --policy=always |
| Retry=5 | --retry=5 |
| RetryDelay=10s | --retry-delay=10s |
| TLSVerify=false | --tls-verify=false |
| Variant=arm/v7 | --variant=arm/v7 |
AllTags=true
تمام ایمیجهای برچسبگذاریشده در مخزن دریافت میشوند.
*مهم: هنگام استفاده از فلگ all-tags، پادمن روی مخازن جستجو در containers-registries.conf(5) پیمایش نمیکند، بلکه همیشه از docker.io برای نامهای کوتاه و غیرکامل ایمیج استفاده مینماید.*
Arch=ARCH
معماری ایمیج دریافتی را رونویسی (override) میکند؛ پیشفرض معماری میزبان است. برای مثال، arm. مگر در صورت بازنویسی، جستجوهای بعدی همان ایمیج در فضای ذخیرهسازی محلی صرفنظر از معماری میزبان با این معماری مطابقت خواهند داشت.
AuthFile=path
مسیر فایل احراز هویت. مقدار پیشفرض در لینوکس ${XDG_RUNTIME_DIR}/containers/auth.json و در ویندوز/مکاواس $HOME/.config/containers/auth.json است. این فایل توسط podman login ایجاد میشود. اگر وضعیت احراز هویت در آنجا یافت نشود، $HOME/.docker/config.json بررسی میشود که با استفاده از docker login تنظیم میگردد.
نکته: همچنین این امکان وجود دارد که مسیر پیشفرض فایل احراز هویت با تنظیم متغیر محیطی REGISTRY_AUTH_FILE بازنویسی شود. این کار با دستور export REGISTRY_AUTH_FILE=path امکانپذیر است.
CertDir=path
از گواهیهای موجود در path (شامل *.crt، *.cert، *.key) برای اتصال به رجیستری استفاده میکند. (پیشفرض: /etc/containers/certs.d) برای جزئیات بیشتر به containers-certs.d(5) مراجعه کنید. (این گزینه در کلاینت راه دور پادمن، شامل ماشینهای مک و ویندوز (بهجز WSL2) در دسترس نیست)
ContainersConfModule=module
ماژول مشخصشدهی containers.conf(5) را بارگذاری میکند.
این گزینه میتواند چندین بار درج شود.
Creds=[username[:password]]
نام کاربری و رمزی [username[:password]] که در صورت نیاز برای احراز هویت در رجیستری استفاده میشود. اگر یکی یا هر دو مقدار مشخص نشوند، اعلان خط فرمان ظاهر میشود و مقدار قابل ورود خواهد بود. گذرواژه بدون بازتاب (echo) تایپ میشود.
توجه داشته باشید که مشخصات ارائهشده فقط برای احراز هویت در رجیستریهای مقصد استفاده میشوند. از آنها برای آینهها (mirrors) یا زمان بازنویسی رجیستری استفاده نمیشود (به containers-registries.conf(5) مراجعه کنید)؛ برای احراز هویت در آنها استفاده از فایل containers-auth.json(5) را مد نظر قرار دهید.
DecryptionKey=key[:passphrase]
کلید یا عبارت عبور [key[:passphrase]] که برای رمزگشایی ایمیجها استفاده میشود. کلید میتواند به کلیدها و/یا گواهیها اشاره کند. رمزگشایی با تمام کلیدها امتحان میشود. اگر کلید با یک عبارت عبور محافظت شده باشد، ارسال آن در آرگومان الزامی است و در غیر این صورت حذف میشود.
GlobalArgs=
این کلید شامل فهرستی از آرگومانها است که در فایل تولیدشده مستقیماً پس از دستور podman قرار میگیرند. میتوان از آن برای دسترسی به ویژگیهایی از پادمن استفاده کرد که در حالت عادی توسط مولد پشتیبانی نمیشوند. از آنجا که مولد از تداخلات و رفتارهای غیرمنتظره احتمالی ناشی از این آرگومانها آگاه نیست، استفاده از این گزینه توصیه نمیشود.
قالب این مقدار فهرستی از آرگومانها است که با فاصله جدا شدهاند و در صورت تمایل میتوان تکتک آنها را اسکیپ کرد تا شامل فاصلهها و سایر نویسههای کنترلی شوند.
این کلید میتواند چندین بار درج شود.
Image=
ایمیجی که باید دریافت شود. توصیه میشود به دلایل کارایی و استحکام، بهجای نام کوتاه از نام کامل و واجد شرایط ایمیج (fully qualified image name) استفاده شود.
قالب نام همانند زمانی است که به دستور podman pull داده میشود. این کلید از استفاده از :tag یا چکیدهها (digests) برای تضمین نسخه مشخصی از ایمیج پشتیبانی میکند.
ImageTag=
نام کامل و معتبر واقعی ایمیج (FQIN) ارجاع داده شده در Image. تنها زمانی معنادار است که منبع یک فایل یا آرشیو دایرکتوری باشد.
برای مثال، ایمیجی که با دستور پادمن زیر در یک docker-archive ذخیره شده است:
podman image save --format docker-archive --output /tmp/archive-file.tar quay.io/podman/stable:latest
نیازمند تنظیم موارد زیر است: - Image=docker-archive:/tmp/archive-file.tar - ImageTag=quay.io/podman/stable:latest
OS=os
سیستمعامل ایمیج دریافتی را بازنویسی میکند، پیشفرض سیستمعامل میزبان است. برای مثال، windows. مگر در صورت بازنویسی، جستجوهای بعدی همان ایمیج در فضای ذخیرهسازی محلی صرفنظر از سیستمعامل میزبان با این سیستمعامل مطابقت خواهند داشت.
PodmanArgs=
این کلید شامل فهرستی از آرگومانها است که در فایل تولیدشده مستقیماً به انتهای دستور podman اضافه میشوند. میتوان از آن برای دسترسی به ویژگیهایی از پادمن استفاده کرد که در حالت عادی توسط مولد پشتیبانی نمیشوند. از آنجا که مولد از تداخلات و رفتارهای غیرمنتظره احتمالی ناشی از این آرگومانها آگاه نیست، استفاده از این گزینه توصیه نمیشود.
قالب این مقدار فهرستی از آرگومانها است که با فاصله جدا شدهاند و در صورت تمایل میتوان تکتک آنها را اسکیپ کرد تا شامل فاصلهها و سایر نویسههای کنترلی شوند.
این کلید میتواند چندین بار درج شود.
Policy=always
سیاست دریافت ایمیج. مقدار پیشفرض always است.
- always: همیشه ایمیج را دریافت کن و در صورت ناموفق بودن دریافت، خطا صادر کن.
- missing: تنها در صورتی ایمیج را دریافت کن که در فضای ذخیرهسازی محلی کانتینرها یافت نشود. در صورتی که ایمیجی یافت نشد و دریافت با شکست مواجه شد، خطا صادر کن.
- never: هرگز ایمیج را دریافت نکن؛ تنها از نسخه محلی استفاده کن. اگر ایمیج بهصورت محلی موجود نبود، خطا صادر کن.
- newer: در صورتی که ایمیج روی رجیستری جدیدتر از نسخه موجود در فضای ذخیرهسازی محلی کانتینرها باشد، آن را دریافت کن. یک ایمیج زمانی جدیدتر در نظر گرفته میشود که چکیدههای متفاوتی داشته باشد. مقایسه برچسبهای زمانی مستعد خطاست. در صورت پیدا شدن یک ایمیج محلی، خطاهای دریافت نادیده گرفته میشوند.
Retry=attempts
تعداد دفعات تلاش مجدد برای دریافت یا ارسال ایمیجها بین رجیستری و فضای ذخیرهسازی محلی در صورت بروز شکست. مقدار پیشفرض 3 است.
RetryDelay=duration
مدتزمان تاخیر بین دفعات تلاش مجدد هنگام دریافت یا ارسال ایمیجها بین رجیستری و فضای ذخیرهسازی محلی در صورت بروز شکست. پیشفرض این است که با دو ثانیه شروع شده و سپس تاخیر نمایی (exponential backoff) اعمال شود. زمانی که این مقدار تنظیم شود، همین تاخیر استفاده شده و افزایش نمایی رخ نمیدهد.
TLSVerify=
الزام استفاده از HTTPS و اعتبارسنجی گواهیها هنگام تماس با رجیستریها (پیشفرض: true). اگر صراحتاً روی true تنظیم شود، اعتبارسنجی TLS استفاده میشود. اگر روی false تنظیم شود، اعتبارسنجی TLS استفاده نمیشود. اگر مشخص نشود، اعتبارسنجی TLS استفاده میشود مگر اینکه رجیستری مقصد بهعنوان رجیستری ناامن در containers-registries.conf(5) فهرست شده باشد.
Variant=VARIANT
استفاده از VARIANT بهجای گونهی پیشفرض معماری ایمیج کانتینر. برخی ایمیجها میتوانند از چندین گونهی مختلف معماری arm مانند arm/v5 و arm/v7 استفاده کنند.
مثالها (EXAMPLES)
دریافت پایهای ایمیج:
[Image] Image=quay.io/centos/centos:latest
دریافت از آرشیو داکر:
[Image] Image=docker-archive:/tmp/centos.tar ImageTag=quay.io/centos/centos:latest
دریافت با اطلاعات احراز هویت:
[Image] Image=quay.io/private/image:latest Creds=myuser:mypassword
همچنین ببینید (SEE ALSO)
podman-image-pull(1), podman-systemd.unit(5), systemd.unit(5)