داکر
Docker Engine
Docker Engine یک فناوری کانتینرسازی متن باز (Open Source) برای ساخت و کانتینر کردن برنامههای کاربردی شما میباشد. و به عنوان یک برنامۀ Client-Server همراه با ویژگیهای زیر عمل میکند:
- با یک فرآیند دایمون طولانی مدت عمل می کند.
- دارای APIهایی میباشد که قابلیت تشخیص رابطهایی (Interfaces) را دارد که برنامه به واسطۀ این رابطها با Docker Deamon در ارتباط است.
- دارای محیط تحت خط فرمان (CLI) در Client Docker.
CLI از داکر APIها برای کنترل یا تعامل با Docker Deamon از طریق اسکریپت نویسی یا دستورات مستقیم CLI استفاده میکند. Deamon مسئولیت ساخت عواملی همچون: تطاویر، کانتینرها، شبکهها و حجم فضای قابل استفاده را ایجاد و مدیریت میکند. بسیاری از برنامههای دیگر داکر از یک APi و CLI مرتبط استفاده میکنند. برای جزئیات بیشتر میتوانید به Docker Architecture مراجعه کنید.
Licensing
Engine تحت مجوز Apache، نسخه 2.0 لایسنس دارد.
Instalation
Docker Engine برای Windows، macOS و Linux از طریق Docker Desktop در دسترس است. همچنین در جدول زیر میتوانید پلتفرمهای پشتیبانی شده را مشاهده کنید.
پلتفرم | x86_64 / amd64 | arm64 / aarch64 | arm (32-bit) | ppc64le | s390x |
---|---|---|---|---|---|
CentOS | ✅ | ✅ | ✅ | ||
Debian | ✅ | ✅ | ✅ | ✅ | |
Fedora | ✅ | ✅ | ✅ | ||
Raspberry Pi OS (32-bit) | ✅ | ||||
RHEL | ✅ | ✅ | ✅ | ||
SLES | ✅ | ||||
Ubuntu | ✅ | ✅ | ✅ | ✅ | ✅ |
Binaries | ✅ | ✅ | ✅ |
دیگر توزیعهای لینوکس
- اگر از مشتقات Debian مانند "BunsenLabs Linux" ،"Kali Linux" یا "LMDE" (Mint مبتنی بر Debian) استفاده میکنید، باید دستورالعملهای نصب Debian را دنبال کنید، نسخۀ توزیع خود را جایگزین نسخۀ مربوطۀ Debian کنید.
- بدین ترتیب، اگر از مشتقات Ubuntu مانند "Kubuntu" ،"Lubuntu" یا "Xubuntu" استفاده می کنید، باید دستورالعملهای نصب Ubuntu را دنبال کنید و نسخۀ توزیع خود را جایگزین نسخۀ مربوطه کنید.
- برخی از توزیعهای لینوکس پکیجهایی از Docker Engine را از طریق مخازن (Repository)خود ارائه میکنند. این پکیجها توسط نگهبانان پکیج توزیع لینوکس (Linux distribution's package maintainers) ساخته و نگهداری میشوند و ممکن است تفاوتهایی در پیکربندی داشته باشند یا از کد منبع اصلاح شده ساخته شده باشند. Docker در انتشار این بستهها دخالتی ندارد و شما باید هر گونه اشکال یا مشکل مربوط به این پکیجها را به ردیاب مشکل توزیع لینوکس خود (distribution's issue tracker) گزارش دهید.
همپنین Docker، فایلهای باینری را برای نصب دستی Docker Engine ارائه میدهد. این باینریها به صورت دستی مرتبط هستند و میتوانید از آنها در هر توزیع لینوکس استفاده کنید.
کانالهای انتشار
stable channel: آخرین نسخههای منتشر شده را برای دسترسی عمومی به شما ارائه میدهد. test channel: نسخههای پیش از انتشار را در اختیار شما قرار میدهد که قبل از در دسترس بودن عمومی برای آزمایش آماده هستند. هشدار! در زمان استفاده از کانال تست مراقب باشید چرا که نسخههای پیش از انتشار شامل ویژگیهای آزمایشی و دسترسی اولیه هستند که در معرض تغییرات اساسی میباشند.
Docker Engine توسط Moby project maintainers و اعضای انجمن پشتیبانی میشود. Docker از Docker Engine پشتیبانی نمیکند بلکه از محصولات Docker پشتیبانی میکند، از جمله Docker Desktop که از Docker Engine به عنوان یکی از اجزای خود استفاده میکند.
مسیر Upgrade
نسخههای پچ همیشه با نسخۀ اصلی و فرعی آن سازگار هستند.
نصب Engine Docker بر روی Ubuntu:
برای شروع کار با Docker Engine در Ubuntu، مطمئن شوید که پیش نیازها را دارید و سپس مراحل نصب را دنبال کنید.
موارد پیشنیاز:
محدودیت های فایروال قبل از نصب Docker، مطمئن شوید که پیامدهای امنیتی زیر و ناسازگاریهای فایروال را در نظر گرفتهاید.
- اگر از ufw یا firewalld برای مدیریت تنظیمات فایروال استفاده میکنید، توجه داشته باشید که وقتی پورتهای کانتینر را با استفاده از Docker در معرض دید قرار میدهید، این پورتها قوانین فایروال شما را دور میزنند.
- Docker فقط با iptables-nft و iptables-legacy سازگار است. قوانین فایروال ایجاد شده با nft در سیستمی که Docker نصب شده است پشتیبانی نمیشود. اطمینان حاصل کنید که مجموعه قوانین فایروال که از آن استفاده میکنید با iptables یا ip6tables ایجاد میشوند و آنها را به زنجیرۀ DOCKER-USER اضافه میکنید.
عوامل مورد نیاز برای سیستمعامل
برای نصب Docker Engine، به نسخۀ 64 بیتی یکی از این نسخههای Ubuntu نیاز دارید:
- Ubuntu Oracular 24.10
- Ubuntu Noble 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS)
- Ubuntu Focal 20.04 (LTS)
Docker Engine برای Ubuntu با معماریهای x86_64 (یا amd64)، armhf، arm64، s390x و ppc64le (ppc64el) سازگار است.
نسخههای قدیمی را حذف کنید:
قبل از اینکه Docker Engine را نصب کنید، باید پکیجهای متناقض را حذف کنید. توزیع لینوکس شما ممکن است پکیجهای Docker غیررسمی ارائه کند که ممکن است با پکیجهای رسمی ارائهشده توسط Docker مغایرت داشته باشد. قبل از نصب نسخۀ رسمی Docker Engine باید این پکیجها را حذف کنید.
بستههای غیر رسمی برای حذف عبارتند از: docker.io docker-compose docker-compose-v2 docker-doc podman-docker
علاوهبراین، Docker Engine به containerd و runc وابسته است. Docker Engine این وابستگیها را به عنوان یک بستۀ واحد: containerd.io بستهبندی می کند. اگر قبلاً containerd یا runc را نصب کردهاید، آنها را برای جلوگیری از تداخل با نسخههای بستهبندی شده با Docker Engine، حذف کنید.
برای حذف میتوانید از دستور زیر استفاده کنید:
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
ممکن است apt-get گزارش دهد که هیچ یک از این پکیجها نصب نشدهاند.
تصاویر، کانتینرها، حجمها و شبکههایی که در /var/lib/docker/ ذخیره شدهاند، هنگام حذف نصب Docker به طور خودکار حذف نمیشوند. اگر ترجیح میدهید هرگونه دادۀ موجود را پاک کنید، بخش حذف نصب Docker Engine را بخوانید.
=== انواع روشهای نصب ===:
شما به روشهای مختلفی میتوانید داکر را بر روی سیستم خودتان نصب کنید فقط کافیست بگویید که به چه چیزی نیاز دارید. Docker Engine به همراه Docker Desktop برای لینوکس ارائه میشود. این سادهترین و سریعترین راه برای شروع است. Docker Engine را از مخزن apt Docker تنظیم و نصب کنید. آن را به صورت دستی نصب کنید و آپدیتها را به صورت دستی مدیریت کنید. از یک convenience scriptاستفاده کنید.
1. نصب داکر با استفاده از apt repository: قبل از اینکه Docker Engine را برای اولین بار روی یک ماشین هاست جدید نصب کنید، باید مخزن Docker apt را راه اندازی کنید. پس از آن، می توانید Docker را از مخزن نصب و بهروز کنید.
- پیاده سازی apt repository برای داکر:
- Repository خود را به Apt اضافه کنید:
نکته! اگر از توزیع مشتق اوبونتو مانند Linux Mint استفاده میکنید، ممکن است لازم باشد به جای VERSION_CODENAME از UBUNTU_CODENAME استفاده کنید.
نصب پکیجهای داکر: <syntaxhighlight lang="dockerfile" line="1">
برای نصب آخرین ورژن داکر، مراحل زیر را پیش ببرید: