نصب و کار با Docker در Ubuntu
داکر (Docker) پلتفرمی Open Source و قدرتمند است که بر پایهی سیستم عامل لینوکس طراحی شده و فرآیند ایجاد، پیادهسازی و اجرای برنامهها را در قالب کانتینرها (Containers) آسان میکند. کانتینرها محیطهای اجرایی مجزا و ایزوله هستند. آنها شبیه به ماشینهای مجازی عمل میکنند، اما بسیار سبکتر، قابل حملتر و سازگارتر با منابع سیستم عامل میزبان (Host) هستند. این ایزولهسازی امکان اجرای همزمان تعداد زیادی کانتینر را روی یک میزبان واحد و با حداقل سربار (Overhead) فراهم میکند.
معماری داکر
داکر از یک معماری کلاینت-سرور پیروی میکند. جزء اصلی آن دیمون داکر (Docker Daemon) است که بر روی سیستم میزبان اجرا میشود و وظیفهی ساخت، اجرا و مدیریت کانتینرها را بر عهده دارد. کاربران از طریق کلاینت داکر (که یک رابط خط فرمان یا CLI است) با دیمون ارتباط برقرار میکنند و دستورات خود را برای مدیریت منابع داکر ارسال مینمایند.
نصب داکر در اوبونتو
سیستم عامل اوبونتو (Ubuntu) یکی از پلتفرمهای شماره یک برای مدیریت کانتینرهای داکر است، زیرا سریع، امن و منبع باز بوده و به طور گستردهای برای اجرای کانتینرها در مقیاسهای بزرگ استفاده میشود. برای نصب و فعالسازی داکر بر روی اوبونتو، دو روش اصلی وجود دارد:
- نصب از مخزن رسمی داکر (Docker Repository): این روش تضمین میکند که همیشه آخرین نسخه از داکر را دریافت میکنید.
- نصب از مخازن پیشفرض اوبونتو (Default Ubuntu Repository): این روش نصب سادهتری را ارائه میکند، اما بسته داکر ممکن است قدیمیتر باشد.
در این مقاله، روش نصب از طریق مخزن پیشفرض سیستم عامل اوبونتو را پیگیری میکنیم.
نکته مهم : پس از خرید سرور اختصاصی هتزنر، معمولا باید تمام یوزرنیمهای روت را عوض کرده و سیستم امنیتی و فایروال سرور را دوباره راه اندازی کنید چرا که این سرویس دهنده پروتکلهای امنیتی زیادی را روی سرورهای خود اعمال کرده است. برای دور زدن محدودیتهای فایروال این دسته از سرورها، بدون نیاز به خاموش کردن فایروال یا انجام تنظیمات اضافی، میتوانید از داکر و تنظیمات اینترنتی آن استفاده کنید. داکر معمولا به دلیل ساختار کانتینر خود، باعث فعال شدن فایروال یا بسته شدن پورت ها نمیشود.
بهروز رسانی سیستم عامل
ابتدا مطمئن شوید که لیست پکیجها و خود سیستم عامل بهروز هستند.
sudo apt update && sudo apt upgrade -y
نصب پکیج داکر
برای نصب پکیج داکر (docker.io
) از مخازن اوبونتو، دستور زیر را اجرا کنید. پکیجهای وابسته مورد نیاز به صورت خودکار نصب خواهند شد.
sudo apt install docker.io -y
بررسی نصب
پس از اتمام نصب، وضعیت دیمون داکر را بررسی کنید تا مطمئن شوید که به درستی نصب و در حال اجرا است:
sudo systemctl status docker
همچنین، نسخه داکر نصب شده را با اجرای دستور زیر بررسی کنید:
docker --version
تا اینجای کار، نصب داکر را با موفقیت انجام دادید.
شروع کار با 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» نمایش داده شده و کانتینر خاموش میشود.
مشاهده کانتینرهای داکر
- برای فهرست کردن کانتینرهای فعال (در حال اجرا):
sudo docker ps
برای فهرست کردن همه کانتینرها (فعال و غیرفعال):
sudo docker ps -a
این دستورات، جزئیاتی مانند شناسه کانتینر، ایمیج مبدا، وضعیت و نام منحصر به فرد کانتینر را خروجی میدهند.
اجرای یک کانتینر در حالت تعاملی
برای اجرای یک کانتینر و اتصال به محیط داخلی آن (مثلا برای اجرای یک ترمینال Bash در آن) از گزینههای -it
استفاده میشود.
sudo docker run -it ubuntu /bin/bash
در این حالت، شما وارد ترمینال سیستم عامل داخل کانتینر اوبونتو شدهاید.
مدیریت کاربران و دسترسی (Post-Installation)
پس از نصب داکر، برای اینکه دیگر نیازی به استفاده از sudo
در ابتدای هر دستور داکر نداشته باشید، باید کاربر خود را به گروه docker
اضافه کنید.
افزودن کاربر به گروه داکر
دستور زیر کاربر فعلی شما (با متغیر $USER
مشخص میشود) را به گروه داکر اضافه میکند:
sudo usermod -aG docker $USER
برای اعمال این تغییر، باید یک بار از سیستم خارج شده و دوباره وارد شوید یا سیستم را ریاستارت کنید. پس از این کار، میتوانید دستورات داکر را بدون sudo
اجرا کنید.
دقت داشته باشید که پس از خرید سرور مجازی ایران یا خارج، در صورت نیاز به استفاده از داکر، سریعا یک یوزر جدید را برای استفاده از آن بسازید و از یوزر Root برای استفاده از سرور استفاده نکنید.
مدیریت شبکهها (Networking)
دستورات شبکه داکر به کاربران امکان میدهند تا شبکههای داخلی خود را برای اتصال کانتینرها به یکدیگر یا اتصال کانتینرها به شبکه خارجی ایجاد و مدیریت کنند.
سوالات متداول
داکر یک پلتفرم منبع باز است که به توسعهدهندگان و متخصصان عملیات (DevOps) کمک میکند تا برنامهها را در بستههای سبک و قابل حمل به نام کانتینر اجرا کنند. تفاوت اصلی آن با ماشینهای مجازی در این است که کانتینرها از هسته (Kernel) سیستم عامل میزبان استفاده میکنند، در حالی که ماشینهای مجازی شامل یک سیستم عامل کامل و مجزا هستند. این باعث میشود کانتینرها بسیار سبکتر باشند، سریعتر اجرا شوند و منابع کمتری مصرف کنند.
دیمون داکر جزء اصلی معماری داکر است که در پسزمینه سیستم عامل میزبان اجرا میشود. این دیمون مسئولیت مدیریت تمام اشیاء داکر مانند ایمیجها، کانتینرها، شبکهها و فضاهای ذخیرهسازی (Volumes) را بر عهده دارد. در واقع، هر زمان که شما یک فرمان داکر اجرا میکنید، کلاینت داکر آن فرمان را برای اجرا به دیمون میفرستد.
ایمیج داکر یک قالب فقط خواندنی (Read-Only Template) است که شامل تمام دستورالعملها و وابستگیهای لازم برای ایجاد و اجرای یک کانتینر میباشد. این قالب شامل کدهای برنامه، کتابخانهها، فایلهای پیکربندی و متغیرهای محیطی است. ایمیجها پایه و اساس کانتینرها هستند.
کانتینر داکر در واقع اجرای زنده و قابل ویرایش یک ایمیج داکر است. وقتی شما یک ایمیج را اجرا میکنید، یک کانتینر از آن ایجاد میشود. کانتینرها محیطهای کاملاً ایزولهای هستند که برنامه شما و تمام وابستگیهایش را به صورت امن و مستقل از سیستم میزبان و سایر کانتینرها اجرا میکنند.
Docker Hub یک منبع عمومی مبتنی بر ابر (Cloud-Based Registry) است که هزاران ایمیج داکر از پیش ساخته شده (رسمی و غیررسمی) را میزبانی میکند. این سرویس به کاربران امکان میدهد تا ایمیجهای خود را آپلود کرده و ایمیجهای مورد نیاز خود را برای استفاده در پروژههایشان دانلود کنند. این مکان اصلی برای یافتن و به اشتراکگذاری ایمیجها است.
شما میتوانید دیدگاه خود را در مورد این مطلب با ما با اشتراک بگذارید.