podman-push(1) General Commands Manual podman-push(1)

podman-push - ارسال یک ایمیج، فهرست مانیفست یا نمایه ایمیج از حافظه محلی به مقصدی دیگر

podman push [گزینه‌ها] ایمیج [مقصد]

podman image push [گزینه‌ها] ایمیج [مقصد]

یک ایمیج، فهرست مانیفست یا نمایه ایمیج (image index) را از حافظه ذخیره‌سازی محلی به یک مقصد مشخص ارسال (push) می‌کند.

ایمیج‌ها از میان آن‌هایی که در حافظه ذخیره‌سازی محلی ایمیج قرار دارند ارسال می‌شوند.

مقصد (DESTINATION) مکانی است که ایمیج کانتینر به آن ارسال می‌شود. این گزینه از تمامی شیوه‌های انتقال موجود در containers-transports(5) پشتیبانی می‌کند. اگر شیوه‌ای برای انتقال مشخص نشود، شیوه انتقال docker (یعنی رجیستری کانتینر) استفاده می‌شود. برای کلاینت‌های راه دور، از جمله ماشین‌های مک و ویندوز (به استثنای WSL2)، انتقال docker تنها شیوه پشتیبانی‌شده است.

# ارسال به یک رجیستری کانتینر
$ podman push quay.io/podman/stable
# ارسال به یک رجیستری کانتینر از طریق شیوه انتقال docker
$ podman push docker://quay.io/podman/stable
# ارسال به یک رجیستری کانتینر با تگی دیگر
$ podman push myimage quay.io/username/myimage
# ارسال به یک دایرکتوری محلی
$ podman push myimage dir:/tmp/myimage
# ارسال به یک فایل تاربال در قالب docker-archive
$ podman push myimage docker-archive:/tmp/myimage
# ارسال به دیمن محلی داکر
$ sudo podman push myimage docker-daemon:docker.io/library/myimage:33
# ارسال به یک فایل تاربال در قالب OCI
$ podman push myimage oci-archive:/tmp/myimage

مسیر فایل احراز هویت. مقدار پیش‌فرض در لینوکس ${XDG_RUNTIME_DIR}/containers/auth.json و در ویندوز/macOS برابر با $HOME/.config/containers/auth.json است. این فایل توسط podman login ایجاد می‌شود. اگر وضعیت احراز هویت در آنجا یافت نشود، فایل $HOME/.docker/config.json بررسی می‌شود که با docker login تنظیم می‌شود.

نکته: همچنین امکان بازنویسی مسیر پیش‌فرض فایل احراز هویت با تنظیم متغیر محیطی REGISTRY_AUTH_FILE وجود دارد. این کار را می‌توان با دستور export REGISTRY_AUTH_FILE=مسیر انجام داد.

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

فشرده‌سازی لایه‌های ایمیج تاربال هنگام ارسال به یک دایرکتوری با استفاده از شیوه انتقال 'dir'. (پیش‌فرض همان نوع فشرده‌سازی مبدأ است؛ فشرده‌شده یا فشرده‌نشده).

نکته: این گزینه تنها در هنگام استفاده از شیوه انتقال dir قابل تنظیم است.

قالب فشرده‌سازی مورد استفاده را مشخص می‌کند. مقادیر پشتیبانی‌شده عبارتند از: gzip، zstd و zstd:chunked. مقدار پیش‌فرض gzip است مگر اینکه در فایل containers.conf بازنویسی شود. قالب zstd:chunked با رمزگذاری ایمیج‌ها ناسازگار است و در این حالت همراه با یک هشدار به عنوان zstd در نظر گرفته خواهد شد.

سطح فشرده‌سازی مورد استفاده را مشخص می‌کند. این مقدار به الگوریتم فشرده‌سازی مورد استفاده بستگی دارد؛ به عنوان مثال برای zstd مقادیر پذیرفته‌شده در محدوده ۱ تا ۲۰ (شامل هر دو) با مقدار پیش‌فرض ۳ است، در حالی که برای gzip در محدوده ۱ تا ۹ (شامل هر دو) و با مقدار پیش‌فرض ۵ است.

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

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

پس از کپی کردن ایمیج، دایجست ایمیج حاصل را در فایل می‌نویسد.

این یک گزینه مخصوص داکر برای غیرفعال کردن اعتبارسنجی ایمیج در رجیستری کانتینر است و توسط پادمن پشتیبانی نمی‌شود. این گزینه بدون عملیات (NOOP) بوده و صرفاً جهت سازگاری اسکریپت‌ها ارائه شده است.

لایه‌(هایی) که باید رمزگذاری شوند: نمایه‌های لایه بر پایه صفر (0-indexed) با پشتیبانی از نمایه‌سازی منفی (مثلاً 0 لایه اول است و -1 لایه آخر). در صورت عدم تعریف، اگر گزینه --encryption-key مشخص شده باشد، تمامی لایه‌ها رمزگذاری می‌شوند.

فرمت [protocol:keyfile] پروتکل رمزگذاری را مشخص می‌کند که می‌تواند JWE (RFC7516)، PGP (RFC4880) و PKCS7 (RFC2315) باشد و همچنین مواد کلید مورد نیاز برای رمزگذاری ایمیج را تعیین می‌کند؛ به عنوان مثال jwe:/path/to/key.pem یا pgp:admin@example.com یا pkcs7:/path/to/x509-file.

در صورت تنظیم، عملیات ارسال از الگوریتم فشرده‌سازی مشخص‌شده استفاده می‌کند حتی اگر مقصد در حال حاضر حاوی نسخه‌ای با فشرده‌سازی متفاوت باشد. اگر --compression-format صریحاً در خط فرمان مشخص شده باشد، مقدار پیش‌فرض true است، در غیر این صورت false خواهد بود.

نوع مانیفست (oci، v2s2 یا v2s1) که هنگام ارسال ایمیج استفاده می‌شود.

نادیده گرفتن پیام‌های خروجی اطلاعاتی (که نشان می‌دهند چه دستوری در حال پردازش است و پیشرفت آن چقدر است). فقط پیام خطای نهایی یا اطلاعات تکمیل موفقیت‌آمیز مانند شناسه ایمیج یا کانتینر چاپ می‌شود.

دور ریختن تمام امضاهای قبلی موجود در ایمیج.

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

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

افزودن امضای «امضای ساده» (simple signing) در مقصد با استفاده از کلید مشخص‌شده. (این گزینه در کلاینت راه دور پادمن، از جمله ماشین‌های مک و ویندوز (به استثنای WSL2) در دسترس نیست).

افزودن امضای sigstore بر اساس گزینه‌های بیشتر مشخص‌شده در فایل پارامتر امضای sigstore کانتینر فایل-پارامتر. برای جزئیات بیشتر در مورد قالب فایل به containers-sigstore-signing-params.yaml(5) مراجعه کنید.

افزودن امضای sigstore در مقصد با استفاده از یک کلید خصوصی در مسیر مشخص‌شده. (این گزینه در کلاینت راه دور پادمن، از جمله ماشین‌های مک و ویندوز (به استثنای WSL2) در دسترس نیست).

افزودن امضای «امضای ساده» با استفاده از کلید Sequoia-PGP با اثر انگشت مشخص‌شده. (این گزینه در کلاینت راه دور پادمن، از جمله ماشین‌های مک و ویندوز (به استثنای WSL2) در دسترس نیست).

در صورت امضای ایمیج (با استفاده از --sign-by، --sign-by-sq-fingerprint یا --sign-by-sigstore-private-key)، عبارت عبور مورد استفاده را از مسیر مشخص‌شده بخوانید.

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

ارسال ایمیج مشخص‌شده به یک دایرکتوری محلی:

# podman push imageID dir:/path/to/image

ارسال ایمیج مشخص‌شده به یک دایرکتوری محلی در قالب OCI:

# podman push imageID oci-archive:/path/to/layout:image:tag

ارسال ایمیج مشخص‌شده به یک رجیستری کانتینر:

# podman push imageID docker://registry.example.com/repository:tag

ارسال ایمیج مشخص‌شده به یک رجیستری کانتینر و ذخیره دایجست در فایل مشخص‌شده:

# podman push --digestfile=/tmp/mydigest imageID docker://registry.example.com/repository:tag

ارسال ایمیج مشخص‌شده به مخزن کانتینر دیمن محلی داکر:

# podman push imageID docker-daemon:image:tag

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

# podman push --authfile temp-auths/myauths.json alpine docker://docker.io/umohnani/alpine
Getting image source signatures
Copying blob sha256:5bef08742407efd622d243692b79ba0055383bbce12900324f75e56f589aedb0
 4.03 MB / 4.03 MB [========================================================] 1s
Copying config sha256:ad4686094d8f0186ec8249fc4917b71faa2c1030d7b5a025c29f26e19d95c156
 1.41 KB / 1.41 KB [========================================================] 1s
Writing manifest to image destination
Storing signatures

ارسال ایمیج مشخص‌شده به یک دایرکتوری محلی به عنوان یک ایمیج OCI:

# podman push --format oci registry.access.redhat.com/rhel7 dir:rhel7-dir
Getting image source signatures
Copying blob sha256:9cadd93b16ff2a0c51ac967ea2abfadfac50cfa3af8b5bf983d89b8f8647f3e4
 71.41 MB / 71.41 MB [======================================================] 9s
Copying blob sha256:4aa565ad8b7a87248163ce7dba1dd3894821aac97e846b932ff6b8ef9a8a508a
 1.21 KB / 1.21 KB [========================================================] 0s
Copying config sha256:f1b09a81455c351eaa484b61aacd048ab613c08e4c5d1da80c4c46301b03cf3b
 3.01 KB / 3.01 KB [========================================================] 0s
Writing manifest to image destination
Storing signatures

podman(1), podman-pull(1), podman-login(1), containers-certs.d(5), containers-registries.conf(5), containers-transports(5)

برای راه‌حل‌های مربوط به مشکلات رایج، podman-troubleshooting(7) را ببینید.