پورتینر و داکر #
رابط خط فرمان داکر (Docker CLI) ابزاری سریع و کارآمد برای ساخت و استقرار برنامههای کانتینری و مدیریت منابع داکر است. به همین دلیل، رابط خط فرمان داکر (Docker CLI) نامی آشنا برای اکثر توسعهدهندگان و علاقهمندان به خط فرمان است.
با این حال، همه کاربران علاقهای به اجرای دستورات در ترمینال ندارند. تسلط بر دستورات داکر میتواند دلهرهآور باشد، به خصوص برای مبتدیان. علاوه بر این، کار با رابط خط فرمان (CLI) میتواند چالشهای زیادی را هنگام کار با برخی از ویژگیهای پیشرفته داکر ایجاد کند.
چندین ابزار رابط کاربری گرافیکی (GUI) برای رفع پیچیدگیهای مدیریت کانتینرها با استفاده از Docker CLI توسعه داده شدهاند. یکی از پرکاربردترین ابزارهای رابط کاربری گرافیکی برای مدیریت برنامههای کانتینری، کلاینت Docker Desktop است. این ابزاری کارآمد برای ساخت، استقرار و اشتراکگذاری برنامههای کانتینری است. با این حال، Docker Desktop کاستیهای خود را دارد، از جمله عدم توانایی در مدیریت خوشهها و این واقعیت که بیشتر برای استقرارهای محلی استفاده میشود.
Portainer جایگزین مناسبی برای کلاینت دسکتاپ Docker است.
پورتینر چیست؟ #
Portainer یک ابزار مدیریت رابط کاربری گرافیکی سبک برای کانتینرهای Docker است. این ابزار یک رابط کاربری وب بصری و غنی از ویژگیها را ارائه میدهد که وظایف مدیریت کانتینر از جمله استقرار، مقیاسبندی و نظارت بر کانتینرهای Docker را بدون اجرای دستورات Docker ساده میکند.
با Portainer، میتوانید تمام منابع مرتبط با محیط Docker خود را مدیریت کنید: از کانتینرها و تصاویر گرفته تا Volumeها، شبکهها، رویدادها و مدیریت کاربران – همه از یک رابط کاربری وب متمرکز.
Portainer علاوه بر اینکه یک رابط کاربری برای Docker است، میتواند برنامههای کانتینر شده را در Kubernetes ، Docker Swarm و Azure ACI مدیریت کند.
Portainer در دو نسخه ارائه می شود: Portainer CE (نسخه انجمن) و Portainer BE (نسخه تجاری).
Portainer CE متنباز و رایگان است. این یک گزینه محبوب برای کاربران آزمایشگاه خانگی، به ویژه کسانی است که در حال یادگیری اصول مدیریت کانتینر هستند. این نرمافزار، استقرار و مدیریت برنامههای بومی کانتینر را بدون هزینه اضافی سرمایهگذاری در یک ارائهدهنده ابری یا زمان اجرای کانتینر، ساده میکند.
نسخه تجاری Portainer (BE) یک محصول تجاری است که ویژگیهای متنوعی را برای سازمانها و کسبوکارهای بزرگ ارائه میدهد. از جمله ویژگیهای انحصاری ارائه شده توسط نسخه تجاری میتوان به اتوماسیون GitOps، کنترل دسترسی مبتنی بر نقش (RBAC)، مدیریت رجیستری و بازیابی اطلاعات پس از سانحه اشاره کرد.
پورتینر برای چه مواردی استفاده میشود؟ #
Portainer به لطف رابط کاربری وب کاربرپسند خود، برای استقرار و نظارت بر کانتینرها و سایر منابع در محیط Docker شما با عملیات ساده و تنها با یک کلیک استفاده میشود.
Portainer به کاربران اجازه میدهد تا وظایف مدیریتی مانند متوقف کردن و شروع کانتینرها ، راهاندازی مجدد و حذف کانتینرها را انجام دهند. علاوه بر مدیریت کانتینرهای Docker، میتوانید مجموعهای از عملیات دیگر مرتبط با محیط Docker خود را انجام دهید، از جمله:
- دریافت و مدیریت ایمیج از چندین مخزن؛
- ایجاد و مدیریت حجمها ، رمزها، شبکهها و سرویسها؛
- مدیریت کاربران و احراز هویت؛
- مدیریت رجیستری؛
- پیکربندی کنترلهای دسترسی دقیق با RBAC (کنترل دسترسی مبتنی بر نقش)؛
- نظارت بر لاگها و رویدادها.
و بسیاری دیگر.
شروع کار با Portainer و Docker #
Portainer یک برنامه وب کانتینر شده است که در Docker Hub موجود است. برای اهداف نمایشی، Portainer CE (نسخه Community) را نصب خواهیم کرد. اما ابتدا، برای دنبال کردن این آموزش Portainer Docker، مطمئن شوید که پیشنیازهای زیر را دارید:
- داکر روی سیستم شما نصب شده باشد. راهنمای ما در مورد نحوه نصب داکر روی اوبونتو ۲۲.۰۴ LTS را بررسی کنید .
- آشنایی اولیه با دستورات داکر
۱. نحوه راهاندازی Portainer #
برای شروع، بیایید Portainer را راهاندازی کنیم. شما باید برنامه وب Portainer را به عنوان یک کانتینر Docker مستقر کنید. قبل از انجام این کار، توصیه میشود یک حجم خارجی برای ذخیرهسازی مداوم دادههای کانتینر ایجاد کنید. این حجم، دادههای Portainer را ذخیره کرده و در صورت بروز هرگونه حادثه، آنها را حفظ خواهد کرد.
برای ایجاد یک درایو داکر برای ذخیرهسازی خارجی، Docker volumeدستور را مطابق شکل اجرا کنید. در اینجا، portainer_dataنام درایو آمده است.
Docker volume create portainer_data

در مرحله بعد، دستور زیر را برای ایجاد یک کانتینر Portainer CE Docker اجرا کنید.
Docker run -d -p 9000:9000 --name portainer_ce --restart always -v /var/run/Docker.sock:/var/run/Docker.sock -v portainer_data:/data portainer/portainer-ce:latest

دستور بالا یک کانتینر داکر ایجاد میکند که portainer-ceبا --nameپرچم فراخوانی شده و با استفاده از گزینه، آن را در حالت جدا اجرا میکند -d. همچنین پورت ۹۰۰۰روی کانتینر را به پورت ۹۰۰۰روی میزبان یا سرور داکر نگاشت میکند. این اتصال پورت، دسترسی به رابط کاربری گرافیکی وب Portainer را فراهم میکند. این -vگزینه، Docker.sockسوکت یونیکس را که سرویس داکر portainer_dataبرای ماندگاری دادهها به آن گوش میدهد، نصب میکند. این ماندگاری، حفظ دادهها را حتی زمانی که کانتینر Portainer متوقف یا حذف میشود، تضمین میکند.
اطلاعات Portainer کجا ذخیره میشود؟ #
_dataبه طور پیشفرض، دادههای Portainer در دایرکتوری واقع در مسیری ذخیره میشوند /var/lib/Docker/volumes/volume_name/که در آن volume_nameیک عدد الفبایی منحصر به فرد وجود دارد که حجم را مشخص میکند. میتوانید با استفاده از lsدستور زیر این موضوع را تأیید کنید.

وقتی یک درایو ماندگار در حین ایجاد کانتینر Portaner مشخص میشود، مانند مورد ما، _dataدایرکتوری در مسیر درایو ماندگار mount میشود. در این مثال، _dataدایرکتوری در مسیر قرار دارد /var/lib/Docker/volumes/portainer_data.

۳. نحوه شروع Portainer #
حالا، بیایید ببینیم چگونه Portainer را شروع کنیم. وقتی کانتینر Portainer ایجاد میشود، Portainer شروع به کار میکند و بیصدا در پسزمینه اجرا میشود. برای تأیید این موضوع، Docker psدستور زیر را اجرا کنید تا کانتینرهای در حال اجرا را فهرست کند.
Docker ps
همانطور که میبینید، کانتینر در حال اجرا است. اگر کانتینر را با استفاده از Docker stopدستور متوقف کنید، میتوانید آن را با استفاده از Docker startدستور و به دنبال آن شناسه کانتینر شروع کنید.
Docker start container_ID
برای تأیید اینکه کانتینر در حال اجرا است، میتوانید کانتینرهای در حال اجرا را با اجرای Docker psدستور زیر فهرست کنید.
Docker ps

۴. چگونه Portainer را متوقف کنیم #
برای متوقف کردن Portainer، Docker stopدستور زیر را به همراه شناسه کانتینر Portainer اجرا کنید.
Docker stop container_ID
یک بار دیگر، میتوانید با فهرست کردن کانتینرهای در حال اجرا، تأیید کنید که کانتینر متوقف شده است.
Docker ps

این بار، میتوانید ببینید که هیچ کانتینر در حال اجرا در لیست وجود ندارد، که گواهی بر این واقعیت است که Portainer متوقف شده و از این رو، در حال اجرا نیست.
۵. نحوه دسترسی به Portainer #
پس از نصب Portainer ، به مرورگر وب خود بروید و به آدرس اینترنتی زیر دسترسی پیدا کنید.
http://server-ip:9000
رابط کاربری Portainer مرورگر شما را نمایش میدهد. ابتدا از شما خواسته میشود که یک کاربر ادمین ایجاد کنید که کاربر ورود به سیستم نیز خواهد بود. نام کاربری از قبل به صورت زیر تعریف شده است admin. بنابراین یک رمز عبور قوی وارد کنید و آن را تأیید کنید. سپس Create userبرای ایجاد کاربر ادمین کلیک کنید.

توجه
گاهی اوقات، ممکن است همانطور که نشان داده شده است، صفحه «timeout» را مشاهده کنید. این نشان میدهد که Portainer با مشکلی مواجه شده و در نتیجه به دلایل امنیتی، timeout شده است.

برای حل این مشکل، کافیست کانتینر Portainer را مجدداً راهاندازی کنید.
Docker restart container_ID
پس از ورود به سیستم، به صفحه اصلی هدایت میشوید که نمای کلی از محیط داکر شما، از جمله وضعیت میزبان داکر، تعداد کانتینرها، تصاویر، حجمها و معیارهای سیستم مانند CPU و RAM را ارائه میدهد.

نحوه ایجاد یک کانتینر با Portainer #
هدف Portainer سادهسازی ارائه و مدیریت منابع Docker است. به عنوان یک تمرین اضافی، بیایید ببینیم چگونه میتوانید با استفاده از Portainer یک کانتینر ایجاد کنید. برای اهداف نمایشی، ما یک کانتینر Nginx ایجاد میکنیم و پورت ۸۰ روی کانتینر را به پورت ۸۰۸۰ روی میزبان Docker نگاشت میکنیم.
ابتدا، Containersروی بخشی که در نوار کناری سمت چپ قرار دارد کلیک کنید. این کار فهرستی از کانتینرهای موجود در محیط داکر شما را نمایش میدهد. در حال حاضر، فقط یک کانتینر وجود دارد – کانتینر portainer.

برای ادامه، روی Add Containerدکمه کلیک کنید.

در مرحله بعد، جزئیات کانتینر را پر کنید. حتماً نام کانتینر و تصویری را که کانتینر از روی آن ایجاد میشود، مشخص کنید. به طور پیشفرض، Portainer طوری پیکربندی شده است که از رجیستری هاب Docker استفاده کند.
از آنجایی که ما Nginx را در معرض کاربران خارجی قرار میدهیم، باید کلیک کنید Publish a new network portو پورت میزبان و کانتینر را به ترتیب ۸۰۸۰ و ۸۰ مشخص کنید .

در نهایت، روی Deploy the containerدکمه کلیک کنید.

کانتینر تازه ایجاد شده در Container listبخش مربوطه ظاهر میشود.

در مرحله بعد، به مرورگر بروید و از آدرس اینترنتی زیر دیدن کنید
http://server-ip:8080
صفحه خوشامدگویی پیشفرض Nginx نمایش داده خواهد شد. این تاییدی است بر اینکه کانتینر Nginx مطابق انتظار با نگاشتهای پورت مشخص شده در حال اجرا است.

نتیجهگیری #
در این آموزش، شما نحوه استفاده از Portainer را یاد گرفتید. من نحوه شروع، توقف و دسترسی به Portainer را نشان دادم. همچنین یک قدم جلوتر رفتهاید، به رابط کاربری Portainer دسترسی پیدا کردهاید و کانتینرها را در رابط کاربری وب Portainer مستقر کردید.
