podman-create(1) General Commands Manual podman-create(1) نام (NAME) podman-create - ایجاد یک کانتینر جدید بدون شروع اجرای آن خلاصه دستور (SYNOPSIS) podman create [گزینه‌ها] ایمیج [دستور [آرگومان‌ها...]] توضیحات (DESCRIPTION) یک لایه کانتینر قابل نوشتن روی ایمیج مشخص‌شده ایجاد کرده و آن را برای اجرای دستور آماده می‌سازد. شناسه (ID) کانتینر در خروجی استاندارد چاپ می‌شود. این کار مشابه podman run -d است به جز اینکه کانتینر هرگز شروع به کار نمی‌کند. برای اجرای کانتینر بعداً می‌توانید از دستور podman start استفاده کنید. گزینه‌ها (OPTIONS) --add-host=hostname[;hostname[;...]]:ip افزودن یک نگاشت سفارشی میزبان به IP (به صورت host=ip یا host:ip). افزودن یک خط به /etc/hosts. قالب به صورت hostname=ip یا hostname:ip است. گزینه --add-host می‌تواند چندین بار مشخص شود. --annotation=key=value افزودن یادداشت (annotation) به کانتینر (منتقل‌شده به زمان اجرای OCI) -a, --attach= اتصال به STDIN، STDOUT یا STDERR --arch=ARCH تنظیم ARCH تصویر مورد نظر برای واکشی روی مقدار ارائه‌شده به جای استفاده از معماری میزبان. (نمونه‌ها: arm، arm64، 386، amd64، ppc64le، s390x) --attach, -a=stdin | stdout | stderr متصل کردن ورودی استاندارد (stdin)، خروجی استاندارد (stdout) یا خطای استاندارد (stderr). --authfile=path مسیر فایل احراز هویت. پیش‌فرض ${XDG_RUNTIME_DIR}/containers/auth.json است. برای اطلاعات بیشتر به containers-auth.json(5) مراجعه کنید. این فایل با استفاده از podman login ایجاد می‌شود. اگر وضعیت مجوزدهی در آنجا یافت نشود، $HOME/.podman/config.json بررسی می‌شود که با استفاده از podman login تنظیم شده است. نکته: همچنین می‌توانید مسیر پیش‌فرض فایل احراز هویت را با تنظیم متغیر محیطی REGISTRY_AUTH_FILE بازنویسی کنید. export REGISTRY_AUTH_FILE=path --blkio-weight=weight ورودی/خروجی بلوکی (وزن نسبی)، بین 10 تا 1000، یا 0 برای غیرفعال‌سازی (پیش‌فرض 0) --blkio-weight-device=device:weight وزن ورودی/خروجی بلوکی (وزن نسبی دستگاه) --cap-add=capability افزودن قابلیت‌های لینوکس (Linux capabilities) --cap-drop=capability حذف قابلیت‌های لینوکس (Linux capabilities) --cert-dir=path استفاده از گواهی‌ها در path (*.crt، *.cert، *.key) برای اتصال به رجیستری. دایرکتوری پیش‌فرض گواهی‌ها /etc/containers/certs.d است. --cgroup-conf=KEY=VALUE پیکربندی منابع cgroup v2 برای کانتینر. --cgroup-parent=path گروه کنترلی (cgroup) والد اختیاری برای کانتینر --cgroupns=mode فضای نام cgroup مورد استفاده (host|private) 'host': اجرای کانتینر در فضای نام cgroup میزبان داکر 'private': اجرای کانتینر در فضای نام cgroup خصوصی خودش '': استفاده از فضای نام cgroup پیکربندی‌شده توسط گزینه default-cgroupns-mode در دیمن (پیش‌فرض) --cgroups=how تعیین نحوه مدیریت گروه کنترلی (cgroup) کانتینر (مانند enabled یا disabled یا no-conmon). --chrootdirs=path مسیر دایرکتوری‌های chroot روی سیستم میزبان برای استفاده در کانتینر. --cidfile=file نوشتن شناسه کانتینر درون فایل --conmon-pidfile=file مسیر فایل برای ثبت شناسه فرآیند (PID) مانیتور conmon. --cpu-period=limit محدود کردن دوره CFS (زمان‌بند کاملاً منصفانه) پردازنده --cpu-quota=limit محدود کردن سهمیه CFS (زمان‌بند کاملاً منصفانه) پردازنده --cpu-rt-period=microseconds محدود کردن دوره بی‌درنگ (real-time) پردازنده بر حسب میکروثانیه --cpu-rt-runtime=microseconds محدود کردن زمان اجرای بی‌درنگ (real-time) پردازنده بر حسب میکروثانیه -c, --cpu-shares=0 سهم پردازنده (وزن نسبی) --cpu-shares, -c=shares سهم‌های پردازنده (وزن نسبی) به‌طور پیش‌فرض، همه کانتینرها سهم یکسانی از چرخه‌های پردازنده دریافت می‌کنند. این نسبت می‌تواند با تغییر وزن سهم پردازنده کانتینر نسبت به وزن سایر کانتینرهای در حال اجرا اصلاح شود. برای تغییر نسبت از مقدار پیش‌فرض 1024، از پرچم --cpu-shares برای تنظیم وزن به 2 یا بالاتر استفاده کنید. این نسبت تنها زمانی اعمال خواهد شد که فرایندهای با بار پردازشی بالا در حال اجرا باشند. هنگامی که وظایف در یک کانتینر بیکار هستند، کانتینرهای دیگر می‌توانند از زمان پردازنده باقی‌مانده استفاده کنند. مقدار واقعی زمان پردازنده بسته به تعداد کانتینرهای در حال اجرا روی سیستم متغیر خواهد بود. به عنوان مثال، سه کانتینر را در نظر بگیرید که یکی دارای cpu-share معادل 1024 و دو کانتینر دیگر دارای تنظیم cpu-share برابر با 512 هستند. هنگامی که فرایندها در هر سه کانتینر تلاش می‌کنند از %100 پردازنده استفاده کنند، کانتینر اول %50 از کل زمان پردازنده را دریافت خواهد کرد. اگر کانتینر چهارمی با cpu-share معادل 1024 اضافه کنید، کانتینر اول تنها %33 از پردازنده را دریافت می‌کند. کانتینرهای باقی‌مانده %16.5، %16.5 و %33 از پردازنده را دریافت خواهند کرد. روی یک سیستم چند‌هسته‌ای، سهم‌های زمان پردازنده میان تمام هسته‌های پردازنده توزیع می‌شود. حتی اگر یک کانتینر به کمتر از %100 زمان پردازنده محدود شده باشد، می‌تواند از %100 هر هسته پردازنده به صورت جداگانه استفاده کند. به عنوان مثال، سیستمی با بیش از سه هسته را در نظر بگیرید. اگر یک کانتینر {C0} را با -c=512 در حال اجرای یک فرایند، و کانتینر دیگری {C1} را با -c=1024 در حال اجرای دو فرایند راه‌اندازی کنید، این کار می‌تواند منجر به تقسیم سهم‌های پردازنده به شکل زیر شود: PID container CPU CPU share 100 {C0} 0 100% of CPU0 101 {C1} 1 100% of CPU1 102 {C1} 2 100% of CPU2 --cpus=number تعداد پردازنده‌ها --cpuset-cpus=number پردازنده‌های مجاز برای اجرا (0-3, 0,1) --cpuset-mems=nodes گره‌های حافظه مجاز برای اجرا (0-3, 0,1) --creds=[username[:password]] مقدار [username[:password]] برای استفاده در احراز هویت با رجیستری در صورت نیاز. اگر یک یا هر دو مقدار ارائه نشوند، یک اعلان در خط فرمان ظاهر می‌شود و مقدار می‌تواند وارد شود. گذرواژه بدون بازتاب وارد می‌شود. --decryption-key=key[:passphrase] مقدار [key[:passphrase]] برای استفاده در رمزگشایی تصاویر. کلید می‌تواند به کلیدها و/یا گواهی‌ها اشاره کند. رمزگشایی با تمام کلیدها امتحان خواهد شد. اگر کلید با یک عبارت عبور (passphrase) محافظت شده باشد، ارسال آن در آرگومان الزامی است و در غیر این صورت حذف می‌شود. --device=host-device[:container-device][:permissions] افزودن دستگاه میزبان به کانتینر --device-cgroup-rule="type major:minor mode" افزودن یک قانون به فهرست دستگاه‌های مجاز cgroup --device-read-bps=path:rate محدود کردن نرخ خواندن (بایت در ثانیه) از یک دستگاه --device-read-iops=path:rate محدود کردن نرخ خواندن (ورودی/خروجی در ثانیه) از یک دستگاه --device-write-bps=path:rate محدود کردن نرخ نوشتن (بایت در ثانیه) روی یک دستگاه --device-write-iops=path:rate محدود کردن نرخ نوشتن (ورودی/خروجی در ثانیه) روی یک دستگاه --disable-content-trust این یک گزینه مخصوص داکر برای غیرفعال کردن اعتبارسنجی تصویر در یک رجیستری کانتینر است و توسط Podman پشتیبانی نمی‌شود. این فلگ یک دستور بی‌اثر (NOOP) است و صرفاً برای سازگاری اسکریپت‌ها ارائه شده است. --dns=ipaddr تنظیم کارسازهای DNS سفارشی --dns-option=option تنظیم گزینه‌های DNS --dns-search=domain تنظیم دامنه‌های جستجوی DNS سفارشی --entrypoint="command" | '["command", arg1 , ...]' بازنویسی ENTRYPOINT پیش‌فرض ایمیج -e, --env= تنظیم متغیرهای محیطی --env, -e=env افزودن یک مقدار (برای نمونه env=value) به تصویر ساخته‌شده. این گزینه می‌تواند چندین بار استفاده شود. اگر نه = و نه یک *value* تعیین نشده باشد، اما env در محیط فعلی تنظیم شده باشد، مقدار از محیط فعلی به تصویر اضافه خواهد شد. مقدار env می‌تواند توسط دستورالعمل‌های ENV در Containerfile بازنویسی شود. برای حذف یک متغیر محیطی از تصویر ساخته‌شده، از گزینه --unsetenv استفاده کنید. --env-file=file خواندن فایلی از متغیرهای محیطی --env-host استفاده از تمام متغیرهای محیطی سیستم میزبان درون کانتینر. --env-merge=env ادغام متغیرهای محیطی مشخص‌شده با متغیرهای محیطی موجود در تصویر کانتینر. --expose=port[/protocol] در دسترس قرار دادن (expose) یک درگاه یا محدوده‌ای از درگاه‌ها --gidmap=[flags]container_gid:from_gid[:amount] نگاشت شناسه‌های گروه کاربری (GID) میزبان به کانتینر در حالت بدون ریشه (rootless). --gpus=ENTRY دستگاه‌های پردازنده گرافیکی (GPU) جهت افزودن به کانتینر ('all' برای ارسال همه GPUها) --group-add=group | keep-groups افزودن گروه‌های اضافی جهت عضویت --group-entry=ENTRY ورودی سفارشی برای فایل /etc/group درون کانتینر. --health-cmd="command" | '["command", arg1 , ...]' دستور جهت اجرا برای بررسی وضعیت سلامت --health-interval=interval فاصله زمانی بین اجرای بررسی (ms|s|m|h) (پیش‌فرض 0s) --health-log-destination=directory_path مقصد لاگ‌های بررسی سلامت کانتینر (مانند directory، local، none). --health-max-log-count=number of stored logs حداکثر تعداد رکوردهای لاگ بررسی سلامت که در حافظه ذخیره می‌شوند. --health-max-log-size=size of stored logs حداکثر اندازه فایل لاگ بررسی سلامت بر حسب بایت. --health-on-failure=action عملیاتی که در صورت ناموفق بودن بررسی سلامت انجام می‌شود (مانند none، kill، restart، stop). --health-retries=retries تعداد شکست‌های پیاپی لازم برای گزارش ناسالم بودن --health-start-period=period دوره راه‌اندازی کانتینر برای مقداردهی اولیه قبل از آغاز شمارش معکوس health-retries بر حسب (ms|s|m|h) (پیش‌فرض 0s) --health-startup-cmd="command" | '["command", arg1 , ...]' دستور بررسی سلامت در زمان راه‌اندازی کانتینر. --health-startup-interval=interval فاصله زمانی بین بررسی‌های سلامت هنگام راه‌اندازی کانتینر. --health-startup-retries=retries تعداد تلاش‌های مجدد بررسی سلامت هنگام راه‌اندازی پیش از اعلام شکست. --health-startup-success=retries تعداد دفعات موفقیت متوالی لازم برای گذر از فاز راه‌اندازی سلامت. --health-startup-timeout=timeout حداکثر زمان انتظار برای تکمیل دستور بررسی سلامت در فاز راه‌اندازی. --health-timeout=timeout حداکثر زمان مجاز برای اجرای یک بررسی (ms|s|m|h) (پیش‌فرض 0s) --help چاپ نحوه استفاده -h, --hostname="" نام میزبان کانتینر --hostname, -h=name تنظیم نام میزبان (hostname) سفارشی برای کانتینر. --hosts-file=path | none | image مسیر فایل سفارشی /etc/hosts برای سوار کردن درون کانتینر. --hostuser=name نام کاربری روی میزبان که کانتینر به نمایندگی از آن اجرا می‌شود. --http-proxy به‌طور پیش‌فرض، در صورتی که متغیرهای محیطی پیشکار (proxy) برای فرایند Podman تنظیم شده باشند، به درون کانتینر منتقل می‌شوند. این رفتار را می‌توان با تنظیم گزینه --http-proxy روی false غیرفعال کرد. متغیرهای محیطی منتقل‌شده شامل http_proxy، https_proxy، ftp_proxy، no_proxy و همچنین نگارش‌های با حروف بزرگ آن‌ها هستند. پیش‌فرض true است. --image-volume=bind | tmpfs | ignore نحوه مدیریت حجم‌های تعریف‌شده در ایمیج (bind، tmpfs یا ignore). --init اجرای یک فرایند init درون کانتینر جهت هدایت سیگنال‌ها و جمع‌آوری فرایندهای زامبی -i, --interactive[=false] باز نگه داشتن STDIN حتی اگر متصل نباشد --init-ctr=type تعیین نوع کانتینر به عنوان یک کانتینر اولیه (init container) برای یک پاد. --init-path=path مسیر باینری اجرایی پردازش init کانتینر. --interactive, -i باز نگه داشتن ورودی استاندارد (stdin) حتی اگر کانتینر به ترمینال متصل نباشد. --ip=IPv4 آدرس IPv4 (مانند 172.30.100.104) --ip6=IPv6 آدرس IPv6 (مانند 2001:db8::33) --ipc=ipc حالت IPC مورد استفاده --label, -l=key=value افزودن یک برچسب تصویر label (برای نمونه label=value) به متاداده تصویر. این گزینه می‌تواند چندین بار استفاده شود. اگر نام label ذکر شود، اما نه = و نه یک value ارائه نشود، آنگاه label روی یک مقدار خالی تنظیم می‌شود. کاربران می‌توانند یک LABEL ویژه به صورت io.containers.capabilities=CAP1,CAP2,CAP3 در یک Containerfile تنظیم کنند که فهرست قابلیت‌های (capabilities) لینوکس مورد نیاز برای اجرای درست کانتینر را مشخص می‌کند. این برچسب تعیین‌شده در تصویر کانتینر به موتورهای کانتینر، مانند Podman، که این برچسب را می‌شناسند می‌گوید تا کانتینر را فقط با همین قابلیت‌ها اجرا کنند. موتور کانتینر کانتینر را فقط با قابلیت‌های مشخص‌شده راه‌اندازی می‌کند، تا زمانی که این فهرست از قابلیت‌ها زیرمجموعه‌ای از فهرست پیش‌فرض باشد. اگر قابلیت‌های مشخص‌شده در مجموعه پیش‌فرض نباشند، موتورهای کانتینر باید یک پیام خطا چاپ کنند و کانتینر را با قابلیت‌های پیش‌فرض اجرا خواهند کرد. --label-file=file خواندن فایلی از برچسب‌ها که با خط جدا شده‌اند --link-local-ip=ip آدرس‌های پیوند-محلی (link-local) مربوط به IPv4/IPv6 کانتینر --log-driver=driver راه‌انداز ثبت وقایع (log driver) برای کانتینر --log-opt=name=value گزینه‌های راه‌انداز ثبت وقایع --mac-address=address آدرس MAC کانتینر (مانند 92:d0:c6:0a:29:33) -m, --memory=0 محدودیت حافظه --memory, -m=number[unit] محدودیت حافظه (قالب: []، که در آن واحد می‌تواند b، k، m یا g باشد) به شما امکان می‌دهد حافظه در دسترس کانتینر را محدود کنید. اگر میزبان از حافظه swap پشتیبانی کند، تنظیم حافظه -m می‌تواند بزرگ‌تر از رم (RAM) فیزیکی باشد. اگر محدودیت 0 مشخص شود (عدم استفاده از -m)، حافظه کانتینر محدود نمی‌شود. محدودیت واقعی ممکن است به ضریبی از اندازه صفحه سیستم‌عامل گرد شود (این مقدار بسیار بزرگ خواهد بود، یعنی میلیون‌ها تریلیون). --memory-reservation=number[unit] محدودیت نرم حافظه --memory-swap=number[unit] حد حافظه مبادله‌ای (swap) برابر با مجموع حافظه به‌علاوه swap؛ مقدار '-1' برای فعال کردن swap نامحدود --memory-swappiness=number تنظیم میزان مبادله حافظه کانتینر (swappiness) از 0 تا 100 --mount=type=TYPE,TYPE-SPECIFIC-OPTION[,...] اتصال یک فایل‌سیستم به کانتینر --name=name اختصاص یک نام به کانتینر --network=mode, --net اتصال یک کانتینر به یک شبکه --network-alias=alias افزودن نام مستعار در سطح شبکه برای کانتینر --no-healthcheck غیرفعال کردن هرگونه HEALTHCHECK تعیین‌شده توسط کانتینر --no-hostname فایل /etc/hostname را در کانتینر برای دستورالعمل‌های RUN ایجاد نمی‌کند. به طور پیش‌فرض، Podman فایل /etc/hostname را مدیریت کرده و نام میزبان کانتینر را اضافه می‌کند. هنگامی که گزینه --no-hostname تنظیم شود، فایل /etc/hostname ایمیج (در صورت وجود) بدون تغییر حفظ خواهد شد. --no-hosts فایل /etc/hosts را در کانتینر برای دستورالعمل‌های RUN ایجاد نمی‌کند. به طور پیش‌فرض، Podman فایل /etc/hosts را مدیریت کرده و آدرس IP خود کانتینر را اضافه می‌کند. گزینه --no-hosts این مورد را غیرفعال می‌کند و فایل /etc/hosts ایمیج بدون تغییر حفظ خواهد شد. با گزینه --add-host تداخل دارد. --oom-kill-disable غیرفعال کردن کشنده کمبود حافظه (OOM Killer) --oom-score-adj=num تنظیم اولویت‌های OOM میزبان (از -1000 تا 1000) --os=OS تنظیم سیستم‌عامل تصویری که باید واکشی شود روی مقدار ارائه‌شده، به جای استفاده از سیستم‌عامل کنونی میزبان. --passwd-entry=ENTRY ورودی سفارشی برای فایل /etc/passwd درون کانتینر. --personality=persona تنظیم دامنه اجرای فراخوانی‌های سیستمی لینوکس (Linux Personality). --pid=mode فضای نام PID مورد استفاده --pidfile=path نوشتن شناسه فرآیند (PID) کانتینر درون فایل مشخص‌شده. --pids-limit=limit تنظیم محدودیت تعداد شناسه‌های فرایند (pids) کانتینر (مقدار -1 برای نامحدود) --platform=OS/ARCH تنظیم پلتفرم در صورتی که کارساز قابلیت چندپلتفرمی داشته باشد --pod=name اجرای کانتینر درون یک پاد موجود یا ایجاد پاد جدید با پیشوند new:. --pod-id-file=file خواندن یا نوشتن شناسه پاد از یا به یک فایل. --privileged اعطای دسترسی‌های گسترده به این کانتینر -p, --publish= انتشار درگاه(های) کانتینر روی میزبان -P, --publish-all[=false] انتشار تمامی درگاه‌های در دسترس به درگاه‌های تصادفی --publish, -p=[[hostIP:][hostPort]:]containerPort[/protocol] انتشار یک پورت کانتینر یا دامنه‌ای از پورت‌ها به پورت‌های میزبان. --publish-all, -P انتشار خودکار تمامی پورت‌های تعریف‌شده در ایمیج به پورت‌های تصادفی میزبان. --pull=policy دریافت ایمیج پیش از ایجاد ("always"، "missing"، "never") -q, --quiet[=false] بی‌صدا کردن خروجی دریافت ایمیج --quiet, -q در صورتی که نیاز به دریافت تصویر از مخزن باشد، از نمایش روند پیشرفت جلوگیری می‌کند. --rdt-class=intel-rdt-class-of-service کلاس فناوری توزیع منابع اینتل (Intel RDT) برای اختصاص پهنای باند و حافظه کش. --read-only سوار کردن فایل‌سیستم ریشه کانتینر به‌صورت فقط‌خواندنی --read-only-tmpfs سوار کردن سیستم‌فایل موقت tmpfs روی /tmp و /var/tmp در حالت فقط‌خواندنی. --replace در صورت وجود کانتینری با همین نام، به صورت خودکار آن را متوقف و جایگزین کند. --requires=container تعیین کانتینرهای پیش‌نیاز که پیش از این کانتینر باید ایجاد و اجرا شوند. --restart=policy سیاست راه‌اندازی مجدد هنگام خروج کانتینر --retry=attempts تعداد دفعات تلاش مجدد در صورت بروز خطا هنگام دریافت تصاویر از مخزن. مقدار پیش‌فرض 3 است. --retry-delay=duration مدت‌زمان تاخیر بین تلاش‌های مجدد در صورت بروز خطا هنگام دریافت تصاویر از مخزن. مقدار پیش‌فرض 2s است. --rm حذف خودکار کانتینر و حجم‌های ناشناس وابسته به آن پس از خروج --rootfs استفاده از یک دایرکتوری سیستم‌فایل ریشه به جای ایمیج کانتینر. --sdnotify=container | conmon | healthy | ignore تعیین حالت ارسال اعلان‌های systemd sd_notify (مانند container، conmon یا ignore). --seccomp-policy=policy خط‌مشی بارگذاری پروفایل seccomp (مانند default یا image). --secret=secret[,opt=opt ...] ارسال اطلاعات محرمانه (سکرت / secret) برای استفاده در Containerfile جهت ساخت ایمیج‌ها به روشی امن که در نهایت در ایمیج نهایی ذخیره نشود یا در مراحل دیگر دیده نشود. مقدار سکرت از یک متغیر محیطی یا پرونده با نام ارائه‌شده توسط گزینه "id"، یا با نام تعیین‌شده توسط گزینه "src" (در صورت مشخص شدن)، یا از یک متغیر محیطی مشخص‌شده با گزینه "env" خوانده می‌شود. اطلاعات محرمانه (سکرت) به‌طور پیش‌فرض در مسیر /run/secrets/ در کانتینر متصل (mount) خواهد شد. برای استفاده از سکرت در ادامه، از فلگ --mount در دستورالعمل RUN در داخل یک Containerfile استفاده کنید: RUN --mount=type=secret,id=mysecret cat /run/secrets/mysecret محل قرارگیری سکرت در کانتینر را می‌توان با استفاده از گزینه‌های "target"، "dst" یا "destination" از فلگ RUN --mount بازنویسی کرد. RUN --mount=type=secret,id=mysecret,target=/run/secrets/myothersecret cat /run/secrets/myothersecret همچنین سکرت را می‌توان به‌صورت متغیر محیطی در اختیار فرایند قرار داد: RUN --mount=type=secret,id=mysecret,env=FOO sh -c 'echo "Hello $FOO"' نکته: تغییر محتوای پرونده‌های سکرت، موجب بازسازی مجدد لایه‌هایی که از سکرت‌های مذکور استفاده می‌کنند نخواهد شد. --security-opt=option گزینه‌های امنیتی --shm-size=number[unit] اندازه مسیر /dev/shm --shm-size-systemd=number[unit] اندازه سیستم‌فایل موقت /dev/shm در زمان فعال بودن حالت systemd. --stop-signal=signal سیگنال متوقف کردن کانتینر --stop-timeout=seconds مهلت زمانی (بر حسب ثانیه) برای متوقف کردن کانتینر --subgidname=name نام کاربری در /etc/subgid برای تخصیص شناسه‌های گروه کاربری در حالت بدون ریشه. --subuidname=name نام کاربری در /etc/subuid برای تخصیص شناسه‌های کاربری در حالت بدون ریشه. --sysctl=name=value گزینه‌های sysctl --systemd=true | false | always اجرای کانتینر در حالت سازگار با systemd (مانند true، false یا always). --timeout=seconds حداکثر زمان مجاز اجرای کانتینر پیش از ارسال سیگنال خاتمه به ثانیه. --tls-verify الزام استفاده از HTTPS و اعتبارسنجی گواهی‌ها هنگام برقراری ارتباط با مخازن کانتینر (پیش‌فرض true است). هنگام برقراری ارتباط با یک مخزن ناامن نمی‌توان از اعتبارسنجی TLS استفاده کرد. --tmpfs=fs سوار کردن یک دایرکتوری tmpfs -t, --tty[=false] تخصیص یک شبه-TTY --tty, -t تخصیص یک شبه‌ترمینال (pseudo-TTY) به کانتینر. --tz=timezone تنظیم منطقه زمانی (Timezone) محلی درون کانتینر. --uidmap=[flags]container_uid:from_uid[:amount] نگاشت شناسه‌های کاربری (UID) سیستم میزبان به کانتینر در حالت بدون ریشه. --ulimit=option گزینه‌های ulimit --umask=umask تنظیم ماسک دسترسی ایجاد فایل (umask) درون کانتینر. --unsetenv=env حذف متغیرهای محیطی از تصویر نهایی. --unsetenv-all پاکسازی تمامی متغیرهای محیطی به ارث رسیده از ایمیج پایه. --user, -u=user[:group] تعیین نام کاربری یا شناسه کاربری (UID/GID) برای اجرای فرآیند کانتینر. --userns=mode فضای نام کاربر مورد استفاده --uts=mode فضای نام UTS مورد استفاده -v, --volume= سوار کردن یک حجم به‌صورت bind mount --variant=VARIANT گونه (variant) معماری تصویری که باید دریافت شود را تنظیم می‌کند. --volume, -v=[[SOURCE-VOLUME|HOST-DIR:]CONTAINER-DIR[:OPTIONS]] ایجاد یک اتصال پیوندی (bind mount). اگر مشخص کنید -v /HOST- DIR:/CONTAINER-DIR، ابزار Podman مسیر /HOST-DIR در میزبان را به /CONTAINER-DIR درون کانتینر Podman پیوند می‌زند. مقادیر OPTIONS فهرستی جداشده با کاما هستند و می‌توانند شامل موارد زیر باشند: • [rw|ro] • [U] • [z|Z|O] • [[r]shared|[r]slave|[r]private|[r]unbindable] [1] ⟨#Footnote1⟩ مسیر CONTAINER-DIR باید یک مسیر مطلق مانند /src/docs باشد. مسیر HOST- DIR نیز باید یک مسیر مطلق باشد. Podman مسیر HOST-DIR را به مسیری که مشخص می‌کنید bind-mount می‌کند. برای نمونه، اگر /foo را به‌عنوان مسیر میزبان بدهید، Podman محتویات /foo را در سیستم‌فایل کانتینر روی میزبان کپی کرده و آن را به درون کانتینر bind-mount می‌کند. می‌توانید چندین گزینه -v را برای سوار کردن یک یا چند اتصال به یک کانتینر مشخص کنید. اتصال‌های جلد حفاظت‌شده در برابر نوشتن (Write Protected Volume Mounts) می‌توانید پسوند :ro یا :rw را به یک جلد اضافه کنید تا به ترتیب در حالت فقط‌خواندنی یا خواندنی-نوشتنی متصل شود. به‌طور پیش‌فرض، جلدها به‌صورت خواندنی-نوشتنی سوار می‌شوند. مثال‌ها را ببینید. تغییر مالکیت اتصال‌های جلد (Chowning Volume Mounts) به‌طور پیش‌فرض، Podman مالک و گروه دایرکتوری‌های جلد منبع متصل‌شده به کانتینرها را تغییر نمی‌دهد. اگر کانتینری در یک فضای‌نام کاربری (user namespace) جدید ایجاد شود، UID و GID درون کانتینر ممکن است با UID و GID متفاوتی روی میزبان متناظر باشند. پسوند :U به Podman اعلام می‌کند تا بر پایه UID و GID درون کانتینر، از UID و GID درست میزبان استفاده کرده و مالک و گروه جلد منبع را تغییر دهد. برچسب‌گذاری اتصال‌های جلد (Labeling Volume Mounts) سامانه‌های برچسب‌گذاری مانند SELinux نیازمند قرارگیری برچسب‌های مناسب روی محتوای جلد متصل‌شده به کانتینر هستند. بدون برچسب، سامانه امنیتی ممکن است از استفاده فرایندهای در حال اجرا درون کانتینر از محتوا جلوگیری کند. به‌طور پیش‌فرض، Podman برچسب‌های تنظیم‌شده توسط سیستم‌عامل را تغییر نمی‌دهد. برای تغییر یک برچسب در بستر کانتینر، می‌توانید یکی از دو پسوند :z یا :Z را به اتصال جلد اضافه کنید. این پسوندها به Podman می‌گویند که اشیای فایل روی جلدهای اشتراکی را دوباره برچسب‌گذاری کند. گزینه z به Podman می‌گوید که دو کانتینر محتوای جلد را به اشتراک می‌گذارند. در نتیجه، Podman محتوا را با یک برچسب محتوای مشترک برچسب‌گذاری می‌کند. برچسب‌های جلد مشترک به همه کانتینرها اجازه خواندن/نوشتن محتوا را می‌دهند. گزینه Z به Podman می‌گوید که محتوا را با یک برچسب خصوصی غیرمشترک برچسب‌گذاری کند. تنها کانتینر فعلی می‌تواند از یک جلد خصوصی استفاده کند. اتصال‌های جلد اورلی (Overlay Volume Mounts) پرچم :O به Podman اعلام می‌کند دایرکتوری را از میزبان با استفاده از سیستم‌فایل Overlay به‌عنوان یک فضای ذخیره‌سازی موقت سوار کند. کانتینرهای دستور RUN مجاز هستند محتویات درون نقطه اتصال را تغییر دهند و این تغییرات در فضای ذخیره‌سازی کانتینر در یک دایرکتوری جداگانه ذخیره می‌شوند. در اصطلاحات سامانه فایل Overlay، دایرکتوری منبع lower و دایرکتوری ذخیره‌سازی کانتینر upper خواهد بود. اصلاحات انجام‌شده در نقطه اتصال هنگام پایان اجرای دستور RUN از بین می‌روند، شبیه به یک نقطه اتصال tmpfs. هر اجرای بعدی دستورهای RUN محتوای دایرکتوری منبع اصلی را می‌بیند؛ و هر تغییری از دستورات RUN قبلی دیگر وجود نخواهد داشت. یک مورد استفاده از اتصال overlay، به اشتراک گذاشتن حافظه نهان بسته‌ها (package cache) از میزبان به درون کانتینر برای افزایش سرعت ساخت است. نکته: • پرچم O مجاز نیست همراه با پرچم‌های Z یا z مشخص شود. محتوای متصل‌شده به درون کانتینر با برچسب خصوصی برچسب‌گذاری می‌شود. در سامانه‌های SELinux، برچسب‌های موجود در دایرکتوری منبع باید برای برچسب کانتینر قابل‌خواندن باشند. در غیر این صورت، تفکیک کانتینر SELinux باید غیرفعال شود تا کانتینر کار کند. • تغییر دایرکتوری جلدی که با یک اتصال overlay به درون کانتینر متصل شده است می‌تواند خطاهای غیرمنتظره به وجود آورد. توصیه می‌شود تا پایان اجرای کانتینر این دایرکتوری را تغییر ندهید. به‌طور پیش‌فرض جلدهای bind-mount شده private هستند. بدین معنا که هرگونه اتصالی که درون کانتینر انجام شود روی میزبان قابل مشاهده نخواهد بود و برعکس. این رفتار را می‌توان با مشخص کردن ویژگی انتشار اتصال جلد تغییر داد. هنگامی که خط‌مشی انتشار اتصال روی shared تنظیم شود، هرگونه اتصال انجام‌شده درون کانتینر روی آن جلد هم برای میزبان و هم کانتینر قابل مشاهده خواهد بود. هنگامی که خط‌مشی انتشار اتصال روی slave تنظیم شود، انتشار یک‌طرفه اتصال فعال شده و هرگونه اتصال انجام‌شده روی میزبان برای آن جلد تنها در داخل کانتینر قابل مشاهده خواهد بود. برای کنترل ویژگی انتشار اتصال جلد، از پرچم‌های انتشار :[r]shared، :[r]slave، [r]private یا [r]unbindable استفاده کنید. ویژگی انتشار را فقط می‌توان برای جلدهای bind-mount شده تعیین کرد و نه جلدهای داخلی یا جلدهای نام‌گذاری‌شده. برای کارکرد انتشار اتصال روی نقطه اتصال منبع (نقطه اتصالی که دایرکتوری منبع روی آن سوار شده است)، باید ویژگی‌های انتشار مناسب را داشته باشد. برای جلدهای shared، نقطه اتصال منبع باید shared باشد. و برای جلدهای slave، اتصال منبع باید shared یا slave باشد. [1] ⟨#Footnote1⟩ از دستور df برای تعیین اتصال منبع و سپس از دستور findmnt -o TARGET,PROPAGATION برای تعیین ویژگی‌های انتشار اتصال منبع استفاده کنید؛ اگر ابزار findmnt در دسترس نیست، نقطه اتصال منبع را می‌توان با بررسی مدخل mount در فایل /proc/self/mountinfo مشخص کرد. optional fields را بررسی کنید و ببینید آیا ویژگی انتشاری مشخص شده است یا خیر. shared:X به معنای shared بودن اتصال است، master:X به معنای slave بودن اتصال است و اگر چیزی وجود نداشته باشد به این معناست که اتصال private است. [1] ⟨#Footnote1⟩ برای تغییر ویژگی‌های انتشار یک نقطه اتصال از دستور mount استفاده کنید. برای نمونه، برای bind-mount کردن دایرکتوری منبع /foo دستورهای mount --bind /foo /foo و mount --make-private --make-shared /foo را اجرا کنید. این کار /foo را به یک نقطه اتصال shared تبدیل می‌کند. ویژگی‌های انتشار نقطه اتصال منبع را می‌توان مستقیماً تغییر داد. برای نمونه اگر / نقطه اتصال منبع برای /foo باشد، دستور mount --make-shared / را برای تبدیل / به یک اتصال shared به کار ببرید. مثال (EXAMPLE) podman from --pull imagename podman from --pull podman://myregistry.example.com/imagename podman from podman-daemon:imagename:imagetag podman from --name mycontainer podman-archive:filename podman from oci-archive:filename podman from --name mycontainer dir:directoryname podman from --pull-always --name "mycontainer" myregistry.example.com/imagename podman from --tls-verify=false myregistry/myrepository/imagename:imagetag podman from --creds=myusername:mypassword --cert-dir ~/auth myregistry/myrepository/imagename:imagetag podman from --authfile=/tmp/auths/myauths.json myregistry/myrepository/imagename:imagetag podman from --memory 40m --cpu-shares 2 --cpuset-cpus 0,2 --security- opt label=level:s0:c100,c200 myregistry/myrepository/imagename:imagetag podman from --ulimit nofile=1024:1028 --cgroup-parent /path/to/cgroup/parent myregistry/myrepository/imagename:imagetag podman from --volume /home/test:/myvol:ro,Z myregistry/myrepository/imagename:imagetag podman from -v /home/test:/myvol:z,U myregistry/myrepository/imagename:imagetag podman from -v /var/lib/yum:/var/lib/yum:O myregistry/myrepository/imagename:imagetag podman from --arch=arm --variant v7 myregistry/myrepository/imagename:imagetag متغیرهای محیطی (ENVIRONMENT) BUILD_REGISTRY_SOURCES متغیر BUILD_REGISTRY_SOURCES در صورت مقداردهی، به عنوان یک شیء JSON در نظر گرفته می‌شود که شامل فهرست‌هایی از نام‌های رجیستری ذیل کلیدهای insecureRegistries، blockedRegistries و allowedRegistries است. هنگام دریافت (pull) تصویر از یک رجیستری، اگر نام رجیستری با هر یک از موارد موجود در فهرست blockedRegistries مطابقت داشته باشد، تلاش برای دریافت تصویر رد می‌شود. اگر در فهرست allowedRegistries رجیستری‌هایی وجود داشته باشند و نام رجیستری در فهرست نباشد، تلاش برای دریافت رد می‌شود. TMPDIR متغیر محیطی TMPDIR به کاربر امکان می‌دهد محل ذخیره پرونده‌های موقت را هنگام دریافت و ارسال (pull و push) تصاویر مشخص کند. مقدار پیش‌فرض '/var/tmp' است. پرونده‌ها (FILES) registries.conf (/etc/containers/registries.conf) پرونده registries.conf پرونده پیکربندی است که مشخص می‌کند هنگام تکمیل نام‌های تصاویری که فاقد بخش رجیستری یا دامنه هستند، باید به کدام رجیستری‌های کانتینر مراجعه شود. policy.json (/etc/containers/policy.json) پرونده سیاست امضا. این پرونده سیاست اعتماد را برای تصاویر کانتینر تعریف می‌کند. تعیین می‌کند کدام رجیستری‌های کانتینر می‌توانند برای تصاویر استفاده شوند و این‌که آیا ابزار باید به تصاویر اعتماد کند یا خیر. همچنین ببینید (SEE ALSO) podman(1), podman-pull(1), podman-login(1), podman-login(1), namespaces(7), pid_namespaces(7), containers-policy.json(5), containers-registries.conf(5), user_namespaces(7), containers.conf(5), containers-auth.json(5) پانویس‌ها (FOOTNOTES) ۱: پروژه Podman به فراگیری، از ارزش‌های بنیادین متن‌باز، متعهد است. اصطلاحات انتشار سوارکردن (mount propagation) شامل master و slave که در این‌جا استفاده شده، مشکل‌ساز و تفرقه‌افکن است و باید دگرگون شود. با این حال، این اصطلاحات هم‌اکنون درون هسته لینوکس استفاده می‌شوند و در این مقطع زمانی باید به همان صورت به کار روند. هنگامی که نگه‌دارندگان هسته این کاربرد را اصلاح کنند، Podman بی‌درنگ از آن پیروی خواهد کرد. --volumes-from=CONTAINER[:OPTIONS] سوار کردن حجم‌ها از کانتینر(های) مشخص‌شده -w, --workdir="" دایرکتوری کاری درون کانتینر ببینید (SEE ALSO) podman(1) --workdir, -w=dir تعیین دایرکتوری کاری درون کانتینر هنگام اجرا. مثال‌ها (EXAMPLES) ایجاد یک کانتینر جدید با استفاده از ایمیج fedora: $ podman create -it fedora bash 6d353a48c72447cc7d0799e8334460598a3c8e9b81561726ca21c385b0d0e653 ایجاد یک کانتینر با نام مشخص: $ podman create --name my-container fedora وضعیت خروج (EXIT STATUS) کد خروج صفر نشان‌دهنده موفقیت کامل عملیات ایجاد کانتینر است. کدهای غیرصفر نشان‌دهنده خطای پیکربندی، عدم دسترسی یا عدم وجود ایمیج مشخص‌شده هستند. همچنین ببینید (SEE ALSO) podman(1), podman-run(1), podman-start(1) تاریخچه (HISTORY) پاییز ۲۰۱۷، در ابتدا توسط Urvashi Mohnani کامپایل شد. podman-create(1)