تصور کنید برنامهای نوشتهاید که روی کامپیوتر شما بینقص کار میکند، اما وقتی آن را برای همکارتان میفرستید، با انواع خطاها مواجه میشود. داکر (Docker) دقیقاً برای حل این مشکل به وجود آمده است. اگر بخواهیم به زبان ساده بگوییم داکر چیست، باید بگوییم داکر یک پلتفرم است که به شما اجازه میدهد برنامههای خود را به همراه تمام نیازمندیهایشان (مثل کتابخانهها و تنظیمات) در یک بسته به نام کانتینر (Container) قرار دهید. این کانتینرها روی هر سیستمعامل (Operating System) لینوکسی یا ویندوزی که داکر روی آن نصب باشد، دقیقاً به یک شکل اجرا میشوند.
مهمترین مزایای داکر شامل ایزولهسازی، پایداری و سهولت مدیریت است. تفاوت کانتینر با ماشین مجازی در این است که کانتینرها برخلاف ماشینهای مجازی، یک سیستمعامل کامل را شبیهسازی نمیکنند، به همین دلیل بسیار سبکتر و سریعتر هستند. به همین دلیل، کانتینرها بسیار سبکتر، سریعتر و بهینهتر هستند. اگر به دنبال نصب داکر در لینوکس هستید، در این مقاله با آموزش نصب داکر در سیستمعاملهای مختلف لینوکس همراه ما باشید.
پیشنیازهای نصب داکر
قبل از شروع به نصب داکر، باید مطمئن شوید که سیستم شما حداقل شرایط لازم را دارد. پیش نیاز نصب داکر بسیار ساده است اما نادیده گرفتن آن میتواند فرآیند نصب را با مشکل مواجه کند.
مهمترین پیشنیازهای نصب داکر در لینوکس عبارتاند از:
- نسخه 64 بیتی لینوکس: داکر فقط روی نسخههای 64 بیتی سیستمعامل لینوکس (Linux) اجرا میشود. برای بررسی معماری سیستم خود میتوانید از دستور uname -m یا lscpu استفاده کنید. خروجی باید x86_64 یا amd64 باشد.
- دسترسی sudo: برای نصب داکر و اجرای دستورات سیستمی، به کاربری نیاز دارید که دسترسی sudo داشته باشد. در واقع شما باید بتوانید دستورات را با سطح دسترسی مدیر سیستم اجرا کنید.
- بهروزرسانی پکیجها: همیشه یک قدم مهم قبل از نصب هر نرمافزار جدیدی، بهروزرسانی لیست پکیجهای سیستمعامل است. این کار تضمین میکند که شما آخرین نسخههای امنیتی و نیازمندیها را دریافت میکنید. برای این کار در توزیعهای مبتنی بر دبیان (مثل اوبونتو) از دستور زیر استفاده کنید:
1 | sudo apt update && sudo apt upgrade |
و در توزیعهای مبتنی بر RHEL (مثل CentOS) از دستور زیر استفاده کنید:
1 | sudo yum update |
با بررسی این سه مورد، شما آماده شروع فرآیند اصلی نصب هستید.
آموزش گام به گام نصب داکر در لینوکس
اکنون که با پیشنیازها آشنا شدید، به بخش اصلی مقاله میرسیم. در ادامه، آموزش نصب داکر روی لینوکس را به صورت گامبه گام دنبال خواهیم کرد. از آنجایی که لینوکس (Linux) توزیعهای مختلفی دارد، ما فرآیند نصب داکر در لینوکس را برای محبوبترین توزیعها یعنی اوبونتو، دبیان و CentOS به صورت جداگانه توضیح میدهیم.
نصب داکر روی اوبونتو
اوبونتو یکی از محبوبترین توزیعها برای توسعهدهندگان است. برای نصب داکر روی اوبونتو، ما از مخزن رسمی داکر استفاده میکنیم تا همیشه آخرین نسخه پایدار را در اختیار داشته باشیم. برای مطالعه بیشتر در این زمینه میتوانید به مقاله “آموزش نصب داکر اوبونتو مراجعه کنید.
اما چرا نصب داکر روی اوبونتو تنها با یک دستور نیست؟ شاید فکر کنید نصب داکر باید با یک دستور ساده مثل sudo apt install docker انجام شود. اگرچه ممکن است پکیجی با این نام در مخازن پیشفرض اوبونتو وجود داشته باشد، اما این پکیج معمولاً قدیمی است و توسط تیم داکر نگهداری نمیشود. نصب از ریپازیتوری (Repository) رسمی داکر (Docker) تضمین میکند که شما نسخهی اصلی، بهروز و امن Docker Engine را دریافت میکنید. این فرآیند شامل چند مرحله است تا سیستم شما به این مخزن جدید اعتماد و پکیجها را از آنجا دریافت کند.
مراحل نصب داکر روی اوبونتو عبارتند از:
مرحله 1: نصب نیازمندیها
ابتدا، پکیجهایی را نصب میکنیم که به apt اجازه میدهند تا از یک مخزن از طریق HTTPS استفاده کند:
1 2 3 4 5 6 7 8 9 10 11 | sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release |
مرحله 2: اضافه کردن کلید GPG رسمی داکر
کلید GPG key یک امضای دیجیتال است که به سیستم شما اطمینان میدهد پکیجهایی که از مخزن داکر دانلود میکنید، واقعاً توسط تیم داکر ساخته شده و دستکاری نشدهاند. این یک گام امنیتی مهم است. دستور زیر را وارد کنید:
1 2 3 4 5 6 7 | sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg |
مرحله 3: راهاندازی ریپازیتوری داکر
حالا مخزن رسمی داکر را به لیست مخازن apt اضافه میکنیم. با این کار، هر بار که دستور apt update را اجرا میکنید، سیستم شما لیست پکیجهای موجود در مخزن داکر را نیز بررسی میکند.
1 2 3 4 5 6 7 8 9 10 11 | echo \ "deb [arch=$(dpkg --print-architecture) \ signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" \ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
مرحله 4: نصب Docker Engine
اکنون که همه چیز آماده است، لیست پکیجها را برای آخرین بار آپدیت میکنیم و سپس Docker Engine، CLI و containerd.io را نصب میکنیم. Containerd یک کامپوننت پایه است که وظیفه مدیریت چرخه حیات کانتینرها را بر عهده دارد.
1 2 3 4 5 | sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io \ docker-buildx-plugin docker-compose-plugin |
مرحله 5: تأیید نصب
برای اطمینان از این که داکر به درستی نصب شده است، میتوانید یک کانتینر آزمایشی به نام hello-world را اجرا کنید. این دستور یک ایمیج سبک را دانلود کرده و در یک کانتینر اجرا میکند:
1 | sudo docker run hello-world |
اگر پیامی مبنی بر موفقیتآمیز بودن اجرا مشاهده کردید، نصب داکر در لینوکس اوبونتو با موفقیت به پایان رسیده است.
نصب داکر روی دبیان
فرآیند نصب داکر روی دبیان بسیار شبیه به اوبونتو است، زیرا دبیان نیز از مدیر پکیج apt استفاده میکند. مراحل زیر را با دقت دنبال کنید.
مرحله 1: حذف نسخههای قدیمی
اگر نسخههای قدیمیتری از داکر روی سیستم شما نصب است، ابتدا آنها را با دستور زیر حذف کنید:
1 2 3 | sudo apt-get remove --purge docker docker-engine docker.io containerd runc sudo apt-get autoremove --purge |
مرحله 2: راهاندازی ریپازیتوری
ابتدا نیازمندیها را نصب کنید:
1 2 3 4 5 6 7 8 9 10 11 | sudo apt-get update sudo apt-get install --no-install-recommends \ ca-certificates \ curl \ gnupg \ lsb-release |
سپس، کلید GPG داکر را اضافه کنید:
1 2 3 4 5 6 7 | sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg |
و در نهایت، ریپازیتوری داکر را به سیستم اضافه کنید:
1 2 3 4 5 6 7 8 9 10 11 | echo \ "deb [arch=$(dpkg --print-architecture) \ signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/debian \ $(lsb_release -cs) stable" \ | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null |
مرحله 3: نصب Docker Engine
حالا با استفاده از دستورات زیر، داکر را نصب کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 | sudo apt-get update sudo apt-get install --no-install-recommends \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin |
مرحله 4: تأیید نصب
مانند اوبونتو، با اجرای کانتینر hello-world از صحت نصب اطمینان حاصل کنید:
1 | sudo docker run --rm hello-world |
نصب داکر روی CentOS
سیستمعامل CentOS که از خانواده RHEL است، از مدیر پکیج yum یا dnf استفاده میکند. فرآیند نصب در این توزیع کمی متفاوت است.
مرحله 1: حذف نسخههای قدیمی
ابتدا هر نسخه قدیمی از داکر را پاک کنید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | sudo yum remove -y docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine sudo yum autoremove -y |
مرحله 2: راهاندازی ریپازیتوری
برای نصب و مدیریت ریپازیتوریها در CentOS، از ابزار yum-utils استفاده میشود.
Bash
1 | sudo yum install -y yum-utils |
حالا ریپازیتوری رسمی داکر را اضافه کنید:
Bash
1 | sudo yum-config-manager \ |
1 2 3 | --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo |
با دستور زیر، مخزن را به نسخههای پایدار محدود کنید. این بخش اختیاری است.
Bash
1 2 3 4 5 6 7 | sudo sed -i 's|^enabled=1|enabled=0|' /etc/yum.repos.d/docker-ce.repo sudo yum-config-manager --reload sudo yum-config-manager \ --enable docker-ce-stable |
مرحله 3: نصب Docker Engine
اکنون میتوانید آخرین نسخه Docker Engine، containerd و ابزارهای کامپوز را نصب کنید:
1 2 3 4 5 6 7 8 9 10 11 | sudo yum install -y --setopt=obsoletes=0 \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin |
مرحله 4: فعالسازی و راهاندازی داکر
برخلاف دبیان و اوبونتو، در CentOS باید سرویس داکر را به صورت دستی راهاندازی و فعال کنید تا پس از هر بار ریبوت شدن سیستم، به صورت خودکار اجرا شود.
Bash
sudo systemctl daemon-reload
sudo systemctl enable –now docker
مرحله 5: تأیید نصب
در نهایت، با اجرای کانتینر hello-world نصب را تأیید کنید:
Bash
1 2 3 4 5 6 7 | sudo docker run --rm hello-world sudo systemctl status docker docker version docker info |
پیکربندی پس از نصب (Post-installation)
پس از نصب موفقیتآمیز داکر، چند مرحله پیکربندی اختیاری اما بسیار مفید وجود دارد که تجربه کار با داکر را بهبود میبخشد.
اجرای داکر بدون دستور sudo
بهطور پیشفرض، برای اجرای دستورات داکر به دسترسی ریشه (root) یا sudo نیاز دارید. این امر به دلیل مسائل امنیتی است، زیرا دیمن (daemon) داکر به سوکت یونیکس متصل میشود که مالک آن کاربر ریشه است. برای نصب داکر بدون sudo (بهتر است بگوییم اجرای داکر بدون sudo)، باید کاربر فعلی خود را به گروه (Group) داکر اضافه کنید. این گروه در حین نصب به صورت خودکار ایجاد میشود. سپس مراحل زیر را طی کنید:
مرحله 1: اضافه کردن کاربر به گروه docker
از دستور زیر استفاده کنید. به جای $USER میتوانید نام کاربری خود را قرار دهید، اما متغیر $USER بهصورت خودکار نام کاربری فعلی شما را جایگزین میکند.
Bash
1 | sudo usermod -aG docker $USER |
مرحله 2: اعمال تغییرات
برای اینکه این تغییرات اعمال شود، باید از سیستم خارج (log out) و دوباره وارد (log in) شوید، یا از دستور زیر برای فعالسازی عضویت در گروه جدید استفاده کنید:
Bash
1 | newgrp docker |
پس از این کار، میتوانید دستورات داکر را بدون نیاز به sudo اجرا کنید:
Bash
1 | docker run hello-world |
فعالسازی و بررسی سرویس داکر
همانطور که در بخش CentOS اشاره شد، مهم است که سرویس (Service) داکر را فعال کنید تا با هر بار راهاندازی مجدد سیستم، به طور خودکار اجرا شود.
برای فعالسازی سرویس داکر از دستور زیر استفاده کنید:
Bash
1 2 3 | sudo systemctl enable docker.service sudo systemctl enable containerd.service |
این دستورات تضمین میکنند که سرویسهای داکر و کانتینرد در بوت بعدی سیستم فعال خواهند بود.
برای بررسی وضعیت فعلی سرویس داکر، میتوانید از دستور status استفاده کنید:
Bash
1 | sudo systemctl status docker |
خروجی این دستور به شما نشان میدهد که آیا سرویس داکر فعال (active (running)) است یا خیر. همچنین لاگهای اخیر مربوط به سرویس را نیز نمایش میدهد.
بررسی تفاوت Docker Engine و Docker Desktop در لینوکس
وقتی صحبت از داکر در لینوکس میشود، دو گزینه اصلی پیش روی شماست: داکر انجین (Docker Engine) و داکر دسکتاپ (Docker Desktop). دانستن تفاوت این دو به شما کمک میکند تا ابزار مناسب را برای نیاز خود انتخاب کنید. برای شناخت بیشتر تفاوتها، بیایید ابتدا با هر یک از این دو داکر آشنا شویم.
Docker Engine چیست؟
Docker Engine همان داکری است که ما در این مقاله راهنمای نصب آن را قرار دادیم. داکر انجین یک برنامه کلاینت-سرور متن-باز است که شامل موارد زیر میشود:
- یک سرویس (دیمن) با نام dockerd
- یک رابط برنامهنویسی (API) که برنامهها از طریق آن با دیمن صحبت میکنند
- یک رابط خط فرمان (CLI) به نام docker
Docker Engine ابزار اصلی و سبک برای اجرای کانتینرها در سرورهای لینوکسی و محیطهای توسعه است. این ابزار به صورت مستقیم روی سیستمعامل لینوکس اجرا میشود و نیازی به مجازیسازی (Virtualization) اضافی ندارد.
Docker Desktop for Linux چیست؟
Docker Desktop یک برنامه کاربردی با رابط گرافیکی (GUI) است که تجربه کار با داکر را سادهتر میکند. این برنامه علاوه بر Docker Engine، شامل ابزارهای دیگری مانند Docker Compose، Kubernetes و BuildKit نیز میشود. نصب داکر دسکتاپ در لینوکس برای کاربرانی که به دنبال یک محیط یکپارچه و گرافیکی هستند، بسیار جذاب است.
تفاوتهای کلیدی Docker Engine و Docker Desktop for Linux
برای درک دقیقتر این تفاوتها، میتوانید موارد زیر را در جدول مقایسه کنید:
ویژگی | Docker Engine | Docker Desktop for Linux |
محیط | خط فرمان (CLI) | رابط گرافیکی (GUI) + CLI |
اجزا | داکر انجین، CLI، containerd | داکر انجین، Kubernetes، Docker Compose، GUI |
نصب | از طریق مخازن پکیج apt,yum)) | از طریق پکیج .deb یا .rpm |
نیاز به مجازیسازی | خیر (اجرای بومی روی لینوکس) | بله (یک ماشین مجازی سبک برای ایزولهسازی ایجاد میکند) |
مخاطب | سرورها، توسعهدهندگان حرفهای | توسعهدهندگان روی دسکتاپ، مبتدیان، تیمها |
نصب Docker Engine در لینوکس چه تفاوتی با Docker Desktop دارد؟
تفاوت اصلی در سادگی و اجزای همراه است. نصب Docker Engine یک فرآیند فنیتر است که به شما کنترل کامل روی اجزای نصبشده را میدهد و برای محیطهای سرور بهینهسازی شده است. در مقابل، نصب Docker Desktop for Linux یک پکیج واحد را نصب میکند که تمام ابزارها را به صورت یکپارچه ارائه میدهد و یک رابط کاربری گرافیکی برای مدیریت کانتینرها، ایمیجها و والیومها در اختیار شما قرار میدهد.
داکر دسکتاپ برای لینوکس مناسب است؟
بله، کاملاً. داکر دسکتاپ برای لینوکس برای توسعهدهندگانی که روی ماشین لینوکسی خود کد میزنند و میخواهند به سرعت بین پروژههای مختلف جابهجا شوند، یک ابزار فوقالعاده است. قابلیت یکپارچهسازی با کوبرنیتس (Kubernetes)، مدیریت آسان کانتینرها از طریق رابط گرافیکی و دسترسی به افزونهها (Extensions) از مزایای بزرگ آن است. با این حال، برای سرورهای محصول (Production Servers)، استفاده از Docker Engine به دلیل سبکی و کنترل بیشتر، همچنان انتخاب استاندارد است.
حل مشکلات احتمالی
گاهی اوقات، حتی با وجود استفاده از دقیقترین راهنماها، ممکن است در حین نصب با خطا مواجه شوید. در ادامه به برخی از مشکلات و خطاهای نصب داکر و راهحلهای آنها میپردازیم.
خطای Permission denied هنگام اجرای دستور docker
- مشکل: این رایجترین خطا پس از نصب است و زمانی رخ میدهد که شما تلاش میکنید دستورات داکر را بدون sudo اجرا کنید و کاربر خود را به گروه docker اضافه نکردهاید.
- راهحل: همانطور که در بخش «پیکربندی پس از نصب» توضیح داده شد، کاربر خود را با دستور sudo usermod -aG docker $USER به گروه docker اضافه کنید و سپس از سیستم خارج و دوباره وارد شوید.
خطای E: Unable to locate package docker-ce
- مشکل: این خطا در توزیعهای مبتنی بر دبیان/اوبونتو رخ میدهد و به این معنی است که مدیر پکیج apt نمیتواند پکیج docker-ce را در مخازنی پیدا کند که میشناسد.
- راهحل:
- مطمئن شوید که دستور sudo apt-get update را پس از اضافه کردن ریپازیتوری داکر اجرا کردهاید.
- بررسی کنید که آیا معماری سیستم شما (مثلاً arm64) توسط مخزن داکر پشتیبانی میشود یا خیر.
- محتوای فایل /etc/apt/sources.list.d/docker.list را بررسی کنید تا از صحت آن اطمینان حاصل کنید.
خطای مربوط به GPG key
- مشکل: خطاهایی مانند GPG error: … NO_PUBKEY … به این معنی است که کلید GPG به درستی اضافه نشده یا منقضی شده است.
- راهحل: مراحل مربوط به اضافه کردن GPG key را دوباره با دقت اجرا کنید. مطمئن شوید که دسترسی به اینترنت دارید و فایروال شما دسترسی به download.docker.com را مسدود نکرده است.
سرویس داکر اجرا نمیشود
- مشکل: پس از نصب، ممکن است سرویس داکر به صورت خودکار اجرا نشود.
- راهحل: از دستور sudo systemctl start docker برای راهاندازی دستی سرویس استفاده کنید. سپس با sudo systemctl status docker وضعیت آن را بررسی و لاگها را برای یافتن علت مشکل مطالعه کنید. معمولاً لاگها اطلاعات خوبی درباره خطاهای پیکربندی ارائه میدهند.
جمعبندی و مراحل بعدی
در این مقاله، ما یک راهنمای جامع برای نصب داکر در توزیعهای مختلف لینوکس (اوبونتو، دبیان و CentOS) ارائه دادیم. از پیشنیازها و نصب گامبهگام گرفته تا پیکربندیهای پس از نصب و حل مشکلات رایج، تمام جنبههای کلیدی پوشش داده شد. همچنین تفاوت بین Docker Engine و Docker Desktop را بررسی کردیم تا بتوانید بهترین ابزار را برای نیاز خود انتخاب کنید.
اما پس از نصب داکر چه باید کرد؟ اکنون که داکر روی سیستم شما نصب و آماده به کار است، دنیایی از امکانات پیش روی شماست. اولین قدمها برای شروع کار با داکر عبارتند از:
- کشیدن (Pull) یک ایمیج داکر (Docker Image): ایمیجها قالبهایی هستند که برای ساخت کانتینرها استفاده میشوند. شما میتوانید یک ایمیج آماده را از Docker Hub (مخزن عمومی ایمیجهای داکر) بکشید. برای مثال، بیایید ایمیج رسمی وبسرور Nginx را بکشیم:
1 | docker pull nginx |
- اجرای اولین کانتینر (Container): حالا که ایمیج را دارید، میتوانید یک کانتینر از روی آن بسازید و اجرا کنید. دستور زیر یک کانتینر Nginx را در پسزمینه اجرا میکند و پورت 80 کانتینر را به پورت 8080 سیستم شما متصل میکند:
1 | docker run --name my-nginx-server -d -p 8080:80 nginx |
حالا اگر در مرورگر خود آدرس http://localhost:8080 را باز کنید، صفحه خوشآمدگویی Nginx را خواهید دید.
- یادگیری دستورات بیشتر: با دستوراتی مانند docker ps (برای دیدن کانتینرهای در حال اجرا)، docker images (برای دیدن ایمیجهای دانلود شده) و docker stop <container_name> (برای متوقف کردن یک کانتینر) آشنا شوید.
قدم بعدی شما میتواند یادگیری مفاهیم پیشرفتهتر باشد. برای این منظور، مطالعه مقاله آموزش ساخت کانتینر داکر را به شما پیشنهاد میکنیم تا یاد بگیرید چگونه ایمیجهای اختصاصی خود را برای برنامههایتان بسازید. اگر شما هم در مورد نصب داکر در لینوکس تجربه یا سوالی دارید، حتماً از بخش نظرات با تجربیات و سوالات خود را با ما به اشتراک بگذارید.
بدون دیدگاه