.TH "DISTROBOX\-CREATE" "1" "Mar 2026" "Distrobox" "User Manual" .SH "نام (NAME)" distrobox\-create \- ایجاد و مقداردهی اولیه کانتینرهای distrobox .SH "توضیحات (DESCRIPTION)" دستور distrobox\-create وظیفهٔ ایجاد کانتینر با نام و تصویر (image) ورودی را بر عهده دارد. کانتینر ایجادشده به‌طور عمیق با میزبان یکپارچه خواهد شد و امکان اشتراک‌گذاری دایرکتوری HOME کاربر، حافظه‌های ذخیره‌سازی خارجی، دستگاه‌های USB خارجی، برنامه‌های گرافیکی (X11/Wayland) و صدا را فراهم می‌سازد. .SH "خلاصه دستور (SYNOPSIS)" \f[B]distrobox create\f[R] .IP .EX \-\-image/\-i: تصویر مورد استفاده برای کانتینر پیش‌فرض: ${container_image_default} \-\-name/\-n: نام برای distrobox پیش‌فرض: ${container_name_default} \-\-hostname: نام میزبان (hostname) برای distrobox پیش‌فرض: .$(uname \-n) \-\-pull/\-p: دریافت تصویر حتی در صورت وجود محلی (متضمن \-\-yes) \-\-yes/\-Y: غیرتعاملی، دریافت تصاویر بدون پرسش \-\-root/\-r: اجرای podman/docker/lilipod با دسترسی‌های ریشه (root). توجه داشته باشید اگر به root نیاز دارید، این روش نسبت به \[dq]sudo distrobox\[dq] ارجح است (نکته: در صورت لزوم استفاده از برنامه‌ای غیر از \[aq]sudo\[aq] برای دسترسی‌های root، آن را از طریق متغیر محیطی DBX_SUDO_PROGRAM یا متغیر پیکربندی \[aq]distrobox_sudo_program\[aq] مشخص کنید) \-\-clone/\-c: نام کانتینر distrobox برای استفاده به عنوان پایه کانتینر جدید این گزینه برای تغییر نام یک distrobox موجود یا داشتن چندین نسخه از یک محیط مفید خواهد بود. \-\-home/\-H: انتخاب یک دایرکتوری HOME سفارشی برای کانتینر. مفید برای جلوگیری از شلوغ شدن دایرکتوری home میزبان با فایل‌های موقت. \-\-volume: فضاهای ذخیره‌سازی اضافی (volumes) برای افزودن به کانتینر \-\-additional\-flags/\-a: پرچم‌های اضافی برای ارسال به دستور مدیر کانتینر \-\-additional\-packages/\-ap: بسته‌های اضافی برای نصب در طول راه‌اندازی اولیه کانتینر \-\-init\-hooks: دستورات اضافی برای اجرا در پایان مقداردهی اولیه کانتینر \-\-pre\-init\-hooks: دستورات اضافی برای اجرا در ابتدای مقداردهی اولیه کانتینر \-\-init/\-I: استفاده از سیستم init (مانند systemd) درون کانتینر. این گزینه باعث می‌شود فرآیندهای میزبان از داخل کانتینر قابل مشاهده نباشند (متضمن \-\-unshare\-process). بسته به تصویر کانتینر ممکن است به بسته‌های اضافی نیاز داشته باشد: https://github.com/89luca89/distrobox/blob/main/docs/useful_tips.md#using\-init\-system\-inside\-a\-distrobox \-\-nvidia: تلاش برای یکپارچه‌سازی درایورهای nVidia میزبان در مهمان \-\-platform: مشخص کردن پلتفرم مورد استفاده، مثلاً: linux/arm64 \-\-unshare\-devsys: عدم اشتراک‌گذاری دستگاه‌های میزبان و دایرکتوری‌های sysfs از میزبان \-\-unshare\-groups: عدم انتقال گروه‌های اضافی کاربر به درون کانتینر \-\-unshare\-ipc: عدم اشتراک‌گذاری فضای نام ipc با میزبان \-\-unshare\-netns: عدم اشتراک‌گذاری فضای نام شبکه (net) با میزبان \-\-unshare\-process: عدم اشتراک‌گذاری فضای نام فرآیندها با میزبان \-\-unshare\-all: فعال‌سازی تمام پرچم‌های unshare زیر \-\-compatibility/\-C: نمایش فهرست تصاویر سازگار \-\-help/\-h: نمایش این پیام راهنما \-\-no\-entry: عدم ایجاد مدخل برای کانتینر در فهرست برنامه‌ها \-\-dry\-run/\-d: صرفاً چاپ دستور تولیدشده برای مدیر کانتینر \-\-verbose/\-v: نمایش اطلاعات با جزئیات بیشتر \-\-version/\-V: نمایش نسخه \-\-absolutely\-disable\-root\-password\-i\-am\-really\-positively\-sure: ⚠️ ⚠️ هنگام راه‌اندازی یک distrobox با دسترسی ریشه (rootful)، این گزینه تنظیم گذرواژه کاربر را نادیده گرفته و آن را خالی می‌گذارد. ⚠️ ⚠️ .EE .SH "سازگاری (COMPATIBILITY)" .IP .EX برای مشاهده فهرست تصاویر و مدیران کانتینر سازگار، لطفاً به صفحات راهنما مراجعه کنید: man distrobox man distrobox\-compatibility یا صفحه مستندات را در نشانی زیر بررسی نمایید: https://github.com/89luca89/distrobox/blob/main/docs/compatibility.md#containers\-distros .EE .SH "مثال‌ها (EXAMPLES)" ایجاد یک distrobox با تصویر alpine به نام my\-alpine\-container .IP .EX distrobox create \-\-image alpine my\-alpine\-container .EE .PP ایجاد یک distrobox از تصویر fedora\-toolbox:35 .IP .EX distrobox create \-\-image registry.fedoraproject.org/fedora\-toolbox:35 \-\-name fedora\-toolbox\-35 .EE .PP کلون کردن یک کانتینر distrobox موجود .IP .EX distrobox create \-\-clone fedora\-35 \-\-name fedora\-35\-copy .EE .PP دریافت همیشگی تصویر تازه هنگام ایجاد distrobox .IP .EX distrobox create \-\-pull \-\-image centos:stream9 \-\-home \[ti]/distrobox/centos9 .EE .PP افزودن متغیرهای محیطی بیشتر به کانتینر .IP .EX distrobox create \-\-image fedora:35 \-\-name test \-\-additional\-flags \[dq]\-\-env MY_VAR=value\[dq] .EE .PP افزودن فضاهای ذخیره‌سازی (volumes) بیشتر به کانتینر .IP .EX distrobox create \-\-image fedora:35 \-\-name test \-\-volume /opt/my\-dir:/usr/local/my\-dir:rw \-\-additional\-flags \[dq]\-\-pids\-limit \-1\[dq] .EE .PP افزودن بسته‌های بیشتر به کانتینر .IP .EX distrobox create \-\-image alpine:latest \-\-name test2 \-\-additional\-packages \[dq]git tmux vim\[dq] .EE .PP استفاده از init\-hooks برای اجرای عملیات در زمان راه‌اندازی کانتینر .IP .EX distrobox create \-\-image alpine:latest \-\-name test \-\-init\-hooks \[dq]touch /var/tmp/test1 && touch /var/tmp/test2\[dq] .EE .PP استفاده از pre\-init\-hooks برای اجرای عملیات در ابتدای راه‌اندازی کانتینر (پیش از اجرای هرگونه مدیر بسته) .IP .EX distrobox create \-i docker.io/almalinux/8\-init \-\-init \-\-name test \-\-pre\-init\-hooks \[dq]dnf config\-manager \-\-enable powertools && dnf \-y install epel\-release\[dq] .EE .PP استفاده از init برای ایجاد یک کانتینر Systemd (مشابه یک LXC عمل می‌کند): .IP .EX distrobox create \-i ubuntu:latest \-\-name test \-\-additional\-packages \[dq]systemd libpam\-systemd pipewire\-audio\-client\-libraries\[dq] \-\-init .EE .PP استفاده از init برای ایجاد یک کانتینر OpenRC (مشابه یک LXC عمل می‌کند): .IP .EX distrobox create \-i alpine:latest \-\-name test \-\-additional\-packages \[dq]openrc\[dq] \-\-init .EE .PP استفاده از یکپارچه‌سازی با درایورهای NVidia میزبان .IP .EX distrobox create \-\-image ubuntu:22.04 \-\-name ubuntu\-nvidia \-\-nvidia .EE .PP عدم استفاده از IP میزبان در داخل کانتینر: .IP .EX distrobox create \-\-image ubuntu:latest \-\-name test \-\-unshare\-netns .EE .PP ایجاد یک کانتینر ایزوله‌تر که در آن تنها $HOME، سوکت‌های پایه و سیستم‌فایل میزبان (در /run/host) به اشتراک گذاشته می‌شوند: .IP .EX distrobox create \-\-name unshared\-test \-\-unshare\-all .EE .PP ایجاد یک کانتینر ایزوله‌تر با سیستم init مختص به خود؛ این کانتینر بسیار مشابه یک کانتینر کامل LXC عمل خواهد کرد: .IP .EX distrobox create \-\-name unshared\-init\-test \-\-unshare\-all \-\-init \-\-image fedora:latest .EE .PP استفاده از متغیرهای محیطی برای تعیین نام کانتینر، تصویر و مدیر کانتینر: .IP .EX DBX_CONTAINER_MANAGER=\[dq]docker\[dq] DBX_NON_INTERACTIVE=1 DBX_CONTAINER_NAME=test\-alpine DBX_CONTAINER_IMAGE=alpine distrobox\-create .EE .SH "محیط (ENVIRONMENT)" .IP .EX DBX_CONTAINER_ALWAYS_PULL DBX_CONTAINER_CUSTOM_HOME DBX_CONTAINER_HOME_PREFIX DBX_CONTAINER_IMAGE DBX_CONTAINER_MANAGER DBX_CONTAINER_NAME DBX_CONTAINER_HOSTNAME DBX_NON_INTERACTIVE DBX_SUDO_PROGRAM .EE .PP متغیر DBX_CONTAINER_HOME_PREFIX مشخص می‌کند که دایرکتوری‌های home کانتینرها در کجا مستقر شوند. اگر آن را به عنوان \[ti]/dbx تعریف کنید، دایرکتوری home تمام کانتینرهای بعدی به صورت \[ti]/dbx/$container_name خواهد بود. .SH "اطلاعات بیشتر (EXTRA)" گزینهٔ \f[CR]\-\-additional\-flags\f[R] یا \f[CR]\-a\f[R] برای تغییر پیش‌فرض‌ها در هنگام ایجاد کانتینر کاربرد دارد. به عنوان مثال: .IP .EX distrobox create \-i docker.io/library/archlinux \-n dev\-arch podman container inspect dev\-arch | jq \[aq].[0].HostConfig.PidsLimit\[aq] 2048 distrobox rm \-f dev\-arch distrobox create \-i docker.io/library/archlinux \-n dev\-arch \-\-volume $CBL_TC:/tc \-\-additional\-flags \[dq]\-\-pids\-limit \-1\[dq] podman container inspect dev\-arch | jq \[aq].[0].HostConfig,.PidsLimit\[aq] 0 .EE .PP فضاهای ذخیره‌سازی اضافی را می‌توان با پرچم \f[CR]\-\-volume\f[R] مشخص کرد. این پرچم از همان استانداردهای \f[CR]docker\f[R] و \f[CR]podman\f[R] برای تعیین نقطهٔ اتصال استفاده می‌کند، یعنی: \f[CR]\-\-volume SOURCE_PATH:DEST_PATH:MODE\f[R]. .IP .EX distrobox create \-\-image docker.io/library/archlinux \-\-name dev\-arch \-\-volume /usr/share/:/var/test:ro .EE .PP در زمان ایجاد کانتینر، می‌توان (با استفاده از additional\-flags) متغیرهای محیطی مشخصی را تعریف کرد که درون کانتینر ماندگار بوده و مستقل از محیط فعلی شما باشند: .IP .EX distrobox create \-\-image fedora:35 \-\-name test \-\-additional\-flags \[dq]\-\-env MY_VAR=value\[dq] .EE .PP گزینهٔ \f[CR]\-\-init\-hooks\f[R] برای افزودن دستورات به نقطهٔ ورود (init) کانتینر مفید است. این قابلیت برای ایجاد کانتینرهایی با برنامه‌های از پیش نصب‌شده یا افزودن کاربران و گروه‌ها کاربرد دارد. .IP .EX distrobox create \-\-image fedora:35 \-\-name test \-\-init\-hooks \[dq]dnf groupinstall \-y \[rs]\[dq]C Development Tools and Libraries\[rs]\[dq]\[dq] .EE .PP گزینهٔ \f[CR]\-\-init\f[R] برای ایجاد کانتینری کاربرد دارد که از سیستم init مستقل خود در درونش بهره می‌برد. برای نمونه: .IP .EX distrobox create \-i docker.io/almalinux/8\-init \-\-init \-\-name test distrobox create \-i docker.io/library/debian \-\-additional\-packages \[dq]systemd\[dq] \-\-init \-\-name test\-debian .EE .PP درون چنین کانتینری امکان استفاده از واحدهای استاندارد systemd فراهم خواهد بود: .IP .EX \[ti]$ distrobox enter test user\[at]test:\[ti]$ sudo systemctl enable \-\-now sshd user\[at]test:\[ti]$ sudo systemctl status sshd ● sshd.service \- OpenSSH server daemon Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022\-01\-28 22:54:50 CET; 17s ago Docs: man:sshd(8) man:sshd_config(5) Main PID: 291 (sshd) .EE .PP توجه داشته باشید که فعال‌سازی \f[CR]\-\-init\f[R] موجب \f[B]غیرفعال شدن یکپارچه‌سازی فرآیندهای میزبان\f[R] خواهد شد. از داخل کانتینر قادر به مشاهده و مدیریت فرآیندهای سیستم میزبان نخواهید بود. این امر به این دلیل ضروری است که \f[CR]/sbin/init\f[R] باید شناسهٔ فرآیند ۱ (PID 1) باشد. .PP اگر مایل به استفاده از تصویری هستید که از پیش برای init آماده نشده است، باید بسته‌های مربوطه را اضافه کنید: .IP .EX distrobox create \-i alpine:latest \-\-init \-\-additional\-packages \[dq]openrc\[dq] \-n test distrobox create \-i debian:stable \-\-init \-\-additional\-packages \[dq]systemd libpam\-systemd pipewire\-audio\-client\-libraries\[dq] \-n test distrobox create \-i ubuntu:22.04 \-\-init \-\-additional\-packages \[dq]systemd libpam\-systemd pipewire\-audio\-client\-libraries\[dq] \-n test distrobox create \-i archlinux:latest \-\-init \-\-additional\-packages \[dq]systemd\[dq] \-n test distrobox create \-i registry.opensuse.org/opensuse/tumbleweed:latest \-\-init \-\-additional\-packages \[dq]systemd\[dq] \-n test distrobox create \-i registry.fedoraproject.org/fedora:39 \-\-init \-\-additional\-packages \[dq]systemd\[dq] \-n test .EE .PP پرچم \f[CR]\-\-init\f[R] برای ایجاد کانتینرهای سیستمی مناسب است؛ جایی که کانتینر بیشتر شبیه به یک ماشین مجازی (VM) کامل عمل می‌کند تا یک کانتینر تک‌برنامه‌ای. درون آن سیستم init جداگانه، نشست کاربر (user\-session)، دیمن‌ها و سایر سرویس‌ها را در اختیار خواهید داشت. .PP پرچم \f[CR]\-\-home\f[R] به شما اجازه می‌دهد یک دایرکتوری HOME سفارشی برای کانتینر مشخص کنید. توجه کنید که این کار مانع اتصال دایرکتوری home میزبان نمی‌شود، اما تضمین می‌کند که فایل‌های پیکربندی و dotfileها دایرکتوری میزبان را شلوغ نکنند. .PP پرچم \f[CR]\-\-root\f[R] امکان ایجاد کانتینر با دسترسی‌های واقعی ریشه (root) را فراهم می‌آورد. در اولین اجرای \f[CR]enter\f[R]، کاربر ملزم به تنظیم گذرواژه خواهد بود. این فرآیند به منظور فعال نشدن sudo/su بدون گذرواژه در یک کانتینر \f[B]rootful\f[R] انجام می‌شود؛ چرا که \f[B]در این حالت، کاربر ریشه درون کانتینر همان کاربر ریشه در بیرون کانتینر است!\f[R] .PP گزینهٔ \f[CR]\-\-absolutely\-disable\-root\-password\-i\-am\-really\-positively\-sure\f[R] مرحلهٔ تنظیم گذرواژه را نادیده گرفته و آن را خالی می‌گذارد. \f[B]این عمل کاملاً خطرناک است و شما واقعاً و اکیداً نباید این گزینه را فعال کنید\f[R]. .PP از نسخهٔ 1.4.0 ابزار distrobox، هنگام ایجاد کانتینر جدید، یک مدخل در فهرست برنامه‌های کاربردی سیستم نیز ایجاد می‌شود. .SS "یکپارچه‌سازی با NVidia (NVidia integration)" اگر سیستم میزبان مجهز به پردازشگر گرافیکی NVidia به همراه درایورهای اختصاصی نصب‌شده باشد، با استفاده از پرچم \f[CR]\-\-nvidia\f[R] می‌توانید آن‌ها را با سیستم‌های مهمان یکپارچه نمایید: .PP \f[CR]distrobox create \-\-nvidia \-\-image ubuntu:latest \-\-name ubuntu\-nvidia\f[R] .PP توجه داشته باشید که \f[B]این قابلیت با سیستم‌های فاقد glibc سازگار نبوده\f[R] و \f[B]برای کارکرد به توزیع‌های نسبتاً جدیدتر نیاز دارد\f[R]. .PP کارکرد این ویژگی روی سیستم‌های زیر با موفقیت آزمایش شده است: .IP \[bu] 2 Almalinux .IP \[bu] 2 Archlinux .IP \[bu] 2 Centos 7 و جدیدتر .IP \[bu] 2 Clearlinux .IP \[bu] 2 Debian 10 و جدیدتر .IP \[bu] 2 OpenSUSE Leap .IP \[bu] 2 OpenSUSE Tumbleweed .IP \[bu] 2 Rockylinux .IP \[bu] 2 Ubuntu 18.04 و جدیدتر .IP \[bu] 2 Void Linux (نسخه glibc)