نصب و کار با Docker در Ubuntu

docker

داکر (Docker) پلتفرمی Open Source و قدرتمند است که بر پایه‌ی سیستم عامل لینوکس طراحی شده و فرآیند ایجاد، پیاده‌سازی و اجرای برنامه‌ها را در قالب کانتینرها (Containers) آسان می‌کند. کانتینرها محیط‌های اجرایی مجزا و ایزوله هستند. آنها شبیه به ماشین‌های مجازی عمل می‌کنند، اما بسیار سبک‌تر، قابل حمل‌تر و سازگارتر با منابع سیستم عامل میزبان (Host) هستند. این ایزوله‌سازی امکان اجرای همزمان تعداد زیادی کانتینر را روی یک میزبان واحد و با حداقل سربار (Overhead) فراهم می‌کند.

معماری داکر

داکر از یک معماری کلاینت-سرور پیروی می‌کند. جزء اصلی آن دیمون داکر (Docker Daemon) است که بر روی سیستم میزبان اجرا می‌شود و وظیفه‌ی ساخت، اجرا و مدیریت کانتینرها را بر عهده دارد. کاربران از طریق کلاینت داکر (که یک رابط خط فرمان یا CLI است) با دیمون ارتباط برقرار می‌کنند و دستورات خود را برای مدیریت منابع داکر ارسال می‌نمایند.

نصب داکر در اوبونتو

سیستم عامل اوبونتو (Ubuntu) یکی از پلتفرم‌های شماره یک برای مدیریت کانتینرهای داکر است، زیرا سریع، امن و منبع باز بوده و به طور گسترده‌ای برای اجرای کانتینرها در مقیاس‌های بزرگ استفاده می‌شود. برای نصب و فعال‌سازی داکر بر روی اوبونتو، دو روش اصلی وجود دارد:

  • نصب از مخزن رسمی داکر (Docker Repository): این روش تضمین می‌کند که همیشه آخرین نسخه از داکر را دریافت می‌کنید.
  • نصب از مخازن پیش‌فرض اوبونتو (Default Ubuntu Repository): این روش نصب ساده‌تری را ارائه می‌کند، اما بسته داکر ممکن است قدیمی‌تر باشد.

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

نکته مهم : پس از خرید سرور اختصاصی هتزنر، معمولا باید تمام یوزرنیم‌های روت را عوض کرده و سیستم امنیتی و فایروال سرور را دوباره راه اندازی کنید چرا که این سرویس دهنده پروتکل‌های امنیتی زیادی را روی سرورهای خود اعمال کرده است. برای دور زدن محدودیت‌های فایروال این دسته از سرورها، بدون نیاز به خاموش کردن فایروال یا انجام تنظیمات اضافی، می‌توانید از داکر و تنظیمات اینترنتی آن استفاده کنید. داکر معمولا به دلیل ساختار کانتینر خود، باعث فعال شدن فایروال یا بسته شدن پورت ها نمی‌شود.

نحوه عملکرد docker

به‌روز رسانی سیستم عامل

ابتدا مطمئن شوید که لیست پکیج‌ها و خود سیستم عامل به‌روز هستند.

sudo apt update && sudo apt upgrade -y

نصب پکیج داکر

برای نصب پکیج داکر (docker.io) از مخازن اوبونتو، دستور زیر را اجرا کنید. پکیج‌های وابسته مورد نیاز به صورت خودکار نصب خواهند شد.

sudo apt install docker.io -y

نصب داکر

بررسی نصب

پس از اتمام نصب، وضعیت دیمون داکر را بررسی کنید تا مطمئن شوید که به درستی نصب و در حال اجرا است:

sudo systemctl status docker

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

docker --version

تا اینجای کار، نصب داکر را با موفقیت انجام دادید.

docker و قابلیت های آن

شروع کار با Docker Images

تمام اطلاعات داکر، شامل نحو، گزینه‌ها و دستورات، با اجرای دستور docker به تنهایی در ترمینال نمایش داده می‌شود. اولین قدم برای استفاده از داکر، کار با ایمیج‌ها (Images) است.

کار با Docker Images

ایمیج‌های داکر در حقیقت قالب‌های فقط خواندنی (Read-Only Templates) هستند که پایه‌ای برای ساخت و اجرای کانتینرها محسوب می‌شوند. این ایمیج‌ها در Docker Hub، که یک منبع عمومی بزرگ است، میزبانی می‌شوند.

جستجوی یک ایمیج

برای جستجوی ایمیج‌های موجود در Docker Hub بر اساس یک کلمه کلیدی:

sudo docker search [keyword]

مثلا، برای جستجوی ایمیج‌های مربوط به اوبونتو:

sudo docker search ubuntu

اگر در خروجی، ستون OFFICIAL حاوی عبارت [OK] باشد، به این معنی است که ایمیج توسط شرکت رسمی توسعه دهنده پروژه آپلود شده است.

 

جستجوی یک ایمیج داکر

دریافت (Pull) یک ایمیج

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

sudo docker pull [image-name]:[tag]

به طور مثال، برای دانلود آخرین نسخه ایمیج رسمی اوبونتو:

sudo docker pull ubuntu

 

دریافت ایمیج در داکر

مشاهده ایمیج‌های دانلود شده

برای دیدن لیست تمام ایمیج‌هایی که در حال حاضر روی سیستم شما دانلود شده‌اند، دستور زیر را اجرا کنید:

sudo docker images

مشاهده‌ی ایمیج‌های دانلود شده

کار با Docker Containers

کانتینر داکر یک محیط مجازی مجزا و فعال است که از یک ایمیج داکر ایجاد و اجرا می‌شود.

اجرای اولین کانتینر

برای ایجاد و اجرای یک کانتینر از روی ایمیج، از دستور docker run استفاده می‌شود. این دستور اگر ایمیج مورد نظر قبلا دانلود نشده باشد، به صورت خودکار آن را دانلود کرده و سپس کانتینر را می‌سازد. به عنوان مثال، برای اجرای کانتینر آزمایشی hello-world:

sudo docker run hello-world

این دستور ایمیج را بارگیری و یک کانتینر ایجاد می‌کند. سپس پیام «Hello from Docker» نمایش داده شده و کانتینر خاموش می‌شود.

docker run

مشاهده کانتینرهای داکر

  • برای فهرست کردن کانتینرهای فعال (در حال اجرا):
sudo docker ps
  • برای فهرست کردن همه کانتینرها (فعال و غیرفعال):
sudo docker ps -a

این دستورات، جزئیاتی مانند شناسه کانتینر، ایمیج مبدا، وضعیت و نام منحصر به فرد کانتینر را خروجی می‌دهند.

Sudo Docker

اجرای یک کانتینر در حالت تعاملی

برای اجرای یک کانتینر و اتصال به محیط داخلی آن (مثلا برای اجرای یک ترمینال Bash در آن) از گزینه‌های -it استفاده می‌شود.

sudo docker run -it ubuntu /bin/bash

در این حالت، شما وارد ترمینال سیستم عامل داخل کانتینر اوبونتو شده‌اید.

مدیریت کاربران و دسترسی (Post-Installation)

پس از نصب داکر، برای اینکه دیگر نیازی به استفاده از sudo در ابتدای هر دستور داکر نداشته باشید، باید کاربر خود را به گروه docker اضافه کنید.

افزودن کاربر به گروه داکر

دستور زیر کاربر فعلی شما (با متغیر $USER مشخص می‌شود) را به گروه داکر اضافه می‌کند:

sudo usermod -aG docker $USER

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

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

مدیریت کانتینرها در داکر

مدیریت شبکه‌ها (Networking)

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

دستور فرعی عملکرد
docker network ls فهرست کردن تمام شبکه‌های موجود در سیستم (مانند bridge, host, none).
docker network create [name] ایجاد یک شبکه جدید با نام دلخواه.
docker network connect [network] [container] اتصال یک کانتینر در حال اجرا به یک شبکه.

سوالات متداول

01داکر چیست و چه تفاوتی با ماشین‌های مجازی (VM) دارد؟

داکر یک پلتفرم منبع باز است که به توسعه‌دهندگان و متخصصان عملیات (DevOps) کمک می‌کند تا برنامه‌ها را در بسته‌های سبک و قابل حمل به نام کانتینر اجرا کنند. تفاوت اصلی آن با ماشین‌های مجازی در این است که کانتینرها از هسته (Kernel) سیستم عامل میزبان استفاده می‌کنند، در حالی که ماشین‌های مجازی شامل یک سیستم عامل کامل و مجزا هستند. این باعث می‌شود کانتینرها بسیار سبک‌تر باشند، سریع‌تر اجرا شوند و منابع کمتری مصرف کنند.

02دیمون داکر (Docker Daemon) چه نقشی دارد؟

دیمون داکر جزء اصلی معماری داکر است که در پس‌زمینه سیستم عامل میزبان اجرا می‌شود. این دیمون مسئولیت مدیریت تمام اشیاء داکر مانند ایمیج‌ها، کانتینرها، شبکه‌ها و فضاهای ذخیره‌سازی (Volumes) را بر عهده دارد. در واقع، هر زمان که شما یک فرمان داکر اجرا می‌کنید، کلاینت داکر آن فرمان را برای اجرا به دیمون می‌فرستد.

03ایمیج داکر (Docker Image) چیست؟

ایمیج داکر یک قالب فقط خواندنی (Read-Only Template) است که شامل تمام دستورالعمل‌ها و وابستگی‌های لازم برای ایجاد و اجرای یک کانتینر می‌باشد. این قالب شامل کدهای برنامه، کتابخانه‌ها، فایل‌های پیکربندی و متغیرهای محیطی است. ایمیج‌ها پایه و اساس کانتینرها هستند.

04کانتینر داکر (Docker Container) چیست؟

کانتینر داکر در واقع اجرای زنده و قابل ویرایش یک ایمیج داکر است. وقتی شما یک ایمیج را اجرا می‌کنید، یک کانتینر از آن ایجاد می‌شود. کانتینرها محیط‌های کاملاً ایزوله‌ای هستند که برنامه شما و تمام وابستگی‌هایش را به صورت امن و مستقل از سیستم میزبان و سایر کانتینرها اجرا می‌کنند.

05Docker Hub چیست؟

Docker Hub یک منبع عمومی مبتنی بر ابر (Cloud-Based Registry) است که هزاران ایمیج داکر از پیش ساخته شده (رسمی و غیررسمی) را میزبانی می‌کند. این سرویس به کاربران امکان می‌دهد تا ایمیج‌های خود را آپلود کرده و ایمیج‌های مورد نیاز خود را برای استفاده در پروژه‌هایشان دانلود کنند. این مکان اصلی برای یافتن و به اشتراک‌گذاری ایمیج‌ها است.

نظرات کاربران

شما میتوانید دیدگاه خود را در مورد این مطلب با ما با اشتراک بگذارید.

logo
ثبت نام ناحیه کاربری ارسال تیکت راهنمای خرید
ناحیه کاربری
ثبت نامناحیه کاربریداشبورد ابریارسال تیکتتماس تلفنی
تماس با ما
مشاوره تلفنی 1779 | 79625000
واحد مارکتینگ داخلی 1
واحد مشتریان داخلی 2
مالی و اداری داخلی 3
منابع انسانی داخلی 4