
مقدمه داکر (Docker) یک اپلیکیشن است که فرآیند مدیریت پردازشهای اپلیکیشن را در کانتینرها ساده میکند. کانتینرها به شما اجازه میدهند اپلیکیشنهای خود را در پردازشهایی که از نظر منابع ایزوله شدهاند اجرا کنید. آنها شبیه به ماشینهای مجازی (VM) هستند، اما کانتینرها قابلحملتر، دوستدارتر از نظر منابع و وابستهتر به سیستمعامل میزبان هستند.
در این آموزش، شما نسخه جامعه داکر (Docker Community Edition یا CE) را روی اوبونتو نصب و استفاده خواهید کرد. شما خودِ داکر را نصب میکنید، با کانتینرها و ایمجها (Images) کار میکنید و یک ایمج را به یک مخزن (Repository) داکر پوش (Push) میکنید.
این آموزش روی اوبونتو 20.04، 22.04 و 24.04 تست و اعتبارسنجی شده است. دستورات و مراحل نصب در این نسخهها بهطور یکپارچه کار میکنند. راهاندازی مخزن از تشخیص پویای نسخه استفاده میکند تا از سازگاری اطمینان حاصل شود.
اگر به دنبال راهی سریع و یککلیکی برای دیپلوی اپلیکیشن داکری خود روی یک سرور لایو هستید، نگاهی به پلتفرم اپلیکیشن پارمین کلود (Parmin Cloud App Platform) بیندازید که استقرار و مقیاسپذیری کانتینرها را بهطور خودکار مدیریت میکند.
نکات کلیدی:
- نصب داکر از مخزن رسمی داکر (در اینجا از میرور پارمین کلود استفاده میشود) استفاده میکند تا جدیدترین نسخه پایدار را با بهروزرسانیهای امنیتی دریافت کنید.
- فرآیند نصب مستقل از نسخه بوده و بهطور خودکار نسخه اوبونتو شما را تشخیص میدهد.
- میتوانید دستورات داکر را بدون
sudoاجرا کنید، که این کار کارایی را افزایش میدهد اما نیازمند ملاحظات امنیتی است. - ایمجهای داکر (Images) قالبهای فقطخواندنی هستند، در حالی که کانتینرها نمونههای در حال اجرایی هستند که از آن ایمجها ایجاد میشوند.
- نصبهای مدرن داکر شامل Docker Compose به عنوان یک پلاگین هستند که با دستور
docker compose(بدون خط تیره) قابل دسترسی است.
پیشنیازها برای دنبال کردن این آموزش به موارد زیر نیاز دارید:
- یک سرور اوبونتو که طبق راهنمای راهاندازی اولیه سرور پارمین کلود تنظیم شده باشد، شامل یک کاربر غیر روت با دسترسی sudo و فایروال.
- یک حساب کاربری در Docker Hub (اگر میخواهید ایمجهای خود را بسازید و آنها را پوش کنید).
مرحله ۱ — نصب داکر
پکیج نصب داکر موجود در مخزن پیشفرض اوبونتو ممکن است آخرین نسخه نباشد. برای اطمینان از دریافت جدیدترین نسخه، ما داکر را از مخزن رسمی آن (از طریق میرور پارمین کلود) نصب میکنیم. برای این کار، یک منبع پکیج جدید اضافه میکنیم، کلید GPG را اضافه میکنیم تا از معتبر بودن دانلودها اطمینان حاصل کنیم و سپس پکیج را نصب مینماییم.
ابتدا لیست پکیجهای موجود خود را بهروزرسانی کنید:
سپس چند پکیج پیشنیازی را نصب کنید که به apt اجازه میدهند از پکیجها روی HTTPS استفاده کند:
سپس کلید GPG مخزن داکر را با استفاده از روش مدرن keyring به سیستم خود اضافه کنید (از میرور پارمین کلود استفاده میکنیم):
مخزن داکر را به منابع APT اضافه کنید. این دستور بهطور خودکار نسخه اوبونتو شما را تشخیص میدهد (آدرس ریپو به میرور پارمین کلود تغییر یافته است):
پایگاه داده پکیج را با پکیجهای داکر از مخزن جدید بهروزرسانی کنید:
بررسی کنید که ایمل به نصب از مخزن داکر هستید، نه مخزن پیشفرض اوبونتو:
خروجی نشان میدهد که داکر از مخزن رسمی در دسترس است.
در نهایت، داکر را نصب کنید:
نکته: این نصب شامل docker-buildx-plugin و docker-compose-plugin است که قابلیتهای مدرن Docker Compose را فراهم میکند. شما میتوانید از دستور docker compose (بدون خط تیره) به جای ابزار مستقل قدیمی docker-compose استفاده کنید.
داکر اکنون باید نصب شده باشد، دیمون (Daemon) آن اجرا شده و پردازش آن برای شروع در زمان بوت فعال باشد. بررسی کنید که در حال اجرا است:
خروجی باید نشان دهد که سرویس active (running) است.
مرحله ۲ — اجرای دستور داکر بدون Sudo (اختیاری)
بهطور پیشفرض، دستور docker فقط میتواند توسط کاربر root یا کاربری در گروه docker اجرا شود. اگر سعی کنید آن را بدون sudo و بدون عضویت در این گروه اجرا کنید، خطایی دریافت خواهید کرد.
برای جلوگیری از تایپ sudo در هر بار اجرای داکر، نام کاربری خود را به گروه docker اضافه کنید:
برای اعمال عضویت جدید در گروه، از سرور خارج شده و دوباره وارد شوید، یا دستور زیر را تایپ کنید:
تایید کنید که کاربر شما اکنون به گروه docker اضافه شده است:
بقیه این مقاله فرض میکند که شما دستور docker را به عنوان کاربری در گروه docker اجرا میکنید. اگر این گزینه را انتخاب نکردید، لطفاً دستورات را با sudo پیشوند کنید.
مرحله ۳ — استفاده از دستور داکر
استفاده از داکر شامل پاس دادن زنجیرهای از گزینهها و دستورات به همراه آرگومانهاست. سینتکس آن به این شکل است:
برای مشاهده تمام زیردستورات موجود، تایپ کنید:
برای مشاهده گزینههای موجود برای یک دستور خاص:
برای مشاهده اطلاعات سیستممحیطی داکر:
مرحله ۴ — کار با ایمجهای داکر (Docker Images)
کانتینرهای داکر از ایمجهای داکر ساخته میشوند. بهطور پیشفرض، داکر این ایمجها را از Docker Hub میکشد. برای بررسی اینکه آیا میتوانید به ایمجها دسترسی پیدا کرده و دانلود کنید یا خیر، تایپ کنید:
خروجی نشان میدهد که داکر بهدرستی کار میکند. داکر در ابتدا نتوانست ایمج hello-world را به صورت محلی پیدا کند، بنابراین آن را از Docker Hub دانلود کرد و کانتینری از روی آن ایجاد کرد.
شما میتوانید با استفاده از زیردستور search برای ایمجهای موجود در Docker Hub جستجو کنید. به عنوان مثال، برای جستجوی ایمج اوبونتو:
پس از پیدا کردن ایمج مورد نظر، آن را با زیردستور pull دانلود کنید:
پس از دانلود، میتوانید با زیردستور run یک کانتینر را با استفاده از ایمج دانلود شده اجرا کنید. برای مشاهده ایمجهای دانلود شده روی سیستم خود تایپ کنید:
مرحله ۵ — اجرای یک کانتینر داکر
کانتینر hello-world نمونهای از کانتینری بود که بعد از emit کردن یک پیام تست خارج شد. اما کانتینرها میتوانند بسیار مفیدتر و تعاملی باشند. به عنوان مثال، بیایید یک کانتینر با استفاده از آخرین ایمج اوبونتو اجرا کنیم. ترکیب سوئیچهای -i و -t به شما دسترسی تعاملی به شل (Shell) داخل کانتینر میدهد:
پرامپت شما تغییر میکند تا نشان دهد اکنون در داخل کانتینر کار میکنید و باید به این شکل باشد:
به شناسه کانتینر (Container ID) در پرامپت دقت کنید. حالا میتوانید هر دستوری را داخل کانتینر اجرا کنید. مثلاً پکیجها را آپدیت کنید یا نود جیاس را نصب کنید:
برای خروج از کانتینر، در پرامپت تایپ کنید exit.
مرحله ۶ — مدیریت کانتینرهای داکر
پس از استفاده از داکر برای مدتی، کانتینرهای فعال (در حال اجرا) و غیرفعال زیادی روی سیستم خود خواهید داشت. برای مشاهده کانتینرهای فعال از دستور زیر استفاده کنید:
برای مشاهده تمام کانتینرها (فعال و غیرفعال)، سوئیچ -a را اضافه کنید:
برای مشاهده آخرین کانتینری که ایجاد کردهاید، از سوئیچ -l استفاده کنید. برای شروع یک کانتینر متوقفشده، از docker start و سپس شناسه یا نام کانتینر استفاده کنید:
برای متوقف کردن یک کانتینر در حال اجرا، از docker stop استفاده کنید. هنگامی که دیگر نیازی به کانتینر ندارید، آن را با docker rm حذف کنید.
مرحله ۷ — ذخیره تغییرات یک کانتینر در یک ایمج داکر
هنگامی که شما یک ایمج داکر را راهاندازی میکنید، میتوانید فایلها را ایجاد، تغییر یا حذف کنید؛ درست مانند یک ماشین مجازی. اما به محض اینکه کانتینر را با docker rm حذف کنید، تغییرات برای همیشه از بین میروند.
این بخش به شما نشان میدهد چگونه وضعیت یک کانتینر را به عنوان یک ایمج جدید داکر ذخیره کنید. تغییرات خود را با دستور زیر در یک ایمج جدید ذخیره (Commit) کنید:
سوئیچ -m برای پیام کامیت است و -a برای مشخص کردن نام نویسنده. مثلاً برای کاربری به نام sammy:
لیست کردن ایمجهای داکر دوباره ایمج جدید را به همراه ایمج قبلی که از آن مشتق شده نشان میدهد. دفعه بعد که نیاز داشتید کانتینری با اوبونتو و نود جیاس از پیش نصب شده اجرا کنید، میتوانید از این ایمج جدید استفاده کنید.
مرحله ۸ — پوش کردن (Push) ایمجهای داکر به یک مخزن
مرحله منطقی بعدی پس از ایجاد یک ایمج جدید، به اشتراک گذاشتن آن با دیگران در Docker Hub است. برای این کار باید یک حساب کاربری در Docker Hub داشته باشید.
ابتدا وارد Docker Hub شوید:
سپس ایمج خود را پوش کنید:
پس از پوش کردن ایمج به یک مخزن، باید در داشبورد حساب کاربری شما لیست شود.
داکر در برابر Docker Compose
در حالی که داکر به شما اجازه میدهد کانتینرها را بسازید و اجرا کنید، مدیریت اپلیکیشنهای چندکانتینری فقط با داکر میتواند خستهکننده باشد. اینجاست که Docker Compose به کار میآید. Docker Compose ابزاری برای تعریف و اجرای اپلیکیشنهای چندکانتینری داکر با استفاده از یک فایل YAML است.
نکته: نصبهای مدرن داکر شامل Docker Compose به عنوان یک پلاگین هستند. از دستور docker compose (بدون خط تیره) استفاده کنید.
رفع مشکلات رایج نصب داکر
مشکل: docker: command not found راهحل: Docker CLI در $PATH شما نیست. داکر را دوباره نصب کنید یا مطمئن شوید /usr/bin در مسیر شما قرار دارد.
مشکل: Cannot connect to the Docker daemon راهحل: داکر در حال اجرا نیست یا کاربر شما در گروه docker نیست.
مشکل: خطای کلید GPG یا مخزن راهحل: اگر با خطای کلید GPG مواجه شدید، مطمئن شوید که از آدرس میرور پارمین کلود (https://docker-ce.parmincloud.ir/gpg) استفاده کردهاید.
نصب داکر با استفاده از Dockerfile
برای محیطهای خودکار، میتوانید داکر را با استفاده از یک Dockerfile نصب کنید. در اینجا یک نمونه آورده شده است (با استفاده از میرور پارمین کلود):
نحوه حذف نصب داکر در اوبونتو
برای حذف داکر از سیستم خود، دستورات زیر را اجرا کنید:
سوالات متداول (FAQ)
۱. بهترین راه برای نصب داکر در اوبونتو چیست؟ راه توصیهشده و قابل اعتماد، استفاده از مخزن رسمی داکر (یا میرور معتبر آن مانند پارمین کلود) است. این روش تضمین میکند که همیشه جدیدترین نسخه پایدار را با بهروزرسانیهای امنیتی دریافت کنید.
۲. آیا برای اجرای دستورات داکر به sudo نیاز دارم؟ بهطور پیشفرض بله. اما میتوانید با اضافه کردن کاربر خود به گروه docker (sudo usermod -aG docker $USER) نیازی به sudo نداشته باشید. توجه داشته باشید که کاربران در این گروه دسترسی سطح root به دیمون داکر خواهند داشت، بنابراین فقط به کاربران مورد اعتماد این دسترسی را بدهید.
۳. چگونه بررسی کنم که داکر بهدرستی کار میکند؟ میتوانید دستور docker info را اجرا کنید یا تست ساده docker run hello-world را انجام دهید تا مطمئن شوید همه چیز بهدرستی تنظیم شده است.
۴. آیا میتوانم نسخه خاصی از داکر را نصب کنم؟ بله. ابتدا نسخههای موجود را با apt-cache madison docker-ce لیست کنید و سپس نسخه دلخواه را با دستور sudo apt install docker-ce=<VERSION_STRING> نصب کنید.
۵. تفاوت داکر و Docker Compose چیست؟ داکر پلتفرمی برای ساخت و اجرای کانتینرهای مجزاست. اما Docker Compose ابزاری است که برای تعریف و مدیریت اپلیکیشنهای چندکانتینری طراحی شده و تعاملات، شبکهها و تنظیمات آنها را با استفاده از یک فایل YAML مدیریت میکند.
۶. آیا Docker Desktop برای اوبونتو موجود است؟ بله، Docker Desktop در حال حاضر برای توزیعهای لینوکس از جمله اوبونتو در نسخه بتا (Beta) موجود است و رابط گرافیکی (GUI) ارائه میدهد. با این حال، برای سرورهای پروداکشن توصیه میشود از Docker Engine CE استفاده کنید.
نتیجهگیری در این آموزش جامع، شما داکر را با موفقیت روی اوبونتو نصب کردید، مبانی مدیریت کانتینرها را یاد گرفتید و نحوه کار با ایمجها و کانتینرهای داکر را بررسی کردید. شما همچنین تجربه عملی با Docker Hub با پوش کردن یک ایمج تغییر یافته به دست آوردید. این مهارتها پایهای محکم برای توسعه و استقرار مبتنی بر کانتینر فراهم میکند. مراحل نصب ارائه شده روی اوبونتو 20.04، 22.04 و 24.04 کار میکند.
از همراهی شما با پارمین کلود سپاسگزاریم.



