پیش‌ نیازهای نصب داکر روی اوبونتو

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

۱. اگر از ufw یا Firewalld برای مدیریت تنظیمات فایروال اوبونتو روی سرور استفاده می‌کنید، توجه داشته باشید که وقتی پورت‌های Container را با استفاده از داکر در معرض دید قرار می‌دهید، این پورت‌ها قوانین فایروال سرورتان را دور می‌زنند. 

۲. داکر فقط با iptables-nft و iptables-legacy سازگار است. قوانین فایروال ایجادشده با nft در سیستمی که داکر روی آن نصب شده باشد، پشتیبانی نمی‌شود. پس ابتدا مطمئن شوید که مجموعه قوانین فایروالی که استفاده می‌کنید، با iptables یا ip6tables ایجاد شده‌اند و آن‌ها را به زنجیره DOCKER-USER اضافه کنید.

پیش‌ نیازهای سیستم‌عامل

برای نصب Docker Engine، به ورژن ۶۴ بیتی یکی از این نسخه‌های اوبونتو زیر نیاز دارید:

Docker Engine برای اوبونتو با معماری‌های x86_64 (یا amd64)، armhf، arm64، s390x و ppc64le (ppc64el) سازگار است.

بیشتر بخوانید: آموزش نصب داکر روی ویندوز

نصب داکر روی سرور ایران

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

مشکلات احتمالی هنگام نصب داکر در ایران

راه‌حل‌های پیشنهادی

حذف نسخه‌های قدیمی داکر از اوبونتو

قبل از نصب داکر روی اوبونتو باید پکیج‌‌های متناقض را حذف کنید.

Distro Maintainers توزیع‌های غیررسمی بسته‌های داکر را در APT ارائه می‌دهند. قبل از نصب نسخه رسمی Docker Engine، باید این بسته‌ها را حذف کنید.

بسته‌های غیررسمی برای حذف عبارتند از:

علاوه‌براین، Docker Engine به Container و 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 Engine را به‌طورکامل حذف کنید. این کار با طی کردن دو مرحله زیر ممکن می‌شود:

حذف پکیج‌های Docker Engine, CLI, containerd و Docker Compose

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras

حذف همه تصاویر، کانتینرها و حجم‌ها

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

حذف تمام فایل‌های پیکربندی ویرایش‌شده هم باید به‌صورت دستی انجام شود.

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

 نصب داکر روی اوبونتو به روش apt Repository

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

۱. راه‌اندازی apt Repository داکر

 :Add Docker's official GPG key#
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.asc
 :Add the repository to Apt sources#
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

نصب نسخه‌ای خاص

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

: List the available versions#
apt-cache madison docker-ce | awk '{ print $3 }'
۵:۲۷.۱.۱-۱~ubuntu.24.04~noble
...۵:۲۷.۱.۰-۱~ubuntu.24.04~noble

حال نسخه موردنظر را انتخاب و با دستور زیر نصب کنید:

VERSION_STRING=5:27.1.1-1~ubuntu.24.04~noble
sudo apt-get install docker-ce=$VERSION_STRING docker-ce-cli=$VERSION_STRING containerd.io docker-buildx-plugin docker-compose-plugin

۳. تایید نصب داکر روی اوبونتو 

sudo docker run hello-world

این دستور یک Image آزمایشی را دانلود و در یک Container اجرا می‌کند. هنگامی‌که Container اجرا می‌شود، یک پیام تایید چاپ می‌کند و از محیط اسکریپت‌نویسی خارج می‌شود.

نکته: اگر هنگام اجرای داکر روی اوبونتو بدون root خطا دریافت می‌کنید، باید به گروه کاربران رجوع کنید. در این حالت گروه کاربری (User Group) داکر وجود دارد اما هیچ کاربری ندارد. به‌همین‌دلیل است که برای اجرای دستورات داکر باید از sudo استفاده کنید. پس به postinstall لینوکس بروید تا به کاربران غیرمجاز اجازه دهید دستورات داکر و سایر مراحل پیکربندی اختیاری را روی اوبونتو اجرا کنند.

بیشتر بخوانید: تفاوت داکر با ماشین مجازی چیست؟

نصب داکر روی اوبونتو از پکیج

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

  1. به سایت رسمی دانلود داکر برای اوبونتو بروید.
  2. نسخه اوبونتو مدنظرتان را در لیست پیش‌رو انتخاب کنید.
  3. به مسیر pool/stable/ بروید و معماری قابل‌اجرای هاست‌تان (amd64، armhf، arm64، یا s390x) را انتخاب کنید.
  4. فایل‌های 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
  1. حال باید پکیج‌های .deb را نصب کنید. پس مسیرهای جدول زیر را به‌جایی که پکیج‌ها را قرار داده‌اید اعمال کنید تا تک‌تک آن‌ها به‌روز شوند.
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

پس از اجرای این اسکریپت‌ها، Daemon Docker به‌طور خودکار اجرا می‌شود.

  1. با اجرای دستور hello-world به‌شکل زیر، نصب موفقیت‌آمیز Docker Engine را روی اوبونتو چک کنید.
sudo service docker start

نصب داکر روی اوبونتو با اسکریپت

Docker یک اسکریپت Convenience برای نصب داکر روی محیط‌های توسعه غیرتعاملی ارائه می‌دهد. اسکریپت فعلی برای محیط‌های Production توصیه نمی‌شود؛ اما برای ایجاد یک اسکریپت متناسب‌با نیازهای شما کاربردی است. کد منبع این اسکریپت متن باز است و می‌توانید آن را در ریپازیتوری docker-install گیت‌هاب پیدا کنید.

خرید سرور مجازی (vps)

سرعت بالا، پایداری تضمین‌شده و پشتیبانی ۲۴ ساعته می‌توانید با سرور مجازی ایران سرور تجربه کنید

سرور مجازی

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

نکته: می‌توانید اسکریپت را با دستور –dry-run اجرا کنید تا نحوه اجرای فرآیندها را هنگام فراخوانی اسکریپت ببینید:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh --dry-run

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

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
<...>

اکنون توانستید Docker Engine را با موفقیت روی اوبونتو نصب و راه‌اندازی کنید. 

سرویس docker به‌طور خودکار در توزیع‌های مبتنی‌بر دبیان پایه‌ریزی شده است. در توزیع‌های مبتنی‌بر RPM مانند CentOS، Fedora، RHEL یا SLES، باید آن را به‌صورت دستی با استفاده از systemctl یا فرمان سرویس مناسب راه بیندازید. 

اما دقت داشته باشید که در این حالت، کاربران غیرروت نمی‌توانند دستورات داکر را به‌طور پیش‌فرض اجرا کنند.

آنچه در نصب داکر روی اوبونتو خواندیم

نصب داکر روی اوبونتو بسیار ساده است و به سه روش انجام می‌شود: نصب با ریپازیتوری apt، نصب از روی پکیج و نصب داکر روی اوبونتو با اجرای اسکریپت‌های موجود در پلتفرم گیت‌هاب. هرکدام از روش‌ها باید با دقت کامل طی شده و نصب به‌درستی انجام شود. پس‌از نصب، برای تست موفقیت‌آمیز بودن مراحل، تصویر “hello-world” را با اسکریپت آن دانلود کنید.

سوالات متداولی که شما می‌پرسید

  1. چگونه داکر را روی اوبونتو نصب کنیم؟

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

  1. آیا اسکریپت‌های نصب داکر روی اوبونتو در پلتفرم گیت‌هاب معتبر هستند؟

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

منابع:

Docker Docs

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

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