.nh .TH CONTAINERS-TRANSPORTS 5 Containers Transports Man Page Valentin Rothberg April 2019 .SH "نام (NAME)" containers-transports \- شرح روش‌های انتقال (transports) پشتیبانی‌شده برای رونوشت و ذخیره‌سازی تصاویر کانتینر .SH "توضیحات (DESCRIPTION)" ابزارهایی که از کتابخانه containers/image استفاده می‌کنند، از جمله skopeo(1)، buildah(1) و podman(1)، همگی از یک نحو و ساختار مشترک برای ارجاع به تصاویر کانتینر در مکان‌های مختلف بهره می‌برند. قالب کلی این نحو به صورت \fItransport\fP\fB:\fR\fIdetails\fP است که در آن جزئیات (details) به روش انتقال مشخص‌شده وابسته بوده و در ادامه مستند شده‌اند. .PP معناشناسی نام تصاویر در نهایت به محیطی که در آن ارزیابی می‌شوند بستگی دارد. به عنوان مثال: اگر در یک سرور دوردست ارزیابی شوند، نام تصاویر ممکن است به مسیرهایی در همان سرور اشاره کند؛ مسیرهای نسبی نیز نسبت به دایرکتوری جاری مصرف‌کننده تصویر سنجیده می‌شوند. .SS \fBcontainers-storage:\fP[\fB[\fP\fIstorage-specifier\fP\fB]\fP]{\fIimage-id\fP|\fIdocker-reference\fP[\fB@\fP\fIimage-id\fP]} تصویری که در یک فضای ذخیره‌سازی محلی کانتینرها قرار دارد. قالب \fIdocker-reference\fP با جزئیات کامل در بخش روش انتقال \fBdocker\fP شرح داده شده است. .PP پارامتر \fIstorage-specifier\fP امکان ارجاع به مکان‌های ذخیره‌سازی روی سیستم‌فایل را فراهم می‌کند و قالبی به صورت \fB[\fR[\fIdriver\fP\fB@\fR]\fIroot\fP[\fB+\fR\fIrun-root\fP][\fB:\fR\fIoptions\fP]\fB]\fR دارد که در آن \fIdriver\fP اختیاری به درایور ذخیره‌سازی (مانند \fBoverlay\fR یا \fBbtrfs\fR) اشاره داشته و \fIroot\fP یک مسیر مطلق به دایرکتوری ریشه ذخیره‌سازی است. مقدار اختیاری \fIrun-root\fP می‌تواند برای مشخص کردن دایرکتوری اجرای فضای ذخیره‌سازی استفاده شود که در آن تمام محتویات موقت قابل نوشتن ذخیره می‌گردند. مقدار اختیاری \fIoptions\fP فهرستی از گزینه‌های مختص به درایور است که با کاما از یکدیگر جدا شده‌اند. لطفاً برای اطلاعات بیشتر درباره درایورها و گزینه‌های پشتیبانی‌شده به containers-storage.conf(5) مراجعه کنید. .SS \fBdir:\fP\fIpath\fP یک دایرکتوری محلی موجود در مسیر \fIpath\fP که مانیفست، فایل‌های فشرده لایه‌ها (tarballs) و امضاها را به عنوان فایل‌های جداگانه نگهداری می‌کند. این یک قالب غیراستاندارد است که در وهله اول برای اشکال‌زدایی یا بررسی غیرمخرب کانتینرها مفید است. .SS \fBdocker://\fP\fIdocker-reference\fP تصویری در یک رجیستری که استاندارد "Docker Registry HTTP API V2" را پیاده‌سازی کرده است. به صورت پیش‌فرض، از وضعیت احراز هویت در \fB$XDG_RUNTIME_DIR/containers/auth.json\fR استفاده می‌کند که با استفاده از podman-login(1) تنظیم می‌شود. اگر وضعیت احراز هویت در آنجا یافت نشود، مسیر \fB$HOME/.docker/config.json\fR بررسی می‌شود که با استفاده از docker-login(1) مقداردهی شده است. فایل containers-registries.conf(5) علاوه بر این امکان پیکربندی تنظیمات گوناگون رجیستری را فراهم می‌سازد. .PP توجه داشته باشید که \fIdocker-reference\fP دارای ساختار زیر است: \fIname\fP[\fB:\fR\fItag\fP | \fB@\fR\fIdigest\fP]. در حالی که روش انتقال docker به طور همزمان از تگ و دایجست پشتیبانی نمی‌کند، برخی قالب‌ها مانند containers-storage این امکان را دارند. دایجست‌ها همچنین می‌توانند در مقصد تصویر مورد استفاده قرار گیرند، به شرطی که مانیفست با دایجست ارائه‌شده مطابقت داشته باشد. .PP روش انتقال docker از ارسال (push) تصاویر بدون تگ یا دایجست به یک رجیستری پشتیبانی می‌کند، به شرطی که نام تصویر با پسوند \fB@@unknown-digest@@\fR مشخص شده باشد. قالب ارجاع \fIname\fP\fB@@unknown-digest@@\fR نمی‌تواند همراه با ارجاعی که دارای تگ یا دایجست است استفاده شود. دایجست تصاویر را می‌توان با skopeo-inspect(1) بررسی کرد. .PP اگر \fIname\fP حاوی اسلش نباشد، به عنوان \fBdocker.io/library/\fR\fIname\fP در نظر گرفته می‌شود. در غیر این صورت، جزءِ پیش از نخستین اسلش بررسی می‌شود تا مشخص گردد آیا به عنوان یک \fIhostname\fP شناخته می‌شود یا خیر \[la]یعنی حاوی یک `.` یا `:` باشد، یا آن جزء دقیقاً `localhost` باشد\[ra]\&. اگر نخستین جزءِ نام به عنوان یک \fIhostname\fP[\fB:\fR\fIport\fP] شناخته نشود، \fIname\fP به عنوان \fBdocker.io/\fR\fIname\fP در نظر گرفته خواهد شد. .SS \fBdocker-archive:\fP\fIpath\fP[\fB:\fR{\fIdocker-reference\fP|\fB@\fR\fIsource-index\fP}] تصویری که در یک فایل با ساختار docker-save(1) ذخیره شده است. .PP مگر آن‌که یک ابزار صریحاً خلاف آن را مستند کرده باشد، نوشتن در یک مقصد \fBdocker-archive:\fP مسیر \fIpath\fP را کاملاً بازنویسی کرده و آن را با تصویر منفرد ارائه‌شده جایگزین می‌کند. .PP مقدار \fIpath\fP می‌تواند به یک جریان (stream) اشاره داشته باشد، مانند \fBdocker-archive:/dev/stdin\fR\&. .PP مقدار \fIdocker-reference\fP نباید شامل دایجست باشد. همچنین برای خواندن آرشیوها، \fB@\fR\fIsource-index\fP یک اندیس مبنای صفر در مانیفست آرشیو است (برای دسترسی به تصاویر بدون برچسب). اگر هنگام خواندن یک آرشیو هیچ‌یک از \fIdocker-reference\fP یا \fB@\fR_source_index مشخص نشده باشد، آرشیو باید دقیقاً شامل یک تصویر باشد. .SS \fBdocker-daemon:\fP\fIdocker-reference\fP|\fIalgo\fP\fB:\fR\fIdigest\fP تصویری که در فضای ذخیره‌سازی داخلی دیمن داکر ذخیره شده است. تصویر هنگام استفاده به عنوان منبع، باید به صورت یک \fIdocker-reference\fP یا در قالب جایگزین \fIalgo\fP\fB:\fR\fIdigest\fP مشخص شود. قالب \fIalgo\fP\fB:\fR\fIdigest\fP به شناسه تصویری که توسط docker-inspect(1) گزارش می‌شود اشاره دارد. .SS \fBoci:\fP\fIpath\fP[\fB:\fR{\fIreference\fP|\fB@\fR\fIsource-index\fP}] تصویری در ساختار دایرکتوری سازگار با "مشخصات چیدمان تصویر کانتینر باز (Open Container Image Layout Specification)" در مسیر \fIpath\fP\&. .PP مقدار \fIpath\fP در نخستین نویسه \fB:\fR خاتمه می‌یابد؛ هرگونه نویسه \fB:\fR بعدی جداکننده نبوده، بلکه بخشی از \fIreference\fP است. مقدار \fIreference\fP برای تنظیم یا تطبیق انوتیشن \fBorg.opencontainers.image.ref.name\fR در شاخص (index) سطح بالا استفاده می‌شود. برای خواندن تصاویر، @\fIsource-index\fP یک اندیس بر مبنای صفر در مانیفست است (برای دسترسی به تصاویر بدون برچسب). اگر هنگام خواندن یک تصویر نه مرجع و نه @_source_index مشخص شده باشد، مسیر باید دقیقاً شامل یک تصویر باشد. .SS \fBoci-archive:\fP\fIpath\fP[\fB:\fR\fIreference\fP] تصویری در یک آرشیو tar(1) با محتوای سازگار با "مشخصات چیدمان تصویر کانتینر باز (Open Container Image Layout Specification)" در مسیر \fIpath\fP\&. .PP مگر آن‌که یک ابزار صریحاً خلاف آن را مستند کرده باشد، نوشتن در یک مقصد \fBoci-archive:\fP مسیر \fIpath\fP را کاملاً بازنویسی کرده و آن را با تک تصویر ارائه‌شده جایگزین می‌سازد. .PP مقدار \fIpath\fP در نخستین نویسه \fB:\fR خاتمه می‌یابد؛ هرگونه نویسه \fB:\fR بعدی جداکننده نبوده، بلکه بخشی از \fIreference\fP به شمار می‌آید. مقدار \fIreference\fP برای تنظیم یا تطبیق انوتیشن \fBorg.opencontainers.image.ref.name\fR در شاخص سطح بالا استفاده می‌شود. اگر هنگام خواندن یک آرشیو مقدار \fIreference\fP مشخص نشده باشد، آرشیو باید دقیقاً شامل یک تصویر باشد. .SS \fBsif:\fP\fIpath\fP تصویری با استفاده از قالب تصویر Singularity در مسیر \fIpath\fP\&. .PP فقط خواندن تصاویر پشتیبانی می‌شود و همه اسکریپت‌ها نمی‌توانند در قالب OCI بازنمایی شوند. .SH "مثال‌ها (EXAMPLES)" مثال‌های زیر نحوه استفاده از برخی روش‌های انتقال کانتینر را نشان می‌دهند. در این مثال‌ها از skopeo-copy(1) برای رونوشت گرفتن از تصاویر کانتینر استفاده شده است. .PP \fBرونوشت تصویر از یک رجیستری به رجیستری دیگر\fP: .EX $ skopeo copy docker://docker.io/library/alpine:latest docker://localhost:5000/alpine:latest .EE .PP \fBرونوشت تصویر از دیمن در حال اجرای Docker به دایرکتوری با ساختار OCI\fP: .EX $ mkdir alpine-oci $ skopeo copy docker-daemon:alpine:latest oci:alpine-oci $ tree alpine-oci test-oci/ ├── blobs │   └── sha256 │   ├── 83ef92b73cf4595aa7fe214ec6747228283d585f373d8f6bc08d66bebab531b7 │   ├── 9a6259e911dcd0a53535a25a9760ad8f2eded3528e0ad5604c4488624795cecc │   └── ff8df268d29ccbe81cdf0a173076dcfbbea4bb2b6df1dd26766a73cb7b4ae6f7 ├── index.json └── oci-layout 2 directories, 5 files .EE .PP \fBرونوشت تصویر از یک رجیستری به فضای ذخیره‌سازی محلی\fP: .EX $ skopeo copy docker://docker.io/library/alpine:latest containers-storage:alpine:latest .EE .SH "همچنین ببینید (SEE ALSO)" docker-login(1), docker-save(1), podman-login(1), skopeo-copy(1), skopeo-inspect(1), tar(1), container-registries.conf(5), containers-storage.conf(5) .SH "نویسندگان (AUTHORS)" Miloslav Trmač mitr@redhat.com \[la]mailto:mitr@redhat.com\[ra] Valentin Rothberg rothberg@redhat.com \[la]mailto:rothberg@redhat.com\[ra]