نصب داکر روی اوبونتو نیازمند داشتن پیشنیازهای آن است. البتهکه ما در این آموزش، بهشکل گامبهگام با استناد به وبسایت رسمی داکر این مراحل را آموزش میدهیم. آموزش پیشرو، از جدیدترین نسخههای اوبونتو و داکر در سال 2024 استفاده میکند.
پیش نیازهای نصب داکر روی اوبونتو
هشدار: قبل از نصب Docker، مطمئن شوید که پیامدهای امنیتی زیر و ناسازگاریهای فایروال را بررسی کردهاید.
1. اگر از ufw یا Firewalld برای مدیریت تنظیمات فایروال اوبونتو روی سرور استفاده میکنید، توجه داشته باشید که وقتی پورتهای Container را با استفاده از داکر در معرض دید قرار میدهید، این پورتها قوانین فایروال سرورتان را دور میزنند.
2. داکر فقط با iptables-nft و iptables-legacy سازگار است. قوانین فایروال ایجادشده با nft در سیستمی که داکر روی آن نصب شده باشد، پشتیبانی نمیشود. پس ابتدا مطمئن شوید که مجموعه قوانین فایروالی که استفاده میکنید، با iptables یا ip6tables ایجاد شدهاند و آنها را به زنجیره DOCKER-USER اضافه کنید.
پیش نیازهای سیستمعامل
برای نصب Docker Engine، به ورژن 64 بیتی یکی از این نسخههای اوبونتو زیر نیاز دارید:
- Ubuntu Noble 24.04 (LTS)
- Ubuntu Jammy 22.04 (LTS)
- Ubuntu Focal 20.04 (LTS)
Docker Engine برای اوبونتو با معماریهای x86_64 (یا amd64)، armhf، arm64، s390x و ppc64le (ppc64el) سازگار است.
بیشتر بخوانید: آموزش نصب داکر در ویندوز
حذف نسخههای قدیمی داکر از اوبونتو
قبل از نصب داکر روی اوبونتو باید پکیجهای متناقض را حذف کنید.
Distro Maintainers توزیعهای غیررسمی بستههای داکر را در APT ارائه میدهند. قبل از نصب نسخه رسمی Docker Engine، باید این بستهها را حذف کنید.
بستههای غیررسمی برای حذف عبارتند از:
- docker.io
- docker-compose
- docker-compose-v2
- docker-doc
- podman-docker
علاوهبراین، 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 نصب و بهروز کنید.
1. راهاندازی 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 استفاده کنید.
2. نصب پکیجهای داکر
نصب آخرین نسخه
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 }' 5:27.1.1-1~ubuntu.24.04~noble ...5:27.1.0-1~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
3. تایید نصب داکر روی اوبونتو
sudo docker run hello-world
این دستور یک Image آزمایشی را دانلود و در یک Container اجرا میکند. هنگامیکه Container اجرا میشود، یک پیام تایید چاپ میکند و از محیط اسکریپتنویسی خارج میشود.
نکته: اگر هنگام اجرای داکر روی اوبونتو بدون root خطا دریافت میکنید، باید به گروه کاربران رجوع کنید. در این حالت گروه کاربری (User Group) داکر وجود دارد اما هیچ کاربری ندارد. بههمیندلیل است که برای اجرای دستورات داکر باید از sudo استفاده کنید. پس به postinstall لینوکس بروید تا به کاربران غیرمجاز اجازه دهید دستورات داکر و سایر مراحل پیکربندی اختیاری را روی اوبونتو اجرا کنند.
نصب داکر روی اوبونتو از پکیج
اگر نمیتوانید از ریپازیتوری apt داکر برای نصب Docker Engine استفاده کنید، میتوانید فایل deb را برای نسخه اوبونتو هاستتان دانلود کرده مراحل نصب را بهشکل دستی پیش ببرید. در این حالت، هربار که میخواهید Docker Engine را ارتقا دهید، باید یک فایل جدید دانلود کنید.
- به سایت رسمی دانلود داکر برای اوبونتو بروید.
- نسخه اوبونتو مدنظرتان را در لیست پیشرو انتخاب کنید.
- به مسیر 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 را نصب کنید. پس مسیرهای جدول زیر را بهجایی که پکیجها را قرار دادهاید اعمال کنید تا تکتک آنها بهروز شوند.
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 بهطور خودکار اجرا میشود.
- با اجرای دستور hello-world بهشکل زیر، نصب موفقیتآمیز Docker Engine را روی اوبونتو چک کنید.
sudo service docker start sudo docker run hello-world
نصب داکر روی اوبونتو با اسکریپت
Docker یک اسکریپت Convenience برای نصب داکر روی محیطهای توسعه غیرتعاملی ارائه میدهد. اسکریپت فعلی برای محیطهای Production توصیه نمیشود؛ اما برای ایجاد یک اسکریپت متناسببا نیازهای شما کاربردی است. کد منبع این اسکریپت متن باز است و میتوانید آن را در ریپازیتوری docker-install گیتهاب پیدا کنید.
همیشه پیش از اجرای این اسکریپتها روی هاست خود، امن بودن آنها را چک کنید. قبل از نصب هم باید با خطرات و محدودیتهای احتمالی این اسکریپت آشنا باشید. خطرات و محدودیتهای این اسکریپتها بهشرح زیر هستند:
- برای اجرا به sudo Privileges یا root Privileges نیاز دارد؛
- سعی میکند توزیع و نسخه لینوکس شما را شناسایی و سیستم مدیریت پکیج را پیکربندی کند؛
- به شما اجازه نمیدهد که بسیاری از پارامترهای نصب را سفارشی کنید؛
- وابستگیها و توصیهها را بدون تایید شما، نصب میکند. این موضوع ممکن است بستهبه پیکربندی فعلی هاستتان، تعداد زیادی پکیج را نصب کند؛
- بهطور پیشفرض، اسکریپت آخرین نسخه پایدار Docker، Containerd و Runc را نصب میکند. هنگام استفاده از این اسکریپت ممکن است داکر، بهشکل غیرمنتظرهای مجبوربه ارتقا نسخه اصلی شود. همیشه قبلاز استقرار این اسکریپتها در سیستمهای Production خود، ارتقاها را در یک محیط آزمایشی یا ماشین مجازی تست کنید.
- این اسکریپت برای ارتقای نسخه داکر فعلی طراحی نشده است. هنگام استفاده از اسکریپت برای بهروزرسانی داکر موجود، ممکن است وابستگیها به نسخه موردانتظار بهروزرسانی نشوند. در نتیجه نسخههای قدیمی ایجاد میشوند.
نکته: میتوانید اسکریپت را با دستور –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 یا فرمان سرویس مناسب راه بیندازید.
اما دقت داشته باشید که در این حالت، کاربران غیرروت نمیتوانند دستورات داکر را بهطور پیشفرض اجرا کنند.
بیشتر بخوانید: آموزش نصب داکر در CentOS آشنایی با اجرای یک Docker Container
آنچه در نصب داکر روی اوبونتو خواندیم
نصب داکر روی اوبونتو بسیار ساده است و به سه روش انجام میشود: نصب با ریپازیتوری apt، نصب از روی پکیج و نصب داکر روی اوبونتو با اجرای اسکریپتهای موجود در پلتفرم گیتهاب. هرکدام از روشها باید با دقت کامل طی شده و نصب بهدرستی انجام شود. پساز نصب، برای تست موفقیتآمیز بودن مراحل، تصویر “hello-world” را با اسکریپت آن دانلود کنید.
سوالات متداولی که شما میپرسید
- چگونه داکر را روی اوبونتو نصب کنیم؟
نصب داکر روی اوبونتو به سه روش ریپازیتوری apt، پکیج و اسکریپت ممکن است.
- آیا اسکریپتهای نصب داکر روی اوبونتو در پلتفرم گیتهاب معتبر هستند؟
تا حدودی بله؛ اما همیشه باید پیشاز اجرای این اسکریپتها، حواستان را به دسترسیها و Privilegeها بدهید.
منابع: