اوبنتوداکرسرورلینوکس

آموزش نصب و استفاده از داکر (Docker) در اوبونتو 24.04

مقدمه داکر (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 را اضافه می‌کنیم تا از معتبر بودن دانلودها اطمینان حاصل کنیم و سپس پکیج را نصب می‌نماییم.

ابتدا لیست پکیج‌های موجود خود را به‌روزرسانی کنید:

bash
sudo apt update

سپس چند پکیج پیش‌نیازی را نصب کنید که به apt اجازه می‌دهند از پکیج‌ها روی HTTPS استفاده کند:

bash
sudo apt install ca-certificates curl gnupg

سپس کلید GPG مخزن داکر را با استفاده از روش مدرن keyring به سیستم خود اضافه کنید (از میرور پارمین کلود استفاده می‌کنیم):

bash
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://docker-ce.parmincloud.ir/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

مخزن داکر را به منابع APT اضافه کنید. این دستور به‌طور خودکار نسخه اوبونتو شما را تشخیص می‌دهد (آدرس ریپو به میرور پارمین کلود تغییر یافته است):

bash
echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://docker-ce.parmincloud.ir/ubuntu \
$(. /etc/os-release && echo “$VERSION_CODENAME”) stable” | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

پایگاه داده پکیج را با پکیج‌های داکر از مخزن جدید به‌روزرسانی کنید:

bash
sudo apt update

بررسی کنید که ایمل به نصب از مخزن داکر هستید، نه مخزن پیش‌فرض اوبونتو:

bash
apt-cache policy docker-ce

خروجی نشان می‌دهد که داکر از مخزن رسمی در دسترس است.

در نهایت، داکر را نصب کنید:

bash
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

نکته: این نصب شامل docker-buildx-plugin و docker-compose-plugin است که قابلیت‌های مدرن Docker Compose را فراهم می‌کند. شما می‌توانید از دستور docker compose (بدون خط تیره) به جای ابزار مستقل قدیمی docker-compose استفاده کنید.

داکر اکنون باید نصب شده باشد، دیمون (Daemon) آن اجرا شده و پردازش آن برای شروع در زمان بوت فعال باشد. بررسی کنید که در حال اجرا است:

bash
sudo systemctl status docker

خروجی باید نشان دهد که سرویس active (running) است.


مرحله ۲ — اجرای دستور داکر بدون Sudo (اختیاری)

به‌طور پیش‌فرض، دستور docker فقط می‌تواند توسط کاربر root یا کاربری در گروه docker اجرا شود. اگر سعی کنید آن را بدون sudo و بدون عضویت در این گروه اجرا کنید، خطایی دریافت خواهید کرد.

برای جلوگیری از تایپ sudo در هر بار اجرای داکر، نام کاربری خود را به گروه docker اضافه کنید:

bash
sudo usermod -aG docker ${USER}

برای اعمال عضویت جدید در گروه، از سرور خارج شده و دوباره وارد شوید، یا دستور زیر را تایپ کنید:

bash
su – ${USER}

تایید کنید که کاربر شما اکنون به گروه docker اضافه شده است:

bash
groups

بقیه این مقاله فرض می‌کند که شما دستور docker را به عنوان کاربری در گروه docker اجرا می‌کنید. اگر این گزینه را انتخاب نکردید، لطفاً دستورات را با sudo پیشوند کنید.


مرحله ۳ — استفاده از دستور داکر

استفاده از داکر شامل پاس دادن زنجیره‌ای از گزینه‌ها و دستورات به همراه آرگومان‌هاست. سینتکس آن به این شکل است:

bash
docker [option] [command] [arguments]

برای مشاهده تمام زیردستورات موجود، تایپ کنید:

bash
docker

برای مشاهده گزینه‌های موجود برای یک دستور خاص:

bash
docker docker-subcommand –help

برای مشاهده اطلاعات سیستم‌محیطی داکر:

bash
docker info

مرحله ۴ — کار با ایمج‌های داکر (Docker Images)

کانتینرهای داکر از ایمج‌های داکر ساخته می‌شوند. به‌طور پیش‌فرض، داکر این ایمج‌ها را از Docker Hub می‌کشد. برای بررسی اینکه آیا می‌توانید به ایمج‌ها دسترسی پیدا کرده و دانلود کنید یا خیر، تایپ کنید:

bash
docker run hello-world

خروجی نشان می‌دهد که داکر به‌درستی کار می‌کند. داکر در ابتدا نتوانست ایمج hello-world را به صورت محلی پیدا کند، بنابراین آن را از Docker Hub دانلود کرد و کانتینری از روی آن ایجاد کرد.

شما می‌توانید با استفاده از زیردستور search برای ایمج‌های موجود در Docker Hub جستجو کنید. به عنوان مثال، برای جستجوی ایمج اوبونتو:

bash
docker search ubuntu

پس از پیدا کردن ایمج مورد نظر، آن را با زیردستور pull دانلود کنید:

bash
docker pull ubuntu

پس از دانلود، می‌توانید با زیردستور run یک کانتینر را با استفاده از ایمج دانلود شده اجرا کنید. برای مشاهده ایمج‌های دانلود شده روی سیستم خود تایپ کنید:

bash
docker images

مرحله ۵ — اجرای یک کانتینر داکر

کانتینر hello-world نمونه‌ای از کانتینری بود که بعد از emit کردن یک پیام تست خارج شد. اما کانتینرها می‌توانند بسیار مفیدتر و تعاملی باشند. به عنوان مثال، بیایید یک کانتینر با استفاده از آخرین ایمج اوبونتو اجرا کنیم. ترکیب سوئیچ‌های -i و -t به شما دسترسی تعاملی به شل (Shell) داخل کانتینر می‌دهد:

bash
docker run -it ubuntu

پرامپت شما تغییر می‌کند تا نشان دهد اکنون در داخل کانتینر کار می‌کنید و باید به این شکل باشد:

text
root@d9b100f2f636:/#

به شناسه کانتینر (Container ID) در پرامپت دقت کنید. حالا می‌توانید هر دستوری را داخل کانتینر اجرا کنید. مثلاً پکیج‌ها را آپدیت کنید یا نود جی‌اس را نصب کنید:

bash
apt update
apt install nodejs
node -v

برای خروج از کانتینر، در پرامپت تایپ کنید exit.


مرحله ۶ — مدیریت کانتینرهای داکر

پس از استفاده از داکر برای مدتی، کانتینرهای فعال (در حال اجرا) و غیرفعال زیادی روی سیستم خود خواهید داشت. برای مشاهده کانتینرهای فعال از دستور زیر استفاده کنید:

bash
docker ps

برای مشاهده تمام کانتینرها (فعال و غیرفعال)، سوئیچ -a را اضافه کنید:

bash
docker ps -a

برای مشاهده آخرین کانتینری که ایجاد کرده‌اید، از سوئیچ -l استفاده کنید. برای شروع یک کانتینر متوقف‌شده، از docker start و سپس شناسه یا نام کانتینر استفاده کنید:

bash
docker start 1c08a7a0d0e4

برای متوقف کردن یک کانتینر در حال اجرا، از docker stop استفاده کنید. هنگامی که دیگر نیازی به کانتینر ندارید، آن را با docker rm حذف کنید.


مرحله ۷ — ذخیره تغییرات یک کانتینر در یک ایمج داکر

هنگامی که شما یک ایمج داکر را راه‌اندازی می‌کنید، می‌توانید فایل‌ها را ایجاد، تغییر یا حذف کنید؛ درست مانند یک ماشین مجازی. اما به محض اینکه کانتینر را با docker rm حذف کنید، تغییرات برای همیشه از بین می‌روند.

این بخش به شما نشان می‌دهد چگونه وضعیت یک کانتینر را به عنوان یک ایمج جدید داکر ذخیره کنید. تغییرات خود را با دستور زیر در یک ایمج جدید ذخیره (Commit) کنید:

bash
docker commit -m “What you did to the image” -a “Author Name” container_id repository/new_image_name

سوئیچ -m برای پیام کامیت است و -a برای مشخص کردن نام نویسنده. مثلاً برای کاربری به نام sammy:

bash
docker commit -m “added Node.js” -a “sammy” d9b100f2f636 sammy/ubuntu-nodejs

لیست کردن ایمج‌های داکر دوباره ایمج جدید را به همراه ایمج قبلی که از آن مشتق شده نشان می‌دهد. دفعه بعد که نیاز داشتید کانتینری با اوبونتو و نود جی‌اس از پیش نصب شده اجرا کنید، می‌توانید از این ایمج جدید استفاده کنید.


مرحله ۸ — پوش کردن (Push) ایمج‌های داکر به یک مخزن

مرحله منطقی بعدی پس از ایجاد یک ایمج جدید، به اشتراک گذاشتن آن با دیگران در Docker Hub است. برای این کار باید یک حساب کاربری در Docker Hub داشته باشید.

ابتدا وارد Docker Hub شوید:

bash
docker login -u docker-registry-username

سپس ایمج خود را پوش کنید:

bash
docker push sammy/ubuntu-nodejs

پس از پوش کردن ایمج به یک مخزن، باید در داشبورد حساب کاربری شما لیست شود.


داکر در برابر Docker Compose

در حالی که داکر به شما اجازه می‌دهد کانتینرها را بسازید و اجرا کنید، مدیریت اپلیکیشن‌های چندکانتینری فقط با داکر می‌تواند خسته‌کننده باشد. اینجاست که Docker Compose به کار می‌آید. Docker Compose ابزاری برای تعریف و اجرای اپلیکیشن‌های چندکانتینری داکر با استفاده از یک فایل YAML است.

نکته: نصب‌های مدرن داکر شامل Docker Compose به عنوان یک پلاگین هستند. از دستور docker compose (بدون خط تیره) استفاده کنید.

ویژگی
Docker CLI
Docker Compose
استفاده عملیات تک‌کانتینری ارکستراسیون چندکانتینری
پیکربندی دستورات CLI فایل پیکربندی YAML
بهترین مورد استفاده تست کانتینرهای ایزوله توسعه محلی و تنظیمات Staging

 


رفع مشکلات رایج نصب داکر

مشکل: docker: command not found راه‌حل: Docker CLI در $PATH شما نیست. داکر را دوباره نصب کنید یا مطمئن شوید /usr/bin در مسیر شما قرار دارد.

مشکل: Cannot connect to the Docker daemon راه‌حل: داکر در حال اجرا نیست یا کاربر شما در گروه docker نیست.

bash
sudo systemctl start docker
sudo usermod -aG docker $USER

مشکل: خطای کلید GPG یا مخزن راه‌حل: اگر با خطای کلید GPG مواجه شدید، مطمئن شوید که از آدرس میرور پارمین کلود (https://docker-ce.parmincloud.ir/gpg) استفاده کرده‌اید.


نصب داکر با استفاده از Dockerfile

برای محیط‌های خودکار، می‌توانید داکر را با استفاده از یک Dockerfile نصب کنید. در اینجا یک نمونه آورده شده است (با استفاده از میرور پارمین کلود):

dockerfile
FROM ubuntu:24.04
RUN apt-get update && \
apt-get install -y ca-certificates curl gnupg && \
install -m 0755 -d /etc/apt/keyrings && \
curl -fsSL https://docker-ce.parmincloud.ir/gpg | gpg –dearmor -o /etc/apt/keyrings/docker.gpg && \
chmod a+r /etc/apt/keyrings/docker.gpg && \
echo \
“deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://docker-ce.parmincloud.ir/ubuntu \
$(. /etc/os-release && echo “$VERSION_CODENAME“) stable” | \
tee /etc/apt/sources.list.d/docker.list > /dev/null && \
apt-get update && \
apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

نحوه حذف نصب داکر در اوبونتو

برای حذف داکر از سیستم خود، دستورات زیر را اجرا کنید:

bash
sudo apt purge docker-ce docker-ce-cli containerd.io
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

سوالات متداول (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 کار می‌کند.

از همراهی شما با پارمین کلود سپاسگزاریم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا