داکر

از فرکیان تک
پرش به ناوبری پرش به جستجو

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 مراجعه کنید.

لایسنس کردن

Engine تحت مجوز Apache، نسخه 2.0 لایسنس دارد.

Instaghlation

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 برای داکر:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.as
  • Repository خود را به Apt اضافه کنید:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

نکته! اگر از توزیع مشتق اوبونتو مانند Linux Mint استفاده می‌کنید، ممکن است لازم باشد به جای VERSION_CODENAME از UBUNTU_CODENAME استفاده کنید.

نصب پکیج‌های داکر:


برای نصب آخرین ورژن داکر، مراحل زیر را پیش ببرید:

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

با اجرای تصویر hello-world اطمینان حاصل کنید که نصب با موفقیت انجام شده است:

sudo docker run hello-world

این دستور یک تصویر آزمایشی را دانلود کرده و در یک کانتینر اجرا می‌کند. هنگامی که کانتینر اجرا شود، یک پیام تأیید چاپ می‌کند و خارج می‌شود. اکنون Docker Engine را با موفقیت نصب و راه‌اندازی کرده‌اید.

راهنمایی اگر در هنگام اجرا داکر بدون دسترسی root خطا دریافت می‌کنید:

در این صورت گروه کاربری داکر (docker user group) وجود دارد اما هیچ کاربری ندارد، به همین دلیل است که برای اجرای دستورات داکر باید از sudo استفاده کنید. در postinstall لینوکس ادامه دهید تا به کاربران غیرمجاز اجازه دهید دستورات Docker و سایر مراحل پیکربندی اختیاری را اجرا کنند.

آپگرید کردن Docker Engine

برای آپگرید Docker Engine، فایل‌های پکیج جدیدتر را دانلود کرده و با توجه به فایل‌های جدید، مراحل نصب را تکرار کنید. 2. نصب داکر با استفاده از پکیج: اگر نمی‌توانید از مخزن Docker's apt برای نصب Docker Engine استفاده کنید، می‌توانید فایل deb را برای نسخۀ خود دانلود کرده و به صورت دستی نصب کنید. هر بار که می‌خواهید Docker Engine را آپگرید کنید، باید یک فایل جدید دانلود کنید.

  • به آدرس https://download.docker.com/linux/ubuntu/dists/ بروید.
  • نسخه اوبونتو خود را در لیست انتخاب کنید.
  • به بخش pool/stable/ بروید و معماری قابل اجرا (amd64، armhf، arm64، یا s390x) را انتخاب کنید.
  • فایل‌های deb زیر را برای پکیج‌های Docker Engine، CLI، containerd و Docker Compose دانلود کنید:

containerd.io_<version>_<arch>.deb docker-ce_<version>_<arch>.deb docker-ce-cli_<version>_<arch>.deb docker-buildx-plugin_<version>_<arch>.deb docker-compose-plugin_<version>_<arch>.deb

پکیج‌های .deb را نصب کنید. مسیرهای مثال زیر را به جایی که پکیج‌های Docker را دانلود کرده‌اید اضافه کنید.

sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
  ./docker-ce_<version>_<arch>.deb \
  ./docker-ce-cli_<version>_<arch>.deb \
  ./docker-buildx-plugin_<version>_<arch>.deb \
  ./docker-compose-plugin_<version>_<arch>.deb

بعد از آن Docker Daemon