در این مقاله، به صورت گامبهگام نحوه شروع کار با Home Assistant در بستر Docker را بررسی میکنیم. ابتدا پیشنیازهای نصب Docker را بر اساس سیستمعامل شما مرور میکنیم، سپس روش نصب و اجرای Home Assistant از طریق خط فرمان (CLI) را آموزش خواهیم داد. در پایان نیز به راهحل برخی از خطاها و مشکلات رایج در زمان نصب میپردازیم.
Docker چیست؟
Docker یک پلتفرم قدرتمند برای توسعهدهندگان و مدیران سیستم است که امکان ساخت، اجرای و استقرار برنامهها را در قالب کانتینر (Container) فراهم میسازد. کانتینر محیطی ایزولهشده است که تمامی نیازمندیهای نرمافزار شامل کتابخانهها، کدها، ابزارهای سیستمی و پیکربندیها را در خود جای میدهد؛ بهطوریکه برنامه در هر محیطی (صرفنظر از سیستمعامل میزبان) دقیقاً همانطور اجرا میشود که توسعه داده شده است.
کانتینرها از ایمیج (Image) ساخته میشوند که در واقع قالب اولیه و قابل تکرار اجرای یک برنامه است. مهمترین مزیت Docker این است که اجرای برنامهها در هر محیطی را بدون نگرانی از ناسازگاریهای سیستمی ممکن میسازد و در عین حال مدیریت و مقیاسپذیری آنها را نیز سادهتر میکند.
Home Assistant چیست؟
Home Assistant یک پلتفرم متنباز و قدرتمند برای کنترل و خودکارسازی خانه هوشمند است. این سیستم از بیش از ۱۰۰۰ دستگاه و سرویس مختلف (مانند Amazon Alexa، Google Assistant، Philips Hue و…) پشتیبانی میکند و امکان مدیریت کامل تجهیزات خانه مانند چراغها، دوربینها، ترموستاتها و سنسورها را به شما میدهد.
رابط کاربری تحت وب Home Assistant بسیار ساده و کاربردی طراحی شده و امکان ساخت سناریوها و اتوماسیونهای پیچیده را به سادگی فراهم میکند. همچنین توسعهدهندگان میتوانند با استفاده از API داخلی پایتون (Home Assistant Python API)، دستگاهها را از طریق اسکریپتهای پایتون کنترل و مدیریت کنند.
چرا Home Assistant را روی Docker اجرا کنیم؟
اجرای Home Assistant در Docker یک روش رایج و توصیهشده است؛ چرا که:
نرمافزار بهصورت کامل از سیستم میزبان و سایر برنامهها ایزوله میشود.
قابلیت انتقال آسان به سیستمهای دیگر را دارد؛ تنها کافیست Docker روی سیستم مقصد نصب باشد.
نصب و راهاندازی بسیار ساده و سریع است.
اجرای Home Assistant در محیط Docker باعث افزایش امنیت و ثبات عملکرد آن میشود.
در مجموع، Docker راهی منعطف و قابل اعتماد برای استفاده از Home Assistant فراهم میکند.
پیشنیازهای نصب Docker
برای استفاده از Docker، سیستم شما باید دارای حداقل مشخصات زیر باشد که بسته به نوع سیستمعامل متفاوت است:
✅ ویندوز:
ویندوز ۱۰ یا ۱۱ نسخه ۶۴ بیتی
پردازنده ۶۴ بیتی
حداقل ۴ گیگابایت رم
فعال بودن قابلیت مجازیسازی در BIOS
فعال بودن WSL 2 (Windows Subsystem for Linux)
✅ macOS:
نسخه ۱۱ یا بالاتر از macOS
حداقل ۴ گیگابایت رم
عدم نصب VirtualBox نسخه پایینتر از 4.3.30 (به دلیل ناسازگاری با Docker Desktop)
✅ لینوکس:
CPU و کرنل ۶۴ بیتی
پشتیبانی از مجازیسازی KVM
فعال بودن سیستم init (systemd یا مشابه آن)
استفاده از محیط دسکتاپ Gnome، MATE یا KDE
حداقل ۴ گیگابایت رم
فعال بودن قابلیت ID Mapping در User Namespace
نحوه نصب Docker
برای نصب Docker، ابتدا به سایت رسمی Docker به آدرس https://www.docker.com مراجعه کنید. بسته نصب مناسب سیستمعامل خود را دانلود کرده و مراحل نصب را دنبال کنید. در مراحل بعدی، دستورهای لازم برای اجرای Home Assistant در محیط Docker را بهصورت کامل توضیح خواهیم داد.
نحوه نصب Docker بر اساس سیستمعامل
نصب Docker به سیستمعامل دستگاه شما بستگی دارد. در ادامه، مراحل کلی نصب Docker روی Windows، macOS و Linux آورده شده است. برای اطلاعات کاملتر و دقیقتر، میتوانید به وبسایت رسمی Docker مراجعه کنید.
🪟 نصب Docker در ویندوز
به وبسایت Docker مراجعه کرده و نسخه Docker Desktop for Windows را دانلود کنید.
پس از اتمام دانلود، روی فایل نصبی دوبار کلیک کنید تا فرآیند نصب آغاز شود.
مراحل نصب را طبق راهنما دنبال کرده و گزینههای پیشنهادی را تأیید کنید.
پس از نصب موفق، برنامه Docker Desktop در بخش System Tray (کنار ساعت ویندوز) قابل دسترسی خواهد بود.
🍎 نصب Docker در macOS
وارد وبسایت Docker شوید و نسخه Docker Desktop for Mac (Apple Chip) را دانلود کنید (در صورت استفاده از تراشههای M1/M2 اپل).
پس از دانلود، فایل DMG را باز کرده و آیکون Docker را به پوشه Applications بکشید.
سپس از مسیر Applications برنامه Docker را اجرا کنید.
پس از اجرای موفق، آیکون Docker در نوار منو (بالای صفحه) نمایش داده خواهد شد.
🐧 نصب Docker در لینوکس
فرآیند نصب Docker در لینوکس ممکن است بسته به توزیع شما (مانند Ubuntu، Debian یا Fedora) کمی متفاوت باشد، اما مراحل کلی به صورت زیر است:
به وبسایت Docker مراجعه کرده و نسخه Docker Desktop for Linux را انتخاب کنید.
دستورالعملهای مرتبط با توزیع لینوکسی خود را (مانند Ubuntu) دنبال کنید.
پس از نصب موفق، برنامه Docker Desktop را از طریق منوی اپلیکیشنها جستجو و اجرا نمایید.
آموزش نصب Home Assistant در محیط Docker
برای نصب Home Assistant روی Docker روشهای مختلفی وجود دارد، اما در این راهنما از سادهترین روش یعنی استفاده از خط فرمان (CLI) استفاده میکنیم.
🖥 اجرای ترمینال در سیستمعاملهای مختلف
ویندوز: در نوار جستجوی Start عبارت
cmd
را وارد کرده و روی “Command Prompt” کلیک کنید.لینوکس: از منوی برنامهها، Terminal را جستجو و اجرا کنید.
macOS: کلیدهای ترکیبی
Cmd + Space
را فشار دهید، عبارتTerminal
را وارد کرده و از نتایج روی Terminal کلیک کنید.
🔹 مرحله اول: دریافت ایمیج Home Assistant از Docker Hub
قبل از شروع، مطمئن شوید که Docker فعال و در حال اجراست. سپس، در ترمینال دستور زیر را وارد کنید:
این دستور، آخرین نسخه پایدار از ایمیج Home Assistant را از Docker Hub (مخزن رسمی تصاویر Docker) دانلود میکند.
پس از اجرای دستور، خروجی مشابه زیر را دریافت خواهید کرد:
✅ در مرحله بعد، باید یک کانتینر از این ایمیج اجرا کنیم، مسیرهای ذخیرهسازی اطلاعات را مشخص کنیم و پورتها را تنظیم کنیم تا بتوانید از Home Assistant در مرورگر خود استفاده کنید.
مرحله دوم: نصب و اجرای کانتینر Home Assistant
برای نصب و اجرای کانتینر Home Assistant، دستور زیر را در ترمینال وارد کنید:
توضیح بخشهای مختلف دستور بالا:
docker run -d
: دستورdocker run
برای اجرای یک کانتینر استفاده میشود. گزینه-d
به این معناست که کانتینر در حالت پسزمینه (detached mode) اجرا شود، یعنی در حالی که ترمینال شما آزاد باقی میماند، کانتینر در پسزمینه اجرا خواهد شد.--name=homeassistant
: با استفاده از این گزینه، نام کانتینر را مشخص میکنید. در اینجا نام کانتینر homeassistant انتخاب شده که میتوانید در دستورات بعدی Docker از آن استفاده کنید.-v
: این گزینه برای تعیین حجم (volume) مورد استفاده کانتینر است. باید مسیر پوشهای که میخواهید فایلهای تنظیمات Home Assistant در آن ذخیره شود را مشخص کنید. بهعنوان مثال، اگر در ویندوز هستید، میتوانید در درایو C پوشهای به نامhomeassistant
ایجاد کنید. در این صورت، مسیر نهایی شما به شکل زیر خواهد بود:
بنابراین کل دستور به شکل زیر خواهد بود:
🔹 توجه: اگر از لینوکس یا مک استفاده میکنید، بهجای مسیر ویندوزی، مثلاً از مسیر زیر استفاده کنید:
--net=host
: این گزینه باعث میشود کانتینر از شبکهی میزبان (host) استفاده کند و یک namespace جداگانه ایجاد نشود. این کار دسترسی بهتر Home Assistant به دستگاههای متصل به شبکه را فراهم میکند.homeassistant/home-assistant
: این همان نام ایمیج Docker است که در مرحله قبل آن را از Docker Hub دریافت کردیم.
پس از اجرای موفق این دستور، خروجیای مشابه زیر خواهید دید که نشاندهندهی اجرای صحیح کانتینر است:
این رشتهی طولانی شناسه (ID) کانتینر شماست.
مرحله ۴: وارد Home Assistant شوید
در قسمت پایین تب Actions، منوی سهنقطهای وجود دارد که در تصویر زیر مشاهده میکنید. روی آن کلیک کنید.
اجرای Home Assistant روی Docker و به صورت مستقل
اجرای Home Assistant داخل Docker با اجرای آن به صورت سرویس مستقل تفاوت چشمگیری دارد.
اجرای Home Assistant به صورت سرویس مستقل یعنی نرمافزار مستقیماً روی سیستم شما نصب شده و برای اجرا نیازی به Docker نیست. در مقابل، اجرای Home Assistant روی Docker یعنی اجرای آن در محیطی کانتینری که از سیستم میزبان و سایر کانتینرها جدا و ایزوله است و منابع مورد نیازش به صورت مجزا تامین میشود.
مزیت اجرای مستقل این است که نصب و مدیریت آن سادهتر است چون لایههای انتزاعی اضافی وجود ندارد و نرمافزار مستقیماً با سیستم عامل میزبان تعامل دارد. اما نقطه ضعف آن، محدودیت در قابلیت حمل (Portability) و نیاز به تلاش بیشتر برای نگهداری و بهروزرسانی است.
از سوی دیگر، اجرای Home Assistant روی Docker نصب و مدیریت را بسیار سادهتر میکند، چرا که تمام وابستگیها، منابع و تنظیمات از قبل در ایمیج Docker گنجانده شدهاند. با این حال، راهاندازی ممکن است کمی پیچیدهتر باشد و عیبیابی مشکلات نیز به دلیل تفاوت محیط کانتینر با میزبان دشوارتر است.
مشکلات رایج هنگام استفاده از Docker
مشکل ۱: طولانی شدن زمان راهاندازی Docker
پس از نصب، ممکن است Docker Engine زمان زیادی برای شروع به کار صرف کند. برای رفع این مشکل، ابتدا Docker را با دسترسی مدیر (Administrator) ببندید و مجدداً اجرا کنید. سپس در ترمینال دستور زیر را وارد کنید تا Daemon فعال شود:
مشکل ۲: خطای “Error During Connect”
برای رفع این خطا کافی است همان دستور بالا را مجدداً اجرا کنید.
مشکل ۳: مطمئن نبودن از اجرای کانتینر
اگر بعد از اجرای کانتینر مطمئن نیستید که کانتینر شما در حال اجرا است، میتوانید دستور زیر را در ترمینال اجرا کنید:
این دستور تمام اطلاعات ضروری درباره وضعیت کانتینر را به شما نمایش میدهد.
خلاصه
Home Assistant نرمافزاری است که به شما امکان کنترل و اتوماسیون دستگاههای هوشمند منزل مانند دوربینها، ترموستاتها، چراغها و حسگرها را میدهد. Docker نیز پلتفرمی است که نرمافزارهایی مانند Home Assistant را در قالب کانتینرهای ایزوله شده اجرا میکند. استفاده از Docker باعث میشود نصب نرمافزار بدون مشکل ناسازگاری با سیستم میزبان انجام شود.
برای اجرای Home Assistant روی Docker، از خط فرمان سیستم میزبان استفاده میکنیم و مراحل زیر را طی میکنیم:
دانلود آخرین نسخه پایدار Home Assistant از Docker Hub
نصب و راهاندازی کانتینر Home Assistant
باز کردن برنامه Docker برای تایید اجرای کانتینر
ورود به Home Assistant
بدون نظر