آیا تا به حال با چالش اجرای برنامههای مختلف روی سیستمهای متفاوت مواجه شدهاید؟ تصور کنید برنامهای که روی سیستم توسعه شما بهخوبی کار میکند، در محیط تولید با خطا مواجه میشود. داکر (Docker) راهحلی انقلابی برای این مشکل است که با ایجاد محیطهای ایزوله و یکسان، اطمینان میدهد برنامهها در هر محیطی دقیقاً به همان شکل اجرا شوند.این پلتفرم متنباز به شما این امکان را میدهد برنامهها را درون کانتینرها (Containers) توسعه، اجرا و مدیریت کنید. این ویژگی،Docker را به ابزاری ضروری برای توسعهدهندگان، مدیران سیستم و متخصصان DevOps تبدیل کرده است. در این راهنمای جامع، مراحل نصب Docker روی سیستمعامل CentOS را به صورت گامبهگام آموزش خواهیم داد. این آموزش هم برای CentOS 7 و هم برای CentOS 8 کاربرد دارد و تمام جنبههای مهم از پیشنیازها گرفته تا پیکربندیهای پیشرفته را پوشش میدهد.
پیشنیازهای کلیدی قبل از نصب Docker روی CentOS
قبل از شروع فرآیند نصب Docker، باید اطمینان حاصل کنید که سیستم شما پیشنیازهای لازم را دارد. این پیشنیازها شامل نسخه مناسب سیستمعامل، بهروزرسانی پکیجها و دسترسیهای لازم میشود که در زیر به آنها میپردازیم.
1.بررسی نسخه سیستمعامل CentOS
Docker نیازمند نسخه 64 بیتی CentOS است و بهطور رسمی روی CentOS 7، CentOS 8 و CentOS Stream 9 پشتیبانی میشود. برای بررسی نسخه CentOS خود، میتوانید از دستور زیر استفاده کنید:
1 2 3 | bash cat /etc/centos-release |
این دستور نسخه دقیق CentOS شما را نمایش میدهد. همچنین، Docker نیازمند هسته لینوکس با نسخه 3.10 یا بالاتر است که معمولاً در نسخههای استاندارد CentOS 7 و 8 CentOS به صورت پیشفرض وجود دارد.
2.بهروزرسانی سیستم (Update System)
بهروزرسانی سیستم قبل از نصب هر نرمافزار جدید، یک اقدام ضروری است که احتمال بروز مشکلات ناسازگاری را کاهش میدهد. برای بهروزرسانی سیستم CentOS خود، از دستورات زیر استفاده کنید:
برای CentOS 7:
1 2 3 4 5 | bash sudo yum check-update sudo yum update -y |
برای CentOS 8:
1 2 3 4 5 | bash sudo dnf check-update sudo dnf update -y |
این دستورات، تمام پکیجهای نصب شده روی سیستم شما را به آخرین نسخه بهروزرسانی میکنند. -y به معنای تأیید خودکار تمام پرسشهای احتمالی است.
3.حذف نسخههای قدیمی Docker (اختیاری)
اگر قبلاً نسخههای قدیمی Docker را روی سیستم خود نصب کردهاید، باید آنها را قبل از نصب نسخه جدید حذف کنید تا از تداخل احتمالی جلوگیری شود. برای حذف نسخههای قدیمی Docker، از دستور زیر استفاده کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | bash sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine |
این دستور تمام نسخههای قبلی Docker را از سیستم شما حذف میکند. توجه داشته باشید که این دستور، تصاویر، کانتینرها و حجمهای ذخیره شده در /var/lib/docker/ را حذف نمیکند.
4.دسترسی کاربر (User Access)
برای نصب و استفاده از Docker، شما نیاز به دسترسیهای مدیریتی دارید. اطمینان حاصل کنید که کاربر شما دسترسی sudo یا دسترسی root دارد. اگر با کاربر غیر -root کار میکنید، باید قبل از هر دستور، از sudo استفاده کنید.
روشهای نصب Docker روی CentOS
برای نصب Docker روی CentOS، روشهای مختلفی وجود دارد که در ادامه به آنها میپردازیم.
نصب Docker CE (Community Edition) با استفاده از مخزن رسمی (Recommended)
اگرچه برای نصب Docker روی CentOS، چندین روش وجود دارد، اما توصیه میشود از مخزن رسمی CentOS استفاده کنید تا همیشه به آخرین نسخه دسترسی داشته باشید.
مرحله 1: نصب پکیجهای مورد نیاز
ابتدا باید پکیجهای مورد نیاز برای استفاده از مخزن Docker را با دستور زیر نصب کنید:
1 2 3 | bash sudo yum install -y yum-utils device-mapper-persistent-data lvm2 |
این دستور، پکیج yum-utils را نصب میکند که ابزار yum-config-manager را فراهم میکند؛ همچنین پکیجهای device-mapper-persistent-data و lvm2 را که برای درایور ذخیرهسازی Docker مورد نیاز هستند، نصب میکند.
مرحله 2: افزودن مخزن (Repository) رسمی Docker
حالا باید مخزن رسمی Docker را به سیستم خود اضافه کنید:
1 2 3 | bash sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |
این دستور، مخزن Docker CE را به سیستم شما اضافه میکند و به شما این امکان را میدهد که Docker را از طریق مدیر بسته yum نصب کنید.
مرحله 3: نصب Docker Engine
اکنون میتوانید با دستور زیر Docker Engine را نصب کنید:
1 2 3 | bash sudo yum install docker-ce docker-ce-cli containerd.io |
این دستور، آخرین نسخه Docker CE و اجزای مورد نیاز آن را نصب میکند. اگر میخواهید نسخه خاصی از Docker را نصب کنید، میتوانید ابتدا نسخههای موجود را با دستور yum list docker-ce –showduplicates | sort -r مشاهده کنید و سپس نسخه مورد نظر را با مشخص کردن شماره نسخه نصب کنید.
نصب داکر روی Centos 7 با استفاده از بسته
اگر به هر دلیلی نمیخواهید از مخزن رسمی Docker استفاده کنید، میتوانید Docker را مستقیماً با استفاده از فایل RPM نصب کنید:
به آدرس https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ بروید و فایل RPM مربوط به نسخه Docker مورد نظر خود را دانلود کنید.
با استفاده از دستور زیر، فایل RPM را نصب کنید:
1 2 3 | bash sudo yum install /path/to/package.rpm |
این روش برای مواردی مناسب است که دسترسی به اینترنت محدود است یا میخواهید نسخه خاصی از Docker را نصب کنید.
مدیریت سرویس Docker در CentOS
پس از نصب Docker، باید سرویس آن را مدیریت کنید تا بتوانید از آن استفاده کنید.
فعالسازی و راهاندازی سرویس Docker
برای شروع سرویس Docker، از دستور زیر استفاده کنید:
1 2 3 | bash sudo systemctl start docker |
برای اطمینان از اینکه Docker پس از هر بار راهاندازی سیستم به طور خودکار اجرا شود، از دستور زیر استفاده کنید:
1 2 3 | bash sudo systemctl enable docker |
این دستور، Docker را به لیست سرویسهایی که در زمان بوت سیستم اجرا میشوند، اضافه میکند.
بررسی وضعیت سرویس Docker
برای بررسی وضعیت فعلی سرویس Docker، میتوانید از دستور زیر استفاده کنید:
1 2 3 | bash sudo systemctl status docker |
این دستور، اطلاعاتی در مورد وضعیت فعلی سرویس Docker، از جمله اینکه آیا در حال اجراست یا خیر، نمایش میدهد.
اجرای دستورات Docker بدون نیاز به sudo (مدیریت گروه Docker)
به طور پیشفرض، دستورات Docker نیاز به دسترسی root دارند. برای اجرای دستورات Docker بدون نیاز به sudo، میتوانید کاربر فعلی را به گروه docker اضافه کنید:
- اگر گروه داکر وجود ندارد، دستور زیر را اجرا کنید:
1 2 3 | bash sudo groupadd docker |
- برای افزودن کاربر فعلی به گروه docker، از دستور زیر استفاده کنید:
1 2 3 | bash sudo usermod -aG docker $USER |
- برای اعمال تغییرات گروه Docker، دستور زیر را اجرا کنید:
1 2 3 | bash newgrp docker |
پس از انجام این مراحل، میتوانید دستورات Docker را بدون استفاده از sudo اجرا کنید. توجه داشته باشید که این کار، امنیت سیستم شما را تحت تأثیر قرار میدهد، زیرا به کاربر اجازه میدهد دستوراتی را اجرا کند که معادل دسترسی root هستند.
تست نصب Docker و اجرای اولین کانتینر در CentOS
پس از نصب و راهاندازی Docker، باید آن را تست کنید تا از صحت نصب اطمینان حاصل کنید. برای این کار، موارد زیر را دنبال کنید:
بررسی نسخه Docker نصب شده
برای بررسی نسخه Docker نصب شده، از دستور زیر استفاده کنید:
1 2 3 | bash docker --version |
یا برای اطلاعات بیشتر، از دستور زیر استفاده کنید:
1 2 3 | bash docker version |
این دستورات، اطلاعاتی در مورد نسخه Docker نصب شده روی سیستم شما نمایش میدهند.
اجرای کانتینر نمونه hello-world
برای تست کامل نصب Docker، میتوانید یک کانتینر نمونه به نام hello-world را با دستور زیر اجرا کنید:
1 2 3 | bash docker run hello-world |
این دستور، ابتدا تصویر hello-world را از Docker Hub دانلود میکند (اگر قبلاً دانلود نشده باشد) و سپس یک کانتینر از آن ایجاد و اجرا میکند. اگر همه چیز درست نصب شده باشد، پیامی مبنی بر موفقیتآمیز بودن نصب Docker نمایش داده میشود.
وقتی این دستور را اجرا میکنید، Docker مراحل زیر را انجام میدهد:
- داکر کلاینت (Docker Client) با داکر دیمون (docker daemon) ارتباط برقرار میکند.
- داکر دیمون تصویر “hello-world” را از داکر هاب (Docker Hub) دانلود میکند.
- داکر دیمون یک کانتینر جدید از آن تصویر ایجاد میکند.
- داکر دیمون خروجی را به داکر کلاینت ارسال میکند، که آن را در ترمینال شما نمایش میدهد.
این تست ساده تأیید میکند که Docker به درستی نصب شده است و میتواند کانتینرها را اجرا کند.
پیکربندیهای مهم پس از نصب (پیکربندی داکر)
پس از نصب Docker، میتوانید تنظیمات مختلف زیر را برای بهینهسازی عملکرد آن انجام دهید.
1.تنظیمات شبکه در داکر (Docker Networking)
Docker به طور پیشفرض یک شبکه پل (bridge) به نامdocker0 ایجاد میکند که کانتینرها از طریق آن با یکدیگر و با میزبان ارتباط برقرار میکنند. برای مشاهده شبکههای Docker موجود، میتوانید از دستور زیر استفاده کنید:
1 2 3 | bash docker network ls |
برای ایجاد یک شبکه جدید، دستور زیر را اجرا کنید:
1 2 3 | bash sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin |
این دستورات به شما این امکان را میدهند تا شبکههای Docker را مدیریت کنید و کانتینرها را به شبکههای مختلف متصل کنید.
2.مدیریت ذخیرهسازی در داکر (Docker Storage / Docker Volumes)
حجمهای داکر (Docker Volumes)، مکانیزم ترجیحی برای ذخیرهسازی دادههای تولید شده توسط کانتینرها هستند. برای ایجاد یک حجم جدید، میتوانید از دستور زیر استفاده کنید:
1 2 3 | bash docker volume create my_volume |
برای مشاهده حجمهای موجود، از دستور زیر استفاده کنید:
1 2 3 | bash docker volume ls |
و برای استفاده از یک حجم در یک کانتینر، دستور زیر را اجرا کنید:
1 2 3 | bash docker run -v my_volume:/path/in/container image_name |
حجمها نسبت به نوشتن مستقیم داده در کانتینر مزایای زیادی دارند، از جمله سهولت پشتیبانگیری، امکان اشتراکگذاری بین چندین کانتینر و عملکرد بهتر.
3.تنظیمات فایروال (Firewall) برای Docker
اگر از فایروال در سیستم CentOS خود استفاده میکنید (مانند firewalld)، باید تنظیماتی را انجام دهید تا Docker بتواند به درستی کار کند. برای پیکربندی firewalld به منظور کار با Docker، میتوانید مراحل زیر را دنبال کنید:
1.تعریف رابط پل Docker بهعنوان یک منطقه اعتماد شده:
1 2 3 | bash sudo firewall-cmd --permanent --zone=trusted --change-interface=docker0 |
2پیکربندی سرویسهای firewalld:
1 2 3 | bash sudo firewall-cmd --permanent --zone=trusted --add-service=docker |
3.بارگذاری مجدد firewalld برای اعمال تغییرات:
1 2 3 | bash sudo firewall-cmd --reload |
این تنظیمات به Docker اجازه میدهند تا بدون تداخل با فایروال، ترافیک شبکه را مدیریت کند.
عیبیابی مشکلات رایج (خطاهای رایج هنگام نصب Docker روی CentOS)
در طول فرآیند نصب و استفاده از Docker، ممکن است با مشکلاتی مواجه شوید. در این بخش، برخی از رایجترین مشکلات و راهحلهای آنها را بررسی میکنیم.
خطای عدم اتصال به Docker daemon
یکی از رایجترین خطاها، پیام “Cannot connect to the Docker daemon” است. این خطا معمولاً به یکی از دلایل زیر رخ میدهد:
1.سرویس Docker در حال اجرا نیست. دستور زیر را اجرا کنید:
1 2 3 | bash sudo systemctl start docker |
2.کاربر فعلی عضو گروه docker نیست. برای رفع این مشکل، با دستور زیر کاربر خود را به گروه Docker اضافه کنید:
1 2 3 4 5 | bash sudo usermod -aG docker $USER newgrp docker |
مشکل در سوکت Docker. برای رفع مشکل، دستور زیر را اجرا کنید:
1 2 3 | bash sudo chown root:docker /var/run/docker.sock |
این راهحلها معمولاً مشکل عدم اتصال به دیمون داکر را برطرف میکنند.
مشکلات مربوط به مخزن (Repository issues)
گاهی اوقات، ممکن است با مشکلاتی در دسترسی به مخزن Docker مواجه شوید. برای رفع این مشکلات، میتوانید:
- اتصال اینترنت خود را بررسی کنید.
- مخزن Docker را با دستور زیر مجدداً اضافه کنید:
1 2 | bash sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo |
کش yum را با دستور زیر پاک کنید:
1 2 3 4 5 | bash sudo yum clean all sudo yum makecache |
این اقدامات معمولاً مشکلات مربوط به مخزن را برطرف میکنند.
خطاهای مربوط به وابستگیها (Dependency errors)
در برخی موارد، ممکن است با خطاهای مربوط به وابستگیها مواجه شوید. برای رفع این مشکلات:
1.سیستم خود را با دستور زیر بهروزرسانی کنید:
1 2 3 | bash sudo yum update -y |
2.پکیجهای مورد نیاز را با اجرای این دستور نصب کنید:
1 2 3 | bash sudo yum install -y yum-utils device-mapper-persistent-data lvm2 |
3.در صورت نیاز، با دستور زیر نسخه خاصی از containerd را نصب کنید:
1 2 3 4 5 | bash sudo yum install https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm |
این اقدامات معمولاً مشکلات وابستگی را برطرف میکنند.
نکات مربوط به امنیت داکر (اشاره اولیه)
امنیت در Docker بسیار مهم است و باید به آن توجه ویژهای داشته باشید. برخی از نکات اولیه امنیتی عبارتند از:
- هرگز سوکت Docker را در شبکه عمومی قرار ندهید.
- از اجرای کانتینرها به عنوان کاربر root خودداری کنید.
- از پروفایلهای امنیتی مانند seccomp یا AppArmor استفاده کنید.
- منابع کانتینرها را محدود کنید (حافظه، CPU، فایل دسکریپتورها).
- سیستم فایل کانتینرها را به صورت “فقط خواندنی” (only readable) تنظیم کنید.
رعایت این نکات امنیتی، خطر حملات و آسیبپذیریها را کاهش میدهد.
آپدیت Docker روی CentOS (آپدیت داکر روی CentOS)
بهروزرسانی منظم Docker به آخرین نسخه، برای استفاده از ویژگیهای جدید و رفع مشکلات امنیتی ضروری است. برای بهروزرسانی Docker روی CentOS، میتوانید از دستورات زیر استفاده کنید:
1 2 3 4 5 | bash sudo yum check-update sudo yum update docker-ce docker-ce-cli containerd.io |
این دستورات، داکر و اجزای آن را به آخرین نسخه موجود در مخزن بهروزرسانی میکنند. پس از بهروزرسانی، باید سرویس Docker را مجدداً راهاندازی کنید:
1 2 3 | bash sudo systemctl restart docker |
برای اطمینان از موفقیتآمیز بودن بهروزرسانی، میتوانید نسخه فعلی Docker را بررسی کنید:
1 2 3 | bash docker version |
بهروزرسانی منظم Docker، امنیت و پایداری سیستم شما را افزایش میدهد.
چگونه Docker را به طور کامل از CentOS حذف کنیم؟
در برخی موارد، ممکن است نیاز داشته باشید داکر را به طور کامل از سیستم خود حذف کنید. برای این کار، مراحل زیر را دنبال کنید:
متوقف کردن سرویسهای Docker
ابتدا باید سرویس Docker را متوقف کنید:
1 2 3 | bash sudo systemctl stop docker |
این دستور، سرویس Docker را متوقف میکند و از اجرای آن در پسزمینه جلوگیری میکند.
1.حذف پکیجهای Docker
بعد از متوقف کردن سرویسهای Docker، میتوانید تمام پکیجهای مرتبط با Docker را حذف کنید:
1 2 3 | bash sudo yum remove docker-ce docker-ce-cli containerd.io |
این دستور، تمام پکیجهای اصلی Docker را از سیستم شما حذف میکند. همچنین میتوانید پکیجهایی را که به عنوان وابستگی Docker نصب شدهاند اما دیگر مورد نیاز نیستند، با دستور زیر حذف کنید:
1 2 3 | bash sudo yum autoremove |
2.حذف ایمیجها، کانتینرها و Volume ها (با احتیاط)
حذف پکیجهای Docker، به طور خودکار تصاویر، کانتینرها و حجمهای ایجاد شده توسط Docker را حذف نمیکند. برای حذف این موارد، میتوانید دستورات زیر را اجرا کنید:
1 2 3 4 5 | bash sudo rm -rf /var/lib/docker sudo rm -rf /var/lib/containerd |
توجه داشته باشید که این دستورات، تمام دادههای ذخیره شده در تصاویر، کانتینرها و حجمهای Docker را حذف میکنند، بنابراین با احتیاط از آنها استفاده کنید.
همچنین، اگر گروه Docker را ایجاد کردهاید، میتوانید آن را با دستور زیر حذف کنید:
1 2 3 | bash sudo groupdel docker |
پس از انجام این مراحل، Docker به طور کامل از سیستم شما حذف میشود.
نتیجهگیری
در این راهنمای جامع، مراحل نصب، پیکربندی و مدیریت Docker روی سیستمعامل CentOS را به صورت گامبهگام آموزش دادیم. ما پیشنیازهای نصب، روشهای مختلف نصب، مدیریت سرویس Docker، تست نصب، پیکربندیهای مهم، عیبیابی مشکلات رایج، بهروزرسانی و حذف Docker را پوشش دادیم. Docker یک ابزار قدرتمند برای توسعه، اجرا و مدیریت برنامهها در محیطهای کانتینری است که مزایای زیادی از جمله قابلیت حمل، کارایی و ایزولهسازی را فراهم میکند. با استفاده از داکر میتوانید برنامههای خود را در هر محیطی با اطمینان اجرا کنید.
امیدواریم این راهنما به شما در نصب و استفاده از Docker روی CentOS کمک کرده باشد. اگر سؤالی دارید یا با مشکلی مواجه شدید، میتوانید به مستندات رسمیDocker مراجعه یا سوال خود را در بخش نظرات این مقاله مطرح کنید.
به یاد داشته باشید که یادگیری Docker یک سفر مداوم است و با تمرین و تجربه، میتوانید مهارتهای خود را در این زمینه افزایش دهید. پس از نصب موفقیتآمیز Docker، میتوانید به یادگیری مفاهیم پیشرفتهتر مانند Docker Compose، Docker Swarm یا Kubernetes بپردازید تا بتوانید برنامههای پیچیدهتر را در محیطهای کانتینری مدیریت کنید.
سوالات متداول
- آیا میتوان Docker را روی CentOS 6 نصب کرد؟
بله، امکان نصب Docker روی CentOS 6 وجود دارد، اما به دلیل قدیمی بودن CentOS 6 و نیاز به بهروزرسانی هسته (kernel) ممکن است کمی پیچیده باشد.
- آیا برای نصب Docker روی CentOS نیاز به فعالسازی مخزن extras هست؟
بله، مخزن centos-extras باید فعال باشد تا بتوانید Docker را نصب کنید.
- آیا میتوان Docker را بدون دسترسی روت روی CentOS اجرا کرد؟
بله، با اضافه کردن کاربر به گروه docker میتوانید بدون sudo از Docker استفاده کنید.
- چگونه میتوانم مطمئن شوم Docker به درستی روی CentOS نصب شده است؟
اجرای دستور docker run hello-world بهترین روش برای تست صحت نصب Docker است.
بدون دیدگاه