نسخه جدید CentOS 8 در مقایسه با نسخه قبلی، عناصر نوآورانه زیادی را ارائه کرده است. یکی از تغییرات مهم، تصمیم برای عدم حمایت رسمی از Docker است. در عوض، RHE ابزارهای داخلی را برای ایجاد و مدیریت container image معرفی کرده است. این ابزار‌های داخلی که buildah و podman هستند، با Docker سازگارند؛ اما برای اجرا نیازی به معماری سرور/ کلاینت ندارند.

در این مقاله، با توجه به این تغییر اساسی، نحوه نصب Docker در CentOS 8 شرح داده شده است.

 

قبل از مطالعه مراحل نصب Docker در CentOS 8، از داشتن موارد زیر در سیستم خود اطمینان حاصل کنید:

  • سیستم عامل CentOS 8 نصب و قابل استفاده
  • یک حساب کاربری با امتیازات sudo
  • دسترسی به ترمینال
  • نصب کننده بسته نرم افزاری DNF (به طور پیش فرض در CentOS 8 موجود است)
  • ابزار مدیریت firewalld غیرفعال شده

مهم: اگرچه غیرفعال کردن ویژگی‌های امنیتی حیاتی پیشنهاد نمی‌شوند؛ ولیکن به دلیل جلوگیری ابزار مدیریت firewalld از DNS resolution در Docker container، تنها برای مدت زمان دنبال کردن این مقاله، مجبور به غیرفعال سازی آن خواهید بود.

 

این مطلب نیز ممکن است برای شما مفید باشد: دستور غیرفعالسازی فایروال در لینوکس

 

اضافه کردن مخزن Docker با استفاده از DNF

CentOS 8 از مدیریت بسته نرم افزاری YUM نسخه v4.0.4 استفاده می‌کند. این نسخه در حال حاضر از DNF (یعنی DANDified YUM) استفاده می‌نماید.

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

توجه: CentOS 8، دارای یک سیستم مدیریت نرم افزاری بسیار بهبود یافته است. فناوری DNF عملکرد را افزایش می‌دهد، APIهای تعریف شده‌ای دارد و از محتوای ماژولار، نرم افزار AppStreams برای ابر، container workload و CI/CD پشتیبانی می‌کند.

از DNF می‌توانید به منظور افزودن و فعال کردن مخزن رسمی Docker CE استفاده کنید. بدین منظور باید دستور زیر را در پنجره ترمینال خود وارد نمایید:

sudo dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo

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

 

sudo dnf repolist -v

اطلاعات ارائه شده در خروجی، تمام جزئیات مربوطه را ارائه می‌دهد.

 

برای نمایش تمام بسته‌های docker-ce موجود، دستور زیر را تایپ کنید:

dnf list docker-ce --showduplicates | sort -r

متأسفانه CentOS 8 نسخه‌های خاصی از بسته container.id را پشتیبانی نمی‌کند. این بدان معناست که فقط برخی از نسخه‌های docker-ce برای نصب در دسترس هستند.

 

دو راه برای حل این مشکل و نصب Docker در CentOS 8 وجود دارد که در ادامه شرح داده شده است.

 

نصب Docker CE در CentOS 8

گزینه 1: حذف بسته‌ها با وابستگی‌های شکسته

یک راه حل کارآمد این است که به سیستم CentOS 8 اجازه دهید، نسخه‌ای را که بهترین معیارها را دارد، با استفاده از دستور nobest-- نصب نماید:

sudo dnf install docker-ce --nobest

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

 

پس از وارد کردن y برای تأیید، سیستم اقدام به نصب Docker CE 18.06.3.ce-3.el7 می‌نماید.

 

اگر دقیق نگاه کنید، خواهید دید که نصب آخرین نسخه docker-ce را رد کرده است؛ زیرا معیارها را برآورده نمی‌کند.

 

گزینه 2: نصب بسته containerd.io به صورت دستی

یکی دیگر از گزینه‌های نصب Docker در CenOS 8 این است که بسته containerd.io را به صورت دستی نصب نمایید. این راه حل به شما امکان می‌دهد، آخرین نسخه docker-ce را نصب کنید.

بدین منظور از دستور زیر استفاده نمایید:

sudo dnf install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.10-3.2.el7.x86_64.rpm

پس از اینکه با وارد کردن y نصب را تأیید کردید؛ با موفقیت آخرین نسخه containerd.io برروی سیستم شما نصب می‌شود.

 

اکنون می‌توانید آخرین نسخه docker-ce را با یک فرمان ساده نصب کنید:

sudo dnf install docker-ce -y

خروجی زیر تأیید می‌کند که docker-ce-3:19.03.5-3.el7.x86_64 با موفقیت نصب شده است.

 

راه‌اندازی و آزمایشDocker

فعال سازی Docker

با استفاده از دستور زیر می‌توانید، سرویس Docker را فعال کرده و راه‌اندازی نمایید:

sudo systemctl enable --now docker

خروجی تأیید می‌کند که ما یک symlink ایجاد کرده‌ایم.

 

در مرحله بعد، از این دستور کوتاه برای تأیید اجرا و فعال بودن Docker استفاده کنید:

systemctl status docker

در خروجی، با مشاهده برچسب زمان و عبارت سبز رنگ active (running) مطمئن می‌شوید که Docker فعال است.

 

افزودن کاربر به گروه کاربر Docker

با دستور زیر می‌توانید، کاربر خود را به گروه docker اضافه نمایید:

sudo usermod -aG docker $USER
id $USER

خروجی دستور به صورت زیر خواهد بود.

 

غیرفعال سازی firewalld در CentOS 8

همانطور که قبلاً ذکر شد، باید firewalld را غیرفعال کنید تا DNS resolution داخل Docker container کار کند.

برای غیرفعال کردن firewalld در CentOS 8 کافیست دستور زیر را وارد نمایید:

sudo systemctl disable firewalld

خروجی تأیید می‌کند که سرویس غیرفعال شده است.

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

 

آزمایش نصب Docker با وارد کردن Test Container Image

برای آزمایش نصب، یک alpine docker container با سایز کم بارگیری نمایید:

docker pull alpine

سیستم آخرین نسخه image را بارگیری می‌کند.

 

بررسی کنید که آیا image موجود است:

docker images

در خروجی، سیستم، Docker imageهای شما را لیست می‌کند:

 

راه‌اندازی Alpine Container Image

از Docker برای اجرای container با image بارگیری شده استفاده کرده و سعی نمایید، یک دستور ساده apt update را انجام دهید:

docker run -it --rm alpine /bin/sh
/# apk update

خروجی تأیید می‌کند که container راه‌اندازی شده است.

در انتهای این مراحل، شما با موفقیت Docker را روی CentOS 8 نصب و پیکربندی کرده‌اید.

 

 

 

منبع:

phoenixnap