.nh .TH skopeo-copy(1) .SH "نام (NAME)" skopeo-copy \- کپی کردن یک تصویر (مانیفست، لایه‌های فایل‌سیستم، امضاها) از یک مکان به مکانی دیگر .SH "خلاصه دستور (SYNOPSIS)" \fBskopeo copy\fP [\fIگزینه‌ها\fP] \fIsource-image\fP \fIdestination-image\fP .SH "توضیحات (DESCRIPTION)" یک تصویر (مانیفست، لایه‌های فایل‌سیستم، امضاها) را از یک مکان به مکانی دیگر کپی می‌کند. .PP از سیاست اعتماد (trust policy) سیستم برای اعتبارسنجی تصاویر استفاده می‌کند؛ تصاویری که توسط این سیاست مورد اعتماد نباشند رد می‌شوند. .PP برای \fIsource-image\fP از قالب «نام تصویر» شرح داده شده در بالا استفاده کنید. .PP برای \fIdestination-image\fP از قالب «نام تصویر» شرح داده شده در بالا استفاده کنید. .PP \fIsource-image\fP و \fIdestination-image\fP کاملاً مستقل از یکدیگر تفسیر می‌شوند؛ برای مثال، نام مقصد به طور خودکار هیچ بخشی از نام مبدأ را به ارث نمی‌برد. .SH "گزینه‌ها (OPTIONS)" همچنین برای گزینه‌هایی که قبل از نام زیرفرمان قرار می‌گیرند، \fBskopeo\fP(1) را ببینید. .PP \fB--additional-tag\fP=\fIstrings\fP .PP تگ‌های اضافی (از docker-archive پشتیبانی می‌کند). .PP \fB--all\fP, \fB-a\fP .PP اگر \fIsource-image\fP به فهرستی از تصاویر اشاره کند، به جای کپی کردن تنها تصویری که با سیستم‌عامل و معماری فعلی مطابقت دارد (با در نظر گرفتن گزینه‌های سراسری --override-os، --override-arch و --override-variant)، تلاش می‌کند تمام تصاویر موجود در فهرست و خود فهرست را کپی کند. .PP \fB--authfile\fP \fIpath\fP .PP مسیر فایل گواهی‌های اصلی رجیستری. در لینوکس، پیش‌فرض ${XDG_RUNTIME_DIR}/containers/auth.json است. برای جزئیات بیشتر دربارهٔ سازوکار جستجوی گواهی‌ها و پیش‌فرض‌ها در سایر پلتفرم‌ها، \fBcontainers-auth.json\fP(5) را ببینید. .PP از \fBskopeo login\fR برای مدیریت گواهی‌ها استفاده کنید. .PP مقدار پیش‌فرض این گزینه از متغیر محیطی \fBREGISTRY\\_AUTH\\_FILE\fR خوانده می‌شود. .PP \fB--src-authfile\fP \fIpath\fP .PP مسیر فایل گواهی‌های رجیستری اصلی برای رجیستری مبدأ. در صورت مشخص نشدن، از مسیر داده‌شده توسط \fB--authfile\fR استفاده می‌کند. .PP \fB--dest-authfile\fP \fIpath\fP .PP مسیر فایل گواهی‌های رجیستری اصلی برای رجیستری مقصد. در صورت مشخص نشدن، از مسیر داده‌شده توسط \fB--authfile\fR استفاده می‌کند. .PP \fB--dest-shared-blob-dir\fP \fIdirectory\fP .PP دایرکتوری مورد استفاده برای به اشتراک‌گذاری blobها در میان مخازن OCI. .PP \fB--digestfile\fP \fIpath\fP .PP پس از کپی کردن تصویر، دایجست تصویر حاصل را در فایل می‌نویسد. .PP \fB--preserve-digests\fP .PP حفظ دایجست‌ها در طول فرایند کپی. اگر دایجست قابل حفظ نباشد، عملیات با شکست مواجه می‌شود. .PP این گزینه مواردی را که کپی خواهند شد تغییر نمی‌دهد؛ استفادهٔ هم‌زمان از \fB--all\fR را مد نظر قرار دهید. .PP \fB--encrypt-layer\fP \fIints\fP .PP \fIآزمایشی (Experimental)\fP اندیس لایه‌ها بر پایهٔ صفر، همراه با پشتیبانی از اندیس‌گذاری منفی (برای مثال 0 لایهٔ اول است و -1 آخرین لایه است). .PP \fB--format\fP, \fB-f\fP \fImanifest-type\fP .PP نوع مانیفست (oci، v2s1 یا v2s2) برای استفاده در مقصد (پیش‌فرض همان نوع مانیفست مبدأ با امکان fallback است). .PP \fB--help\fP, \fB-h\fP .PP نمایش راهنمای استفاده .PP \fB--multi-arch\fP \fIoption\fP .PP کنترل آنچه کپی می‌شود در صورتی که \fIsource-image\fP به یک تصویر چندمعماری اشاره کند. پیش‌فرض system است. .PP گزینه‌ها: .br \- system: تنها تصویری را کپی می‌کند که با معماری سیستم مطابقت دارد .br \- all: تمام تصویر چندمعماری را کپی می‌کند .br \- index-only: تنها نمایه (index) را کپی می‌کند .br \- \fIplatform-list\fP: تنها پلتفرم‌های خاص را کپی می‌کند (فهرستی از جفت‌های سیستم‌عامل/معماری جداشده با ویرگول، مانند \fBlinux/amd64,linux/arm64\fR) .PP گزینهٔ index-only و platform-list هر دو فهرست‌های مانیفست تنک (sparse) ایجاد می‌کنند که معمولاً با خطا مواجه می‌شوند، مگر اینکه تصاویر به ازای هر معماریِ ارجاع‌شده از قبل در مقصد موجود باشند، یا رجیستری هدف از نمایه‌های تنک پشتیبانی کند. .PP هنگام مشخص کردن یک فهرست پلتفرم، تمام گونه‌های فشرده‌سازی و سایر تغییرات برای هر پلتفرم کپی می‌شوند. .PP \fB--quiet\fP, \fB-q\fP .PP عدم نمایش اطلاعات خروجی هنگام کپی تصاویر. .PP \fB--remove-signatures\fP .PP امضاها را (در صورت وجود) از \fIsource-image\fP\& کپی نمی‌کند. این گزینه هنگام کپی یک تصویر امضاشده به مقصدی که از امضا پشتیبانی نمی‌کند، ضروری است. .PP \fB--remove-list-signatures\fP .PP امضای فهرست مانیفست را کپی نمی‌کند در حالی که امضاهای هر نمونه (instance) را حفظ می‌نماید. این گزینه کنترل دقیق‌تری نسبت به \fB--remove-signatures\fP که تمام امضاها را حذف می‌کند فراهم می‌سازد. .PP \fB--strip-removed-platforms\fP .PP هنگام کپی تنها زیرمجموعه‌ای از پلتفرم‌ها از یک تصویر چندمعماری (با استفاده از \fB--multi-arch\fP به همراه فهرست پلتفرم‌ها)، فهرست مانیفستی را می‌نویسد که تنها شامل پلتفرم‌های کپی‌شده است، به جای اینکه ورودی‌هایی را باقی بگذارد که به تصاویر پلتفرم‌های ناموجود در مقصد اشاره دارند. این گزینه برای رجیستری‌هایی مفید است که فهرست‌های مانیفست حاوی ارجاع به تصاویر ناموجود را رد می‌کنند. .PP نکته: این گزینه نیازمند آن است که امضاها با استفاده از \fB--remove-signatures\fP یا \fB--remove-list-signatures\fP حذف شوند، زیرا حذف نمونه‌ها امضای فهرست مانیفست را باطل کرده و دایجست فهرست مانیفست را تغییر می‌دهد. در صورت وجود امضاها و حذف نشدن صریح آن‌ها، عملیات با شکست مواجه خواهد شد. .PP \fB--sign-by\fP \fIkey-id\fP .PP افزودن یک امضای «simple signing» با استفاده از آن شناسهٔ کلید برای نام تصویری که منطبق بر \fIdestination-image\fP است. .PP \fB--sign-by-sigstore\fP \fIparam-file\fP .PP افزودن یک امضای sigstore بر اساس گزینه‌های موجود در فایل پارامتر امضای sigstore کانتینرها، یعنی \fIparam-file\fP\&. برای جزئیات مربوط به قالب فایل، containers-sigstore-signing-params.yaml(5) را ببینید. .PP \fB--sign-by-sigstore-private-key\fP \fIpath\fP .PP افزودن یک امضای sigstore با استفاده از یک کلید خصوصی در \fIpath\fP برای نام تصویری که منطبق بر \fIdestination-image\fP است. .PP \fB--sign-by-sq-fingerprint\fP \fIfingerprint\fP .PP افزودن یک امضای «simple signing» با استفاده از کلید Sequoia-PGP با اثرانگشت (\fIfingerprint\fP\&) مشخص‌شده. .PP \fB--sign-passphrase-file\fP \fIpath\fP .PP عبارت عبور مورد استفاده هنگام امضا با \fB--sign-by\fR، \fB--sign-by-sigstore-private-key\fR یا \fB--sign-by-sq-fingerprint\fR\&. تنها سطر اول خوانده خواهد شد. عبارت عبوری که در یک فایل ذخیره شده باشد، در صورتی که سایر کاربران بتوانند آن فایل را بخوانند، از نظر امنیتی جای تردید دارد. در صورت امکان، به هیچ وجه از این گزینه استفاده نکنید..PP \fB--sign-identity\fP \fIreference\fP .PP هویت مورد استفاده هنگام امضای تصویر. این هویت باید یک docker reference کاملاً مشخص باشد. اگر هویت مشخص نشود، از docker reference مقصد استفاده خواهد شد. .PP \fB--src-shared-blob-dir\fP \fIdirectory\fP .PP دایرکتوری مورد استفاده برای به اشتراک‌گذاری blobها میان مخازن OCI. .PP \fB--encryption-key\fP \fIprotocol:keyfile\fP .PP پروتکل رمزنگاری را مشخص می‌کند که می‌تواند JWE (RFC7516)، PGP (RFC4880) و PKCS7 (RFC2315) باشد و همچنین داده‌های کلید مورد نیاز برای رمزنگاری تصویر را تعیین می‌کند. برای نمونه، jwe:/path/to/key.pem یا pgp:admin@example.com یا pkcs7:/path/to/x509-file. .PP \fB--decryption-key\fP \fIkey[:passphrase]\fP .PP کلید مورد استفاده برای رمزگشایی تصاویر. کلید می‌تواند به کلیدها و/یا گواهی‌ها اشاره کند. رمزگشایی با تمام کلیدها امتحان خواهد شد. اگر کلید با یک عبارت عبور (passphrase) محافظت می‌شود، باید در آرگومان ارسال گردد و در غیر این صورت حذف شود. .PP \fB--src-creds\fP \fIusername[:password]\fP .PP اطلاعات احراز هویت برای دسترسی به رجیستری مبدأ. .PP \fB--dest-compress\fP .PP فشرده‌سازی لایه‌های تصویر tarball هنگام ذخیره در دایرکتوری با استفاده از انتقال‌دهنده \(aqdir\(aq. (پیش‌فرض همان نوع فشرده‌سازی مبدأ است). .PP \fB--dest-decompress\fP .PP از حالت فشرده خارج کردن لایه‌های تصویر tarball هنگام ذخیره در دایرکتوری با استفاده از انتقال‌دهنده \(aqdir\(aq. (پیش‌فرض همان نوع فشرده‌سازی مبدأ است). .PP \fB--dest-oci-accept-uncompressed-layers\fP .PP مجاز دانستن لایه‌های تصویر فشرده‌نشده هنگام ذخیره در یک تصویر OCI با استفاده از انتقال‌دهنده \(aqoci\(aq. (پیش‌فرض فشرده‌سازی مواردی است که فشرده نیستند). .PP \fB--dest-creds\fP \fIusername[:password]\fP .PP اطلاعات احراز هویت برای دسترسی به رجیستری مقصد. .PP \fB--src-cert-dir\fP \fIpath\fP .PP استفاده از گواهی‌های موجود در \fIpath\fP (*.crt, *.cert, *.key) برای اتصال به رجیستری یا دیمن مبدأ. .PP \fB--src-no-creds\fP .PP دسترسی به رجیستری به‌صورت ناشناس. .PP \fB--src-tls-verify\fP=\fIbool\fP .PP الزام به HTTPS و اعتبارسنجی گواهی‌ها هنگام ارتباط با رجیستری کانتینر مبدأ یا دیمن. پیش‌فرض، تنظیمات رجیستری مبدأ است. .PP \fB--dest-cert-dir\fP \fIpath\fP .PP استفاده از گواهی‌های موجود در \fIpath\fP (*.crt, *.cert, *.key) برای اتصال به رجیستری یا دیمن مقصد. .PP \fB--dest-no-creds\fP .PP دسترسی به رجیستری به‌صورت ناشناس. .PP \fB--dest-tls-verify\fP=\fIbool\fP .PP الزام به HTTPS و اعتبارسنجی گواهی‌ها هنگام ارتباط با رجیستری کانتینر مقصد یا دیمن. پیش‌فرض، تنظیمات رجیستری مقصد است. .PP \fB--src-daemon-host\fP \fIhost\fP .PP کپی از دیمن docker در \fIhost\fP\&. اگر \fIhost\fP با \fBtcp://\fR آغاز شود، HTTPS به‌طور پیش‌فرض فعال است. برای استفاده از HTTP معمولی، از ساختار \fBhttp://\fR استفاده کنید (پیش‌فرض \fBunix:///var/run/docker.sock\fR است). .PP \fB--dest-daemon-host\fP \fIhost\fP .PP کپی به دیمن docker در \fIhost\fP\&. اگر \fIhost\fP با \fBtcp://\fR آغاز شود، HTTPS به‌طور پیش‌فرض فعال است. برای استفاده از HTTP معمولی، از ساختار \fBhttp://\fR استفاده کنید (پیش‌فرض \fBunix:///var/run/docker.sock\fR است). .PP \fB--dest-compress-format\fP \fIformat\fP .PP قالب فشرده‌سازی مورد استفاده را مشخص می‌کند. مقادیر پشتیبانی‌شده عبارتند از: \fBgzip\fR، \fBzstd\fR و \fBzstd:chunked\fR\&. \fBzstd:chunked\fR با رمزنگاری تصاویر ناسازگار است و در این حالت، همراه با یک هشدار با آن همانند \fBzstd\fR رفتار خواهد شد. .PP \fB--dest-compress-level\fP \fIformat\fP .PP سطح فشرده‌سازی مورد استفاده را مشخص می‌کند. این مقدار وابسته به الگوریتم فشرده‌سازی به‌کاررفته است؛ برای مثال برای zstd مقادیر پذیرفته‌شده در محدودهٔ 1-20 (شامل طرفین) است، در حالی که برای gzip این محدوده 1-9 (شامل طرفین) می‌باشد. .PP \fB--dest-force-compress-format\fP .PP تضمین می‌کند که الگوریتم فشرده‌سازی تعیین‌شده در --dest-compress-format به‌طور انحصاری استفاده شود. .PP \fB--src-registry-token\fP \fItoken\fP .PP توکن Bearer برای دسترسی به رجیستری مبدأ. .PP \fB--dest-registry-token\fP \fItoken\fP .PP توکن Bearer برای دسترسی به رجیستری مقصد. .PP \fB--dest-precompute-digests\fP .PP محاسبهٔ پیشاپیش چکیده‌ها (digests) برای اطمینان از عدم بارگذاری لایه‌هایی که در حال حاضر در رجیستری مقصد وجود دارند. لایه‌هایی با چکیده‌های اولیه نامشخص (مانند فشرده‌سازی «on the fly») به‌طور موقت روی دیسک جریان‌دهی (stream) خواهند شد. .PP \fB--retry-times\fP .PP تعداد دفعات تلاش مجدد. به‌طور پیش‌فرض، هیچ تلاش مجددی صورت نمی‌گیرد. .PP \fB--retry-delay\fP .PP تأخیر ثابت بین دفعات تلاش مجدد. اگر تنظیم نشود (یا برابر 0s باشد)، زمان انتظار بر اساس تعداد تلاش‌های ناموفق به‌صورت نمایی افزایش خواهد یافت. .PP \fB--src-username\fP .PP نام کاربری برای دسترسی به رجیستری مبدأ. .PP \fB--src-password\fP .PP گذرواژه برای دسترسی به رجیستری مبدأ. .PP \fB--dest-username\fP .PP نام کاربری برای دسترسی به رجیستری مقصد. .PP \fB--dest-password\fP .PP گذرواژه برای دسترسی به رجیستری مقصد. .PP \fB--image-parallel-copies\fP \fIn\fP .PP حداکثر تعداد لایه‌های تصویری که می‌توانند به‌طور هم‌زمان کپی (pull/push) شوند. در صورت تنظیم نکردن این فیلد، مقادیر پیش‌فرض containers/image اعمال خواهند شد..SH "مثال‌ها (EXAMPLES)" برای کپی کردن سادهٔ یک ایمیج از یک رجیستری به رجیستری دیگر: .EX $ skopeo copy docker://quay.io/skopeo/stable:latest docker://registry.example.com/skopeo:latest .EE .PP برای کپی کردن لایه‌های ایمیج busybox از docker.io به یک دایرکتوری محلی: .EX $ mkdir -p /var/lib/images/busybox $ skopeo copy docker://busybox:latest dir:/var/lib/images/busybox $ ls /var/lib/images/busybox/* /tmp/busybox/2b8fd9751c4c0f5dd266fcae00707e67a2545ef34f9a29354585f93dac906749.tar /tmp/busybox/manifest.json /tmp/busybox/8ddc19f16526912237dd8af81971d5e4dd0587907234be2b83e249518d5b673f.tar .EE .PP برای ایجاد یک بایگانی قابل استفاده توسط \fBdocker load\fR (البته توجه داشته باشید که استفاده از یک رجیستری تقریباً همیشه کارآمدتر است): .EX $ skopeo copy docker://busybox:latest docker-archive:archive-file.tar:busybox:latest .EE .PP برای کپی و امضا کردن یک ایمیج: .EX $ skopeo copy --sign-by dev@example.com containers-storage:example/busybox:streaming docker://example/busybox:gold .EE .PP برای کپی کردن تنها پلتفرم‌های مشخصی از یک ایمیج چندمعماری (یک فهرست مانیفست تنک/پراکنده ایجاد می‌کند): .EX $ skopeo copy --multi-arch=linux/amd64,linux/arm64 docker://quay.io/skopeo/stable:latest docker://registry.example.com/skopeo:latest .EE .PP برای کپی کردن پلتفرم‌های خاص و حذف فهرست مانیفست تنک (برای رجیستری‌هایی که از فهرست‌های پراکنده پشتیبانی نمی‌کنند): .EX $ skopeo copy --multi-arch=linux/amd64,linux/arm64 --strip-removed-platforms --remove-list-signatures docker://quay.io/skopeo/stable:latest docker://registry.example.com/skopeo:latest .EE .PP برای رمزنگاری یک ایمیج: .EX $ skopeo copy docker://docker.io/library/nginx:1.17.8 oci:local_nginx:1.17.8 $ openssl genrsa -out private.key 1024 $ openssl rsa -in private.key -pubout > public.key $ skopeo copy --encryption-key jwe:./public.key oci:local_nginx:1.17.8 oci:try-encrypt:encrypted .EE .PP برای رمزگشایی یک ایمیج: .EX $ skopeo copy --decryption-key ./private.key oci:try-encrypt:encrypted oci:try-decrypt:decrypted .EE .PP برای کپی کردن یک ایمیج رمزنگاری‌شده بدون رمزگشایی: .EX $ skopeo copy oci:try-encrypt:encrypted oci:try-encrypt-copy:encrypted .EE .PP برای رمزگشایی ایمیجی که به بیش از یک کلید نیاز دارد: .EX $ skopeo copy --decryption-key ./private1.key --decryption-key ./private2.key --decryption-key ./private3.key oci:try-encrypt:encrypted oci:try-decrypt:decrypted .EE .PP ایمیج‌های کانتینر همچنین می‌توانند با مشخص کردن اندیس لایه، به‌صورت جزئی رمزنگاری شوند. نمایه‌گذاری لایه‌ها بر پایهٔ ۰ است (0-indexed) و از نمایه‌گذاری منفی نیز پشتیبانی می‌شود؛ یعنی ۰ لایهٔ نخست و \-1 لایهٔ پایانی است. .PP فرض کنید از ۳ لایه‌ای که ایمیج \fBdocker.io/library/nginx:1.17.8\fR از آن‌ها تشکیل شده است، تنها می‌خواهیم لایهٔ دوم را رمزنگاری کنیم: .EX $ skopeo copy --encryption-key jwe:./public.key --encrypt-layer 1 oci:local_nginx:1.17.8 oci:try-encrypt:encrypted .EE.SH "همچنین ببینید (SEE ALSO)" skopeo(1), skopeo-login(1), docker-login(1), containers-auth.json(5), containers-policy.json(5), containers-transports(5), containers-signature(5) .SH "نویسندگان (AUTHORS)" Antonio Murdaca runcom@redhat.com \[la]mailto:runcom@redhat.com\[ra], Miloslav Trmac mitr@redhat.com \[la]mailto:mitr@redhat.com\[ra], Jhon Honce jhonce@redhat.com \[la]mailto:jhonce@redhat.com\[ra]