به جای نصب اوبونتو بر روی یک ماشین مجازی، می توانید آن را به عنوان یک ظرف Docker نصب کنید.
طبق نظرسنجی توسعه دهندگان Stack Overflow در سال 2022 و 2023، Docker محبوب ترین ابزار برنامه نویسی است. این به طور گسترده ای در فناوری اطلاعات استفاده می شود و شیوه استقرار برنامه های کاربردی را متحول کرده است.
کانتینرهای Docker کمی شبیه به ماشینهای مجازی هستند، اما سبکتر هستند و تنها با عناصر اولیه مورد نیاز یک سیستم عامل بستهبندی میشوند. برای درک میزان حداقل بودن ظروف Docker، بیایید ببینیم چگونه میتوانید اوبونتو را در Docker اجرا کنید.
مرحله 1: دریافت تصویر داکر اوبونتو
اگر Docker را نصب نکردهاید، راهنمای ما در مورد نصب Docker در اوبونتو را دنبال کنید. و البته، میتوانید Docker را روی macOS و Windows نیز نصب کنید.
Docker Hub مخزن توصیه شده برای دریافت تصاویر تایید شده عمومی و رسمی Docker است. همچنین می توانید از Docker Hub برای مدیریت و ایجاد تصاویر خصوصی Docker استفاده کنید.
ارائه دهندگان ابری مانند Azure و AWS نیز مخازن Docker را ارائه می دهند که می توانید تصاویر Docker سفارشی خود را میزبانی و مدیریت کنید.
می توانید آخرین تصویر Ubuntu Docker را با استفاده از دستور زیر دانلود کنید:
sudo docker pull ubuntu
اگر قبلاً آن را به صورت محلی ذخیره نکرده باشید، Docker آخرین تصویر را در رایانه شما دانلود می کند.
اگر به یک نسخه خاص علاقه دارید، به سادگی به برچسب های موجود تصویر در داکر هاب نگاه کنید و سپس آن را با استفاده از آن تگ خاص دانلود کنید. به عنوان مثال، برای دانلود اوبونتو 20.04، اجرا کنید:
sudo docker pull ubuntu:20.04
با استفاده از دستور sudo docker images می توانید تمام تصاویر Docker را در رایانه شخصی خود فهرست کنید.
مرحله 2: اجرای تصویر داکر اوبونتو
یک تصویر داکر به سادگی طرحی از دستورالعمل های ساخت کانتینر است. کانتینر یک نمونه در حال اجرا از یک تصویر Docker است. برای زنده کردن تصویر داکر اوبونتو که به تازگی دانلود کرده اید، دستور زیر را اجرا کنید:
sudo docker run -ti --rm ubuntu /bin/bash
این دستور به داکر میگوید که ظرف داکر اوبونتو را در حالت ترمینال تعاملی (-ti) اجرا کند. آرگومان /bin/bash راهی است که به کانتینر می گوید ترمینال پوسته Bash را اجرا کند. در نهایت، پرچم –rm به Docker دستور می دهد تا پس از متوقف کردن ظرف Ubuntu Docker، به طور خودکار آن را حذف کند.
پوسته به عنوان یک کاربر ریشه شروع می شود و ترمینال مشابه چیزی است که در یک سیستم لینوکس معمولی دریافت می کنید. به طور پیش فرض، کانتینر یک نام میزبان تصادفی دریافت می کند.
همچنین متوجه خواهید شد که تصویر دارای رابط کاربری گرافیکی یا بسیاری دیگر از ابزارهای خط فرمان استاندارد که همراه با اوبونتو هستند، ندارد. تصویر Ubuntu Docker تنها حدود 78 مگابایت است که بسیار سبک است.
اجرای دستورات لینوکس در Ubuntu Docker
به طور معمول، اطلاعات سیستم عامل لینوکس را با استفاده از دستور lsb_release -a بررسی میکنید، اما در این مورد، متوجه میشوید که این دستور در دسترس نیست زیرا تصویر داکر اوبونتو بسته lsb-core را بهطور پیشفرض نصب نکرده است. به یاد داشته باشید، تصاویر Docker فقط با عناصر اصلی ارائه می شوند و هیچ چیز دیگری ندارند.
خوشبختانه، میتوانیم اطلاعات سیستمعامل را با استفاده از دستور cat که به عنوان بخشی از پوسته Bash است بررسی کنیم.
cat /etc/os-release
همانطور که از خروجی می بینید، این نسخه LTS اوبونتو است که در سال 2022 منتشر شد. به لطف قدرت Docker، ما می توانیم اوبونتو را در Docker با استفاده از حداقل منابع سیستم اجرا کنیم.
و از آنجایی که این یک سیستمعامل سبک وزن است، میتوانیم برنامههای مورد نیاز خود را با استفاده از دستورات آشنای اوبونتو نصب کنیم. ابتدا منابع بسته را به روز کنید و lsb-core را با تایپ کردن زیر نصب کنید:
apt update && apt install lsb-core
شما نیازی به استفاده از
سودو
همانطور که به عنوان کاربر اصلی وارد پوسته Docker شده اید، دستور دهید.
پس از نصب، می توانید دستور lsb_release -a را اجرا کنید و این بار مقداری خروجی دریافت خواهید کرد.
نجات وضعیت کانتینر داکر
هنگامی که کانتینر Docker را در این مرحله متوقف می کنید، تمام تغییراتی که ایجاد کرده اید، از جمله به روز رسانی نرم افزار و ابزارهای نصب شده را از دست خواهید داد. کانتینرهای داکر اینگونه طراحی می شوند. تعویض، توقف و مدیریت آنها آسان است.
همانطور که ممکن است تا به حال بدانید، Docker یک ابزار همه کاره است. در صورت تمایل به شما امکان می دهد وضعیت ظروف را ذخیره کنید. ابتدا شناسه محفظه Docker Ubuntu Image را با استفاده از دستور زیر بررسی کنید:
sudo docker ps
دستور قبلی تمام ظروف Docker را در رایانه شخصی شما فهرست می کند. تصویر اوبونتو در خروجی بالا دارای شناسه 524aa76baafb است، تصویر شما متفاوت خواهد بود.
با اجرای دستور زیر وضعیت کانتینر را ذخیره کنید:
docker commit -p container_id new_container_name
به یاد داشته باشید که در دستور زیر container_id را با دستور صحیح جایگزین کنید. همچنین، نام تصاویر داکر فقط می تواند با حروف کوچک باشد.
sudo docker commit -p 524aa76baafb myubuntu
دستور قبلی کانتینر را قبل از ذخیره آن متوقف می کند و یک تصویر داکر جدید به نام myubuntu ایجاد می کند. تصویر جدید Docker شامل تمام تغییراتی است که روی آن ایجاد کرده اید. و با آن، شما فقط یک تصویر Ubuntu Docker سفارشی ایجاد کرده اید.
تصاویر Docker خود را با استفاده از دستور sudo docker images فهرست کنید. تصویر سفارشی جدید شما باید در کنار آن فهرست شود.
داده های ماندگار در کانتینر داکر اوبونتو
یکی دیگر از ویژگیهای قدرتمند Docker، توانایی ماندگاری یا اشتراکگذاری دادهها با دستگاه میزبان است. دو گزینه اصلی وجود دارد: استفاده از ولوم های نصب شده یا ولوم های داکر. Docker از دومی حمایت می کند زیرا در مقایسه با حجم های نصب شده بهتر است.
شما می توانید یک حجم Docker را در هر جایی از رایانه شخصی خود ایجاد کنید. بیایید آن را در فهرست اصلی ایجاد کنیم و نام آن را Docker_Share بگذاریم:
sudo mkdir -p Docker_Share
در مرحله بعد، ظرف اوبونتو را با استفاده از دستور زیر متوقف کنید، و Container_id را با شناسه واقعی ظرف Ubuntu Docker جایگزین کنید:
sudo docker stop container_id
در نهایت، میتوانیم تصویر Ubuntu Docker را برای ماندگاری دادهها با استفاده از دایرکتوری Docker_Share با استفاده از دستور زیر اجرا کنیم. از طرف دیگر، می توانید یک فایل docker-compose ایجاد کنید تا به راحتی تصاویر Docker خود را فعال کنید.
sudo docker run -ti --rm -v ~/Docker_Share:/data ubuntu /bin/bash
این دستور تصویر اوبونتو را شروع می کند و دایرکتوری داده / را در ظرف Docker ایجاد می کند. دایرکتوری /data به پوشه Docker_Share که قبلا ایجاد کردید نگاشت می شود.
شما می توانید با استفاده از دایرکتوری Docker_Share به هر فایل ایجاد شده یا اصلاح شده در پوشه /data کانتینر دسترسی داشته باشید. برعکس آن هم درست است؛ Docker هر گونه تغییر فایل را در پوشه Docker_Share در فهرست /data کانتینر تکرار می کند.
Docker یک جایگزین عالی برای ماشین های مجازی است
Docker یک فناوری بسیار قدرتمند است که به شما امکان می دهد برنامه ها را در یک محیط امن و ایمن استقرار و اجرا کنید. به عنوان مثال، میتوانید از آن برای طیف گستردهای از وظایف استفاده کنید، و در بیشتر موارد، بهجای اجرای یک ماشین مجازی، یک کانتینر Docker سبک وزن اوبونتو را به خوبی اجرا میکنید.