| podman-container-runlabel(1) | General Commands Manual | podman-container-runlabel(1) |
نام (NAME)
podman-container-runlabel - اجرای یک دستور بر اساس برچسب ایمیج کانتینر
خلاصه دستور (SYNOPSIS)
podman container runlabel [options] label image [arg...]
توضیحات (DESCRIPTION)
دستور podman container runlabel برچسب (label) مشخصشده از ایمیج را میخواند و آن را به عنوان یک دستور روی میزبان اجرا میکند. اگر برچسب وجود نداشته باشد، پودمن با خطا خارج میشود. آرگومانهای اضافی به انتهای دستور ضمیمه میشوند.
از گذشته، ایمیجهای کانتینر محتویات (مانند لایهها) و نحوه اجرای کانتینر توسط یک زمان اجرای کانتینر (مانند crun(1) یا runc(1)) را توصیف میکنند. به عنوان مثال، یک ایمیج ممکن است متغیرهای محیطی و دستور را در پیکربندی خود تعیین کند. با این حال، یک ایمیج کانتینر نمیتواند مستقیماً مشخص کند که یک موتور کانتینر مانند پودمن چگونه باید آن را اجرا کند. برای نمونه، پیکربندی یک ایمیج شامل اطلاعاتی درباره راهاندازهای گزارشگیری (log drivers)، فضاهای نام (namespaces)، یا قابلیتهایی (capabilities) که برای اجرای صحیح نیاز دارد، نمیشود.
دستور podman container runlabel این محدودیت ایمیجهای کانتینر را به روشی ساده و در عین حال کارآمد برطرف میکند. پودمن محتویات برچسب را میخواند و آن را به عنوان دستوری که روی میزبان اجرا میشود تفسیر میکند. به این ترتیب یک ایمیج میتواند دقیقاً نحوه اجرای خود توسط پودمن را توصیف کند. برای مثال، یک برچسب با محتوای /usr/bin/podman run -d --pid=host --privileged \${IMAGE} به ایمیج دستور میدهد در یک کانتینر جداشده (detached) و دارای امتیاز ویژه (privileged) که از فضای نام PID میزبان استفاده میکند اجرا شود. این امر توصیف خود ایمیج کانتینر را از «چه چیزی» به «چگونه» ارتقا میدهد.
توجه داشته باشید که دستور runlabel منحصراً برای اجرا در محیطهای مورد اعتماد در نظر گرفته شده است. استفاده از این دستور روی ایمیجهای غیرقابل اعتماد توصیه نمیشود.
متغیرها (VARIABLES)
محتویات یک برچسب ممکن است به متغیرهای زیر ارجاع دهد که در حین پردازش برچسب جایگزین میشوند.
IMAGE نام ایمیج. هنگام اجرای podman container runlabel label fedora متغیر IMAGE با fedora جایگزین میشود. قالبهای معتبر عبارتند از IMAGE، $IMAGE، ${IMAGE} و =IMAGE.
NAME همانطور که توسط گزینه --name مشخص شده است. قالب آن مشابه ویژگی IMAGE است.
PWD با دایرکتوری کاری فعلی جایگزین خواهد شد.
گزینهها (OPTIONS)
--authfile=path
مسیر فایل احراز هویت. پیشفرض در لینوکس ${XDG_RUNTIME_DIR}/containers/auth.json و در Windows/macOS برابر با $HOME/.config/containers/auth.json است. این فایل توسط podman login ایجاد میشود. اگر وضعیت احراز هویت در آنجا یافت نشود، $HOME/.docker/config.json بررسی میشود که با استفاده از docker login تنظیم میگردد.
نکته: همچنین این امکان وجود دارد که مسیر پیشفرض فایل احراز هویت را با تنظیم متغیر محیطی REGISTRY_AUTH_FILE بازنویسی کرد. این کار با export REGISTRY_AUTH_FILE=path امکانپذیر است.
--cert-dir=path
استفاده از گواهیهای موجود در path (*.crt, *.cert, *.key) برای اتصال به مخزن (رجیستری). (پیشفرض: /etc/containers/certs.d) برای جزئیات، containers-certs.d(5) را ببینید. (این گزینه در کلاینت ریموت پودمن، از جمله ماشینهای Mac و Windows (بهاستثنای WSL2) در دسترس نیست)
--creds=[username[:password]]
مقدار [username[:password]] برای استفاده در احراز هویت با رجیستری، در صورت لزوم. اگر یک یا هر دو مقدار ارائه نشوند، اعلان خط فرمان ظاهر میشود و میتوان مقدار را وارد کرد. رمز عبور بدون بازتاب وارد میشود.
توجه داشته باشید که اعتبارنامههای مشخصشده تنها برای احراز هویت در برابر رجیستریهای هدف استفاده میشوند. آنها برای آینهها (mirrors) یا زمانی که رجیستری بازنویسی میشود استفاده نمیشوند (به containers-registries.conf(5) مراجعه کنید)؛ برای احراز هویت در برابر آنها استفاده از فایل containers-auth.json(5) را مد نظر قرار دهید.
--display
نمایش مقدار برچسب ایمیج پس از پر شدن متغیرهای محیطی آن. در صورت تعیین --display، دستور runlabel اجرا نمیشود.
--help, -h
چاپ راهنمای استفاده
--name, -n=name
استفاده از این نام برای ایجاد محتوا برای کانتینر. در صورت عدم تعیین، نام بهطور پیشفرض به نام ایمیج تنظیم میشود.
--quiet, -q
سرکوب اطلاعات خروجی هنگام دریافت (pull) ایمیجها
--replace
اگر کانتینری با نام فعلی وجود داشته باشد، متوقف و حذف میشود و کانتینر جدیدی از این ایمیج ایجاد میگردد.
--tls-verify
الزام به HTTPS و اعتبارسنجی گواهیها هنگام تماس با رجیستریها (پیشفرض: true). اگر صراحتاً روی true تنظیم شود، اعتبارسنجی TLS استفاده میشود. اگر روی false تنظیم شود، اعتبارسنجی TLS استفاده نمیشود. در صورت عدم تعیین، اعتبارسنجی TLS استفاده میشود مگر اینکه رجیستری هدف در containers-registries.conf(5) به عنوان یک رجیستری ناامن فهرست شده باشد.
مثالها (EXAMPLES)
اجرای برچسب run از یک ایمیج به نام foobar.
$ podman container runlabel run foobar
اجرای برچسب install از ایمیج foobar با آرگومانهای اضافی.
$ podman container runlabel install foobar apples oranges
نمایش محتویات برچسب run از ایمیج foobar.
$ podman container runlabel --display run foobar
اجرای مجدد یک کانتینر با استفاده از برچسبی که نام ثابتی برای کانتینر تعیین میکند. پرچم --replace اطمینان حاصل میکند که هر کانتینر موجود ابتدا حذف شود.
$ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1254c038d892 docker.io/library/busybox:latest echo Hello from r... 26 seconds ago Exited (0) 26 seconds ago test-runlabel $ podman container runlabel --replace RUN runlabel-test Hello from runlabel $ podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 28efd9600d0c docker.io/library/busybox:latest echo Hello from r... 4 seconds ago Exited (0) 4 seconds ago test-runlabel
این دستور زمانی مفید است که برچسب از یک نام ثابت (مانند --name mycontainer) استفاده میکند و شما میخواهید آن را بارها بدون حذف دستی کانتینر قبلی اجرا نمایید.
همچنین ببینید (SEE ALSO)
podman(1), crun(1), runc(8), containers-certs.d(5), containers-auth.json(5), containers-registries.conf(5)
تاریخچه (HISTORY)
اوت ۲۰۲۱، اصلاحات توسط Valentin Rothberg (rothberg at redhat dot com)
سپتامبر ۲۰۱۸، در ابتدا توسط Brent Baude (bbaude at redhat dot com) گردآوری شد