podman-image.unit(5) File Formats Manual podman-image.unit(5)

podman-image.unit - فایل‌های واحد systemd برای مدیریت دریافت ایمیج‌های کانتینر با استفاده از Podman Quadlet

name.image

فایل‌های ایمیج با پسوند .image نام‌گذاری می‌شوند و شامل بخش [Image] هستند که دستور دریافت (pull) ایمیج کانتینر را توصیف می‌کند. سرویس ایجادشده یک دستور یک‌باره است که از وجود ایمیج روی میزبان اطمینان حاصل کرده و در صورت نیاز آن را دریافت می‌کند.

استفاده از واحدهای ایمیج به کانتینرها و حجم‌ها اجازه می‌دهد به ایمیج‌هایی که به‌طور خودکار دریافت شده‌اند وابسته باشند. این موضوع به‌ویژه هنگام استفاده از گزینه‌های خاص برای کنترل دریافت ایمیج جالب توجه است.

فایل .image هنگام بوت یا بارگذاری مجدد توسط podman-system-generator پردازش شده و یک .service در systemd ایجاد می‌کند که دستور podman image pull را اجرا می‌نماید.

یک فایل .image می‌تواند در گزینه Image= فایل .container ارجاع داده شود.

گزینه‌های معتبر برای [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

تمام ایمیج‌های برچسب‌گذاری‌شده در مخزن دریافت می‌شوند.

*مهم: هنگام استفاده از فلگ all-tags، پادمن روی مخازن جستجو در containers-registries.conf(5) پیمایش نمی‌کند، بلکه همیشه از docker.io برای نام‌های کوتاه و غیرکامل ایمیج استفاده می‌نماید.*

معماری ایمیج دریافتی را رونویسی (override) می‌کند؛ پیش‌فرض معماری میزبان است. برای مثال، arm. مگر در صورت بازنویسی، جستجوهای بعدی همان ایمیج در فضای ذخیره‌سازی محلی صرف‌نظر از معماری میزبان با این معماری مطابقت خواهند داشت.

مسیر فایل احراز هویت. مقدار پیش‌فرض در لینوکس ${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 امکان‌پذیر است.

از گواهی‌های موجود در path (شامل *.crt، *.cert، *.key) برای اتصال به رجیستری استفاده می‌کند. (پیش‌فرض: /etc/containers/certs.d) برای جزئیات بیشتر به containers-certs.d(5) مراجعه کنید. (این گزینه در کلاینت راه دور پادمن، شامل ماشین‌های مک و ویندوز (به‌جز WSL2) در دسترس نیست)

ماژول مشخص‌شده‌ی containers.conf(5) را بارگذاری می‌کند.

این گزینه می‌تواند چندین بار درج شود.

نام کاربری و رمزی [username[:password]] که در صورت نیاز برای احراز هویت در رجیستری استفاده می‌شود. اگر یکی یا هر دو مقدار مشخص نشوند، اعلان خط فرمان ظاهر می‌شود و مقدار قابل ورود خواهد بود. گذرواژه بدون بازتاب (echo) تایپ می‌شود.

توجه داشته باشید که مشخصات ارائه‌شده فقط برای احراز هویت در رجیستری‌های مقصد استفاده می‌شوند. از آن‌ها برای آینه‌ها (mirrors) یا زمان بازنویسی رجیستری استفاده نمی‌شود (به containers-registries.conf(5) مراجعه کنید)؛ برای احراز هویت در آن‌ها استفاده از فایل containers-auth.json(5) را مد نظر قرار دهید.

کلید یا عبارت عبور [key[:passphrase]] که برای رمزگشایی ایمیج‌ها استفاده می‌شود. کلید می‌تواند به کلیدها و/یا گواهی‌ها اشاره کند. رمزگشایی با تمام کلیدها امتحان می‌شود. اگر کلید با یک عبارت عبور محافظت شده باشد، ارسال آن در آرگومان الزامی است و در غیر این صورت حذف می‌شود.

این کلید شامل فهرستی از آرگومان‌ها است که در فایل تولیدشده مستقیماً پس از دستور podman قرار می‌گیرند. می‌توان از آن برای دسترسی به ویژگی‌هایی از پادمن استفاده کرد که در حالت عادی توسط مولد پشتیبانی نمی‌شوند. از آنجا که مولد از تداخلات و رفتارهای غیرمنتظره احتمالی ناشی از این آرگومان‌ها آگاه نیست، استفاده از این گزینه توصیه نمی‌شود.

قالب این مقدار فهرستی از آرگومان‌ها است که با فاصله جدا شده‌اند و در صورت تمایل می‌توان تک‌تک آن‌ها را اسکیپ کرد تا شامل فاصله‌ها و سایر نویسه‌های کنترلی شوند.

این کلید می‌تواند چندین بار درج شود.

ایمیجی که باید دریافت شود. توصیه می‌شود به دلایل کارایی و استحکام، به‌جای نام کوتاه از نام کامل و واجد شرایط ایمیج (fully qualified image name) استفاده شود.

قالب نام همانند زمانی است که به دستور podman pull داده می‌شود. این کلید از استفاده از :tag یا چکیده‌ها (digests) برای تضمین نسخه مشخصی از ایمیج پشتیبانی می‌کند.

نام کامل و معتبر واقعی ایمیج (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

سیستم‌عامل ایمیج دریافتی را بازنویسی می‌کند، پیش‌فرض سیستم‌عامل میزبان است. برای مثال، windows. مگر در صورت بازنویسی، جستجوهای بعدی همان ایمیج در فضای ذخیره‌سازی محلی صرف‌نظر از سیستم‌عامل میزبان با این سیستم‌عامل مطابقت خواهند داشت.

این کلید شامل فهرستی از آرگومان‌ها است که در فایل تولیدشده مستقیماً به انتهای دستور podman اضافه می‌شوند. می‌توان از آن برای دسترسی به ویژگی‌هایی از پادمن استفاده کرد که در حالت عادی توسط مولد پشتیبانی نمی‌شوند. از آنجا که مولد از تداخلات و رفتارهای غیرمنتظره احتمالی ناشی از این آرگومان‌ها آگاه نیست، استفاده از این گزینه توصیه نمی‌شود.

قالب این مقدار فهرستی از آرگومان‌ها است که با فاصله جدا شده‌اند و در صورت تمایل می‌توان تک‌تک آن‌ها را اسکیپ کرد تا شامل فاصله‌ها و سایر نویسه‌های کنترلی شوند.

این کلید می‌تواند چندین بار درج شود.

سیاست دریافت ایمیج. مقدار پیش‌فرض always است.

  • always: همیشه ایمیج را دریافت کن و در صورت ناموفق بودن دریافت، خطا صادر کن.
  • missing: تنها در صورتی ایمیج را دریافت کن که در فضای ذخیره‌سازی محلی کانتینرها یافت نشود. در صورتی که ایمیجی یافت نشد و دریافت با شکست مواجه شد، خطا صادر کن.
  • never: هرگز ایمیج را دریافت نکن؛ تنها از نسخه محلی استفاده کن. اگر ایمیج به‌صورت محلی موجود نبود، خطا صادر کن.
  • newer: در صورتی که ایمیج روی رجیستری جدیدتر از نسخه موجود در فضای ذخیره‌سازی محلی کانتینرها باشد، آن را دریافت کن. یک ایمیج زمانی جدیدتر در نظر گرفته می‌شود که چکیده‌های متفاوتی داشته باشد. مقایسه برچسب‌های زمانی مستعد خطاست. در صورت پیدا شدن یک ایمیج محلی، خطاهای دریافت نادیده گرفته می‌شوند.

تعداد دفعات تلاش مجدد برای دریافت یا ارسال ایمیج‌ها بین رجیستری و فضای ذخیره‌سازی محلی در صورت بروز شکست. مقدار پیش‌فرض 3 است.

مدت‌زمان تاخیر بین دفعات تلاش مجدد هنگام دریافت یا ارسال ایمیج‌ها بین رجیستری و فضای ذخیره‌سازی محلی در صورت بروز شکست. پیش‌فرض این است که با دو ثانیه شروع شده و سپس تاخیر نمایی (exponential backoff) اعمال شود. زمانی که این مقدار تنظیم شود، همین تاخیر استفاده شده و افزایش نمایی رخ نمی‌دهد.

الزام استفاده از HTTPS و اعتبارسنجی گواهی‌ها هنگام تماس با رجیستری‌ها (پیش‌فرض: true). اگر صراحتاً روی true تنظیم شود، اعتبارسنجی TLS استفاده می‌شود. اگر روی false تنظیم شود، اعتبارسنجی TLS استفاده نمی‌شود. اگر مشخص نشود، اعتبارسنجی TLS استفاده می‌شود مگر اینکه رجیستری مقصد به‌عنوان رجیستری ناامن در containers-registries.conf(5) فهرست شده باشد.

استفاده از VARIANT به‌جای گونه‌ی پیش‌فرض معماری ایمیج کانتینر. برخی ایمیج‌ها می‌توانند از چندین گونه‌ی مختلف معماری arm مانند arm/v5 و arm/v7 استفاده کنند.

دریافت پایه‌ای ایمیج:

[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

podman-image-pull(1), podman-systemd.unit(5), systemd.unit(5)