دریافت image، ساخت instance و اجرای process سه مرحلهٔ جدا هستند. امشب کانتینر Ubuntu می‌سازیم، داخل آن فرمان اجرا می‌کنیم و بعد توقف و شروع را بررسی می‌کنیم.

این جلسه بخشی از دورهٔ لینوکس ۳۰۵ در ۶۰ شب است.

جایگاه در دوره: هدف‌های 352.2 آزمون 305-300.

محیط: lxd-a آمادهٔ شب ۳۶؛ نام ct305 آزاد و دسترسی به remote رسمی Ubuntu ممکن است. فرمان‌ها با sudo به همان daemon محلی وصل می‌شوند.

sudo lxc remote list
sudo lxc image list ubuntu:24.04
sudo lxc launch ubuntu:24.04 ct305
sudo lxc list
sudo lxc info ct305
sudo lxc exec ct305 -- cat /etc/os-release
sudo lxc exec ct305 -- uname -r

alias نسخه متحرک است؛ fingerprint، معماری و تاریخ image دریافت‌شده را در گزارش ثبت کن. برای بازتولید دقیق، fingerprint واقعی را به‌جای alias استفاده کن. image کانتینر را با image VM یکی نگیر؛ –vm مسیر جدا با نیازهای KVM دارد.

sudo lxc exec ct305 -- sh -c 'printf "persistent\n" > /root/lab305.txt'
sudo lxc stop ct305
sudo lxc start ct305
sudo lxc exec ct305 -- cat /root/lab305.txt
sudo lxc config show ct305 --expanded

فایل باید پس از stop/start باقی باشد؛ توقف حذف filesystem نیست. kernel گزارش‌شده از میزبان می‌آید، ولی /etc/os-release از userspace image است.

عیب‌یابی شروع#

اگر launch شکست خورد، وضعیت pool، ظرفیت دیسک، شبکه و log را جدا بررسی کن:

sudo lxc info ct305 --show-log
sudo lxc storage list
sudo lxc network list

برای instance متوقف، exec کار نمی‌کند؛ console یا log را با وضعیت واقعی انتخاب کن. دریافت image از اینترنت و DNS داخل کانتینر نیز دو مسیر متفاوت‌اند.

تمرین: با lxc init یک instance دوم بساز و قبل start، وضعیت STOPPED و تنظیم inherited را ثبت کن؛ سپس فقط همان نمونه را پاک کن.

بازگشت: ct305 را برای درس‌های بعد نگه دار. حذف instance با lxc delete پس از توقف دادهٔ آن را از بین می‌برد؛ image cache مستقل است. قبل هر حذف، نام، snapshot و نیاز backup را بررسی کن.

منبع: ساخت instance ، مدیریت image .