toolbox-create(1) General Commands Manual toolbox-create(1)

toolbox-create - ساخت یک کانتینر جدید Toolbx

toolbox create [--authfile FILE]
[--distro DISTRO | -d DISTRO]
[--image NAME | -i NAME]
[--release RELEASE | -r RELEASE]
[CONTAINER]

یک کانتینر جدید Toolbx ایجاد می‌کند. سپس می‌توانید در هر زمان از دستور toolbox enter برای تعامل با کانتینر استفاده کنید.

یک کانتینر Toolbx یک کانتینر OCI است که از یک ایمیج OCI ساخته می‌شود. در Fedora، ایمیج پیش‌فرض با نام fedora-toolbox:N شناخته می‌شود، که در آن N نسخه انتشار سیستم میزبان است. اگر ایمیج به صورت محلی موجود نباشد، از یک رجیستری شناخته‌شده مانند registry.fedoraproject.org دریافت (pull) می‌شود. در سایر سیستم‌عامل‌های میزبان ممکن است ایمیج‌های دیگری استفاده شوند. اگر سیستم میزبان شناسایی نشود، ایمیج Fedora استفاده خواهد شد.

این کانتینر با podman create ایجاد می‌شود و نقطه ورود (entry point) آن روی toolbox init-container تنظیم می‌گردد.

به‌طور پیش‌فرض، نام کانتینر Toolbx بر اساس ایمیج مربوط به آن تعیین می‌شود. اگر ایمیج دارای یک تگ باشد، تگ در نام کانتینر گنجانده می‌شود اما به جای دونقطه با یک خط فاصله (hyphen) جدا می‌شود. با استفاده از آرگومان CONTAINER می‌توان نام متفاوتی را اختصاص داد.

یک کانتینر Toolbx با فراهم آوردن دسترسی به دایرکتوری خانگی کاربر، سوکت‌های Wayland و X11، شبکه (شامل Avahi)، دستگاه‌های جداشدنی (مانند حافظه‌های USB)، ژورنال systemd، کارگزار SSH، سامانه D-Bus، محدودیت‌های ulimits، دایرکتوری /dev و پایگاه داده udev و غیره، به شکلی یکپارچه با بقیه سیستم‌عامل هماهنگ می‌شود.

شناسه کاربری (user ID) و جزئیات حساب کاربری از میزبان به درون کانتینر Toolbx منتقل می‌شود، جداسازی برچسب‌های SELinux غیرفعال می‌گردد و سیستم فایل میزبان در مسیر /run/host برای کانتینر قابل دسترسی است. کانتینر در صورتی که برای استفاده از کش‌های KCM پیکربندی شده باشد، به کش اعتبارنامه‌های Kerberos میزبان نیز دسترسی دارد.

یک کانتینر Toolbx را می‌توان با برچسب com.github.containers.toolbox یا فایل /run/.toolboxenv شناسایی کرد.

نقطه ورود کانتینر Toolbx دستور toolbox init-container است که به همراه گزینه‌های ارائه‌شده به podman create، در راه‌اندازی کانتینر نقش ایفا می‌کند.

یکی از ویژگی‌های کلیدی کانتینرهای Toolbx نقطه ورود آن‌ها، یعنی دستور toolbox init-container است.

کانتینرهای OCI ذاتاً تغییرناپذیرند. گزینه‌های پیکربندی که از طریق podman create ارسال می‌شوند، در تعریف کانتینر OCI تثبیت شده و پس از آن قابل تغییر نیستند. این بدان معناست که تغییرات و بهبودهای انجام‌شده در نسخه‌های جدیدتر Toolbx نمی‌توانند بر روی کانتینرهای از پیش‌موجودِ Toolbx که با نسخه‌های قدیمی‌تر ایجاد شده‌اند اعمال شوند. با استفاده از نقطه ورود برای پیکربندی کانتینر در زمان اجرا، از این مشکل جلوگیری می‌شود.

نقطه ورود کانتینر Toolbx با اطمینان از وجود کاربری مطابق با کاربر سیستم میزبان و اعطای دسترسی sudo و root به آن، کانتینر را متناسب با کاربر فعلی سفارشی‌سازی می‌کند.

فایل‌های پیکربندی حیاتی درون کانتینر، مانند /etc/host.conf، /etc/hosts، /etc/localtime، /etc/resolv.conf و /etc/timezone، همگام با میزبان نگه‌داشته می‌شوند. نقطه ورود همچنین بخش‌های مختلفی از سلسله‌مراتب سیستم فایل میزبان را روی مکان‌های متناظر درون کانتینر bind mount می‌کند تا یکپارچگی بدون نقصی با میزبان فراهم آورد. این موارد شامل /run/libvirt، /run/systemd/journal، /run/udev/data، /var/lib/libvirt، /var/lib/systemd/coredump، /var/log/journal و موارد دیگر می‌شود.

در برخی از سیستم‌عامل‌های میزبان، مسیرهای مهمی مانند /home، /media یا /mnt پیوندهای نمادین (symbolic links) به مکان‌های دیگر هستند. نقطه ورود تضمین می‌کند که مسیرهای درون کانتینر با مسیرهای روی میزبان مطابقت داشته باشند تا از سردرگمی‌های بی‌مورد جلوگیری شود.

--authfile FILE

مسیر به یک FILE حاوی اطلاعات اعتبارسنجی جهت احراز هویت در رجیستری برای ایمیج‌های خصوصی. این FILE معمولاً با استفاده از podman login تنظیم می‌شود و توسط podman pull برای دریافت ایمیج مورد استفاده قرار می‌گیرد.

مکان پیش‌فرض برای FILE برابر با $XDG_RUNTIME_DIR/containers/auth.json است و قالب آن در containers-auth.json(5) مشخص شده است.

--distro DISTRO, -d DISTRO

یک کانتینر Toolbx برای یک توزیع (DISTRO) سیستم‌عاملی متفاوت از میزبان ایجاد می‌کند. همراه با --image قابل استفاده نیست. باید همراه با --release استفاده شود، مگر اینکه DISTRO انتخاب‌شده با میزبان یکسان باشد.

--image NAME, -i NAME

تغییر NAME ایمیج استفاده‌شده برای ساخت کانتینر Toolbx. این گزینه برای ساخت کانتینرها از روی ایمیج‌های سفارشی‌سازی‌شده کاربرد دارد. همراه با --distro و --release قابل استفاده نیست.

اگر NAME شامل یک رجیستری نباشد، فضای ذخیره‌سازی محلی ایمیج‌ها بررسی می‌شود و اگر در آنجا موجود نباشد، از یک رجیستری راه دورِ مناسب دریافت خواهد شد.

--release RELEASE, -r RELEASE

یک کانتینر Toolbx برای یک نسخه انتشار (RELEASE) سیستم‌عاملی متفاوت از میزبان ایجاد می‌کند. همراه با --image قابل استفاده نیست.

$ toolbox create

$ toolbox create --distro fedora --release f36

$ toolbox create --image bar foo

$ toolbox create --authfile ~/auth.json --image registry.example.com/bar

toolbox(1), toolbox-init-container(1), podman(1), podman-create(1), podman-login(1), podman-pull(1), containers-auth.json(5)