SKOPEO(1)(Skopeo) SKOPEO(1)(Skopeo)
Jhon Honce August 2016

skopeo - ابزار خط فرمان برای تعامل با ایمیج‌های کانتینر محلی و دوردست و مخازن ایمیج کانتینر

skopeo [گزینه‌های عمومی] دستور [گزینه‌های دستور]

دستور skopeo یک ابزار خط فرمان است که عملیات گوناگونی را روی ایمیج‌های کانتینر و مخازن ایمیج کانتینر ارائه می‌دهد.

دستور skopeo می‌تواند ایمیج‌های کانتینر را بین فضاهای ذخیره‌سازی مختلف کانتینر کپی کرده و در صورت نیاز آن‌ها را تبدیل کند. برای نمونه می‌توانید از skopeo برای کپی کردن ایمیج‌های کانتینر از یک مخزن رجیستری کانتینر به مخزنی دیگر استفاده کنید.

دستور skopeo می‌تواند یک ایمیج کانتینر Docker schema 2 یا schema 1 را به یک ایمیج OCI تبدیل کند.

دستور skopeo می‌تواند بدون نیاز به دریافت (pull) غیرضروری ایمیج، یک مخزن را در رجیستری کانتینر بازرسی کند. دریافت ایمیج از یک مخزن، به‌ویژه یک مخزن دوردست، عملیاتی سنگین و هزینه‌بر از نظر شبکه و فضای ذخیره‌سازی است. Skopeo مانیفست مخزن را دریافت کرده و خروجی json مشابه docker inspect درباره مخزن یا یک تگ نمایش می‌دهد. skopeo، برخلاف docker inspect، به شما کمک می‌کند تا بدون نیاز به اجرای docker pull اطلاعات مفیدی را درباره یک مخزن یا یک تگ جمع‌آوری کنید؛ برای نمونه: چه تگ‌هایی برای مخزن مورد نظر در دسترس هستند؟ ایمیج چه برچسب‌هایی (labels) دارد؟

دستور skopeo می‌تواند ایمیج‌های کانتینر را امضا و تایید اعتبار کند.

دستور skopeo می‌تواند ایمیج‌های کانتینر را از یک رجیستری دوردست کانتینر حذف کند.

نکته: skopeo برای انجام بیشتر قابلیت‌های خود نیازی به اجرای هیچ‌یک از زمان‌های اجرای کانتینر (container runtimes) ندارد. همچنین نیازی به دسترسی ریشه (root) ندارد، مگر اینکه در حال کپی کردن ایمیج‌ها به یک بک‌اند ذخیره‌سازی زمان اجرای کانتینر مانند دیمن داکر یا github.com/containers/storage باشید.

بیشتر دستورات با استفاده از قالب transport:details به ایمیج‌های کانتینر ارجاع می‌دهند. قالب‌های زیر پشتیبانی می‌شوند:

containers-storage:docker-reference
یک ایمیج واقع در فضای ذخیره‌سازی محلی containers/storage. هم مکان و هم فضای ذخیره‌سازی در /etc/containers/storage.conf مشخص شده‌اند (بک‌اند Podman، CRI-O، Buildah و ابزارهای مشابه).

dir:path
یک مسیر دایرکتوری محلی موجود path که مانیفست، فایل‌های فشرده لایه‌ها (layer tarballs) و امضاها را به صورت فایل‌های جداگانه ذخیره می‌کند. این یک فرمت غیراستاندارد است که در وهله اول برای اشکال‌زدایی یا بازرسی بدون تغییر کانتینر سودمند است.

docker://docker-reference
یک ایمیج در رجیستری پیاده‌سازی‌کننده «Docker Registry HTTP API V2».
اطلاعات احراز هویت معمولاً با استفاده از (skopeo login) مدیریت می‌شوند؛
برای جزئیات بیشتر درباره مکانیزم جستجوی اطلاعات احراز هویت به containers-auth.json(5) مراجعه کنید.

docker-archive:path[:docker-reference]
ایمیج ذخیره‌شده در فایلی با فرمت docker save. شناسه docker-reference تنها هنگام ساخت چنین فایلی استفاده می‌شود و نباید شامل دایجست (digest) باشد.

docker-daemon:docker-reference
یک ایمیج docker-reference ذخیره‌شده در فضای ذخیره‌سازی داخلی دیمن داکر. شناسه docker-reference باید شامل یک تگ یا یک دایجست باشد. متناوباً، هنگام خواندن ایمیج‌ها، فرمت می‌تواند به صورت docker-daemon:algo:digest (شناسه ایمیج) باشد.

oci:path:tag
یک tag ایمیج در یک دایرکتوری سازگار با «Open Container Image Layout Specification» در مسیر path.

oci-archive:path:tag
یک tag ایمیج در یک آرشیو tar سازگار با «Open Container Image Layout Specification» در مسیر path.

برای جزئیات بیشتر به containers-transports(5) ⟨https://github.com/containers/image/blob/main/docs/containers-transports.5.md⟩ مراجعه کنید.

این گزینه‌ها باید قبل از نام زیردستور قرار گیرند. هر یک از زیردستورها گزینه‌های مخصوص به خود را دارند.

--command-timeout duration

مدت زمان مهلت برای اجرای دستور (مانند 30s یا 10m).

--debug

فعال‌سازی خروجی اشکال‌زدایی.

--help, -h

نمایش راهنما.

--insecure-policy

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

--override-arch arch

استفاده از arch به جای معماری ماشین برای انتخاب ایمیج‌ها.

--override-os os

استفاده از os به جای سیستم‌عامل جاری برای انتخاب ایمیج‌ها.

--override-variant variant

استفاده از variant به جای متغیر معماری در حال اجرا برای انتخاب ایمیج‌ها.

--policy path-to-policy

مسیر فایل policy.json جهت استفاده برای اعتبارسنجی امضاها و تصمیم‌گیری در مورد معتمد بودن یک ایمیج، جایگزین فایل پیش‌فرض سیاست اعتماد.

--registries.d dir

استفاده از فایل‌های پیکربندی رجیستری در dir (برای نمونه ذخیره‌سازی امضای کانتینر)، جایگزین مسیر پیش‌فرض.

--require-signed

الزام به امضاشده بودن هر ایمیج دریافت شده، صرف نظر از آنچه فایل پیش‌فرض یا ارائه‌شده سیاست اعتماد مشخص کرده است.

--tls-details path

مسیر به یک فایل containers-tls-details(5)، تأثیرگذار بر رفتار TLS در سراسر برنامه.

در صورت تنظیم نشدن، به یک مقدار پیش‌فرض منطقی بازمی‌گردد که ممکن است در طول زمان تغییر کند (بسته به سیاست سراسری سیستم، نسخه برنامه، نسخه زبان Go و موارد مشابه).

کاربران عموماً نباید از این گزینه استفاده کنند مگر اینکه فرآیندی برای تضمین به‌روز نگه‌داشتن پیکربندی داشته باشند.

--tmpdir dir

دایرکتوری مورد استفاده برای ذخیره فایل‌های موقت. پیش‌فرض /var/tmp است.

--user-agent-prefix prefix

پیشوند برای افزودن به رشته عامل کاربر (user agent). عامل کاربر حاصل به صورت "prefix skopeo/version" خواهد بود.

--version, -v

چاپ شماره نسخه.

دستور توضیحات
skopeo-copy(1) کپی کردن یک ایمیج (مانیفست، لایه‌های فایل‌سیستم، امضاها) از یک مکان به مکان دیگر.
skopeo-delete(1) علامت‌گذاری image-name برای حذف بعدی توسط زباله‌روب (garbage collector) رجیستری.
skopeo-generate-sigstore-key(1) تولید یک جفت کلید عمومی/خصوصی sigstore.
skopeo-inspect(1) بازگرداندن اطلاعات سطح پایین درباره image-name در یک رجیستری.
skopeo-list-tags(1) فهرست کردن نام‌های ایمیج در یک مجموعه اختصاصی انتقال (transport-specific) از ایمیج‌ها.
skopeo-login(1) ورود به یک رجیستری کانتینر.
skopeo-logout(1) خروج از یک رجیستری کانتینر.
skopeo-manifest-digest(1) محاسبه دایجست مانیفست برای یک فایل مانیفست و نوشتن آن در خروجی استاندارد.
skopeo-standalone-sign(1) ابزار اشکال‌زدایی - امضای محلی یک ایمیج بدون بارگذاری.
skopeo-standalone-verify(1) ابزار اشکال‌زدایی - اعتبارسنجی امضای یک ایمیج از فایل‌های محلی.
skopeo-sync(1) همگام‌سازی ایمیج‌ها بین مخازن رجیستری و دایرکتوری‌های محلی.

دستور skopeo در صورت موفقیت با وضعیت 0 و در صورت بروز خطا با مقداری غیر از صفر خارج می‌شود.

جزئیات مربوط به وضعیت‌های خروج:

1 خطای عمومی، جزئیات در پیام خطا یافت می‌شود.

2 ایمیج ورودی پیدا نشد. توجه داشته باشید که این تلاش بر مبنای بهترین تلاش (best effort) است و برای رجیستری‌های دوردست معمولاً وضعیت نمی‌تواند به طور قابل اعتمادی گزارش شود.

/etc/containers/policy.json
فایل پیش‌فرض سیاست اعتماد، در صورتی که --policy مشخص نشده باشد.
فرمت این سیاست در containers-policy.json(5) ⟨https://github.com/containers/image/blob/main/docs/containers-policy.json.5.md⟩ مستند شده است.

/etc/containers/registries.d
دایرکتوری پیش‌فرض حاوی پیکربندی رجیستری، در صورتی که --registries.d مشخص نشده باشد.
محتویات این دایرکتوری در containers-registries.d(5) ⟨https://github.com/containers/image/blob/main/docs/containers-registries.d.5.md⟩ مستند شده است.

skopeo-login(1), docker-login(1), containers-auth.json(5), containers-storage.conf(5), containers-policy.json(5), containers-transports(5)

Antonio Murdaca runcom@redhat.com ⟨mailto:runcom@redhat.com⟩, Miloslav Trmac mitr@redhat.com ⟨mailto:mitr@redhat.com⟩, Jhon Honce jhonce@redhat.com ⟨mailto:jhonce@redhat.com⟩

Man Pages