| podman-push(1) | General Commands Manual | podman-push(1) |
نام (NAME)
podman-push - ارسال یک ایمیج، فهرست مانیفست یا نمایه ایمیج از حافظه محلی به مقصدی دیگر
خلاصه دستور (SYNOPSIS)
podman push [گزینهها] ایمیج [مقصد]
podman image push [گزینهها] ایمیج [مقصد]
توضیحات (DESCRIPTION)
یک ایمیج، فهرست مانیفست یا نمایه ایمیج (image index) را از حافظه ذخیرهسازی محلی به یک مقصد مشخص ارسال (push) میکند.
حافظه ایمیج (Image storage)
ایمیجها از میان آنهایی که در حافظه ذخیرهسازی محلی ایمیج قرار دارند ارسال میشوند.
مقصد (DESTINATION)
مقصد (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
گزینهها (OPTIONS)
--authfile=مسیر
مسیر فایل احراز هویت. مقدار پیشفرض در لینوکس ${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=مسیر انجام داد.
--cert-dir=مسیر
استفاده از گواهیهای موجود در مسیر (*.crt، *.cert، *.key) برای اتصال به رجیستری. (پیشفرض: /etc/containers/certs.d) برای جزئیات بیشتر به containers-certs.d(5) مراجعه کنید. (این گزینه در کلاینت راه دور پادمن، از جمله ماشینهای مک و ویندوز (به استثنای WSL2) در دسترس نیست).
--compress
فشردهسازی لایههای ایمیج تاربال هنگام ارسال به یک دایرکتوری با استفاده از شیوه انتقال 'dir'. (پیشفرض همان نوع فشردهسازی مبدأ است؛ فشردهشده یا فشردهنشده).
نکته: این گزینه تنها در هنگام استفاده از شیوه انتقال dir قابل تنظیم است.
--compression-format=gzip | zstd | zstd:chunked
قالب فشردهسازی مورد استفاده را مشخص میکند. مقادیر پشتیبانیشده عبارتند از: gzip، zstd و zstd:chunked. مقدار پیشفرض gzip است مگر اینکه در فایل containers.conf بازنویسی شود. قالب zstd:chunked با رمزگذاری ایمیجها ناسازگار است و در این حالت همراه با یک هشدار به عنوان zstd در نظر گرفته خواهد شد.
--compression-level=سطح
سطح فشردهسازی مورد استفاده را مشخص میکند. این مقدار به الگوریتم فشردهسازی مورد استفاده بستگی دارد؛ به عنوان مثال برای zstd مقادیر پذیرفتهشده در محدوده ۱ تا ۲۰ (شامل هر دو) با مقدار پیشفرض ۳ است، در حالی که برای gzip در محدوده ۱ تا ۹ (شامل هر دو) و با مقدار پیشفرض ۵ است.
--creds=[نامکاربری[:گذرواژه]]
مقدار [نامکاربری[:گذرواژه]] برای احراز هویت در رجیستری در صورت نیاز. اگر یک یا هر دو مقدار ارائه نشوند، اعلانی در خط فرمان ظاهر شده و میتوان مقدار را وارد کرد. گذرواژه بدون بازتاب (echo) وارد میشود.
توجه داشته باشید که اعتبارنامههای مشخصشده فقط برای احراز هویت در رجیستریهای هدف استفاده میشوند. آنها برای آینهها یا زمانی که رجیستری بازنویسی میشود استفاده نخواهند شد (به containers-registries.conf(5) مراجعه کنید)؛ برای احراز هویت در این موارد استفاده از فایل containers-auth.json(5) را مد نظر قرار دهید.
--digestfile=فایلدایجست
پس از کپی کردن ایمیج، دایجست ایمیج حاصل را در فایل مینویسد.
--disable-content-trust
این یک گزینه مخصوص داکر برای غیرفعال کردن اعتبارسنجی ایمیج در رجیستری کانتینر است و توسط پادمن پشتیبانی نمیشود. این گزینه بدون عملیات (NOOP) بوده و صرفاً جهت سازگاری اسکریپتها ارائه شده است.
--encrypt-layer=لایه(ها)
لایه(هایی) که باید رمزگذاری شوند: نمایههای لایه بر پایه صفر (0-indexed) با پشتیبانی از نمایهسازی منفی (مثلاً 0 لایه اول است و -1 لایه آخر). در صورت عدم تعریف، اگر گزینه --encryption-key مشخص شده باشد، تمامی لایهها رمزگذاری میشوند.
--encryption-key=کلید
فرمت [protocol:keyfile] پروتکل رمزگذاری را مشخص میکند که میتواند JWE (RFC7516)، PGP (RFC4880) و PKCS7 (RFC2315) باشد و همچنین مواد کلید مورد نیاز برای رمزگذاری ایمیج را تعیین میکند؛ به عنوان مثال jwe:/path/to/key.pem یا pgp:admin@example.com یا pkcs7:/path/to/x509-file.
--force-compression
در صورت تنظیم، عملیات ارسال از الگوریتم فشردهسازی مشخصشده استفاده میکند حتی اگر مقصد در حال حاضر حاوی نسخهای با فشردهسازی متفاوت باشد. اگر --compression-format صریحاً در خط فرمان مشخص شده باشد، مقدار پیشفرض true است، در غیر این صورت false خواهد بود.
--format, -f=قالب
نوع مانیفست (oci، v2s2 یا v2s1) که هنگام ارسال ایمیج استفاده میشود.
--quiet, -q
نادیده گرفتن پیامهای خروجی اطلاعاتی (که نشان میدهند چه دستوری در حال پردازش است و پیشرفت آن چقدر است). فقط پیام خطای نهایی یا اطلاعات تکمیل موفقیتآمیز مانند شناسه ایمیج یا کانتینر چاپ میشود.
--remove-signatures
دور ریختن تمام امضاهای قبلی موجود در ایمیج.
--retry=تعداد-تلاش
تعداد دفعات تلاش مجدد برای دریافت یا ارسال ایمیجها بین رجیستری و حافظه محلی در صورت بروز شکست. پیشفرض 3 است.
--retry-delay=مدت-زمان
مدت زمان تاخیر بین تلاشهای مجدد در هنگام دریافت یا ارسال ایمیجها بین رجیستری و حافظه محلی در صورت بروز خطا. حالت پیشفرض شروع با دو ثانیه و سپس افزایش نمایی است. در صورت تعیین این مقدار، تاخیر مشخصشده اعمال میشود و عقبنشینی نمایی رخ نمیدهد.
--sign-by=کلید
افزودن امضای «امضای ساده» (simple signing) در مقصد با استفاده از کلید مشخصشده. (این گزینه در کلاینت راه دور پادمن، از جمله ماشینهای مک و ویندوز (به استثنای WSL2) در دسترس نیست).
--sign-by-sigstore=فایل-پارامتر
افزودن امضای sigstore بر اساس گزینههای بیشتر مشخصشده در فایل پارامتر امضای sigstore کانتینر فایل-پارامتر. برای جزئیات بیشتر در مورد قالب فایل به containers-sigstore-signing-params.yaml(5) مراجعه کنید.
--sign-by-sigstore-private-key=مسیر
افزودن امضای sigstore در مقصد با استفاده از یک کلید خصوصی در مسیر مشخصشده. (این گزینه در کلاینت راه دور پادمن، از جمله ماشینهای مک و ویندوز (به استثنای WSL2) در دسترس نیست).
--sign-by-sq-fingerprint=اثرانگشت
افزودن امضای «امضای ساده» با استفاده از کلید Sequoia-PGP با اثر انگشت مشخصشده. (این گزینه در کلاینت راه دور پادمن، از جمله ماشینهای مک و ویندوز (به استثنای WSL2) در دسترس نیست).
--sign-passphrase-file=مسیر
در صورت امضای ایمیج (با استفاده از --sign-by، --sign-by-sq-fingerprint یا --sign-by-sigstore-private-key)، عبارت عبور مورد استفاده را از مسیر مشخصشده بخوانید.
--tls-verify
الزام به استفاده از HTTPS و اعتبارسنجی گواهیها هنگام ارتباط با رجیستریها (پیشفرض: true). اگر صریحاً روی true تنظیم شود، اعتبارسنجی TLS انجام میشود. اگر روی false تنظیم شود، اعتبارسنجی TLS انجام نمیشود. اگر مشخص نشود، اعتبارسنجی TLS انجام میشود مگر اینکه رجیستری هدف در containers-registries.conf(5) به عنوان یک رجیستری ناامن ذکر شده باشد.
مثالها (EXAMPLES)
ارسال ایمیج مشخصشده به یک دایرکتوری محلی:
# 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
همچنین ببینید (SEE ALSO)
podman(1), podman-pull(1), podman-login(1), containers-certs.d(5), containers-registries.conf(5), containers-transports(5)
عیبیابی (Troubleshooting)
برای راهحلهای مربوط به مشکلات رایج، podman-troubleshooting(7) را ببینید.