| runc-spec(8) | System Manager's Manual | runc-spec(8) |
نام (NAME)
runc-spec - ایجاد یک فایل مشخصات جدید
خلاصه دستور (SYNOPSIS)
runc spec [گزینه ...]
توضیحات (DESCRIPTION)
دستور spec یک فایل مشخصات جدید با نام config.json برای بسته (bundle) ایجاد میکند.
فایل مشخصات تولیدشده تنها یک فایل اولیه است. برای دستیابی به نتایج دلخواه، ویرایش این فایل مشخصات الزامی است. به عنوان مثال، فایل مشخصات تازهتولیدشده شامل پارامتر args است که در ابتدا برای فراخوانی دستور sh هنگام راهاندازی کانتینر تنظیم شده است. فراخوانی sh ممکن است برای یک کانتینر ubuntu یا busybox کار کند، اما برای کانتینرهایی که فاقد باینری sh هستند کار نخواهد کرد.
گزینهها (OPTIONS)
- --bundle|-b path
- تنظیم path به عنوان ریشه دایرکتوری بسته (bundle).
- --rootless
- تولید پیکربندی برای یک کانتینر بدون ریشه (rootless). توجه داشته باشید که این گزینه کاملاً با گزینه سراسری --rootless متفاوت است.
مثالها (EXAMPLES)
برای اجرای یک کانتینر ساده "hello-world"، لازم است پارامتر args در فایل مشخصات برای فراخوانی hello تنظیم شود. این کار را میتوان با استفاده از sed(1)، jq(1) یا یک ویرایشگر متن انجام داد.
دستورات
زیر
اقدامات
زیر را
انجام
میدهند:
- ایجاد یک
بسته (bundle) برای
hello-world؛
- تغییر
دستور
اجرایی
درون
کانتینر به
/hello با
استفاده از
jq(1)؛
- اجرای
دستور hello در
یک کانتینر
جدید hello-world با
نام container1.
mkdir hello cd hello docker pull hello-world docker export $(docker create hello-world) > hello-world.tar mkdir rootfs tar -C rootfs -xf hello-world.tar runc spec jq '.process.args |= ["/hello"]' < config.json > new.json mv -f new.json config.json runc run container1
در دستور run بالا، container1 نام نمونه کانتینری است که راهاندازی میکنید. نامی که برای نمونه کانتینر مشخص میکنید باید روی میزبان شما یکتا باشد.
یک راهکار جایگزین برای تولید پیکربندی مشخصات سفارشی، استفاده از oci-runtime-tool است؛ زیردستور oci-runtime-tool generate دارای گزینههای متعددی است که میتوان از آنها برای انجام هرگونه سفارشیسازی دلخواه استفاده کرد. برای کسب اطلاعات بیشتر، runtime-tools ⟨https://github.com/opencontainers/runtime-tools⟩ را ببینید.
هنگام راهاندازی کانتینر از طریق runc، معمولاً به مجوزهای کاربر ریشه (root) نیاز است. اگر از قبل به عنوان کاربر ریشه اجرا نمیکنید، میتوانید از sudo(8) استفاده کنید، برای مثال:
sudo runc start container1
به عنوان روشی دیگر، میتوانید یک کانتینر بدون ریشه (rootless) را راهاندازی کنید که توانایی اجرا بدون مجوزهای کاربر ریشه را دارد. برای اینکه این مورد کار کند، فایل مشخصات باید بر این اساس تنظیم شود. میتوانید گزینه --rootless را به این دستور ارسال کنید تا یک فایل مشخصات بدون ریشه مناسب ایجاد گردد.