
نصب داکر (Docker) در اوبونتو ۲۴٫۰۴ (Noble Nindala) فرآیندی استاندارد و حیاتی برای توسعهدهندگان و مدیران سیستم است که امکان اجرای برنامهها در محیطهای ایزوله و قابل حمل (کانتینرها) را فراهم میکند. این راهنما به شما کمک میکند تا به سادگی و با جزئیات کامل، Docker Engine را روی سیستم اوبونتو ۲۴٫۰۴ خود نصب کرده و آماده استفاده شوید.
پیشنیازهای لازم برای نصب
برای آغاز فرآیند نصب داکر در سیستم عامل اوبونتو نسخهی ۲۴٫۰۴، اطمینان از وجود برخی پیشنیازهای اساسی ضروری است. اولین و مهمترین پیشنیاز، دسترسی به یک ترمینال در سیستم اوبونتو شماست. تمامی دستورات و مراحل نصب از طریق خط فرمان انجام خواهند شد. همچنین، شما نیاز به یک کاربر غیر ریشه (non-root user) با امتیازات sudo دارید. این امر برای اجرای دستورات مدیریتی که نیازمند دسترسی سطح بالا هستند، بدون نیاز به ورود مستقیم به حساب ریشه، الزامی است. استفاده از sudo امنیت سیستم شما را افزایش میدهد. اتصال پایدار و فعال به اینترنت نیز یک پیشنیاز حیاتی است، زیرا بستههای نرمافزاری داکر و وابستگیهای آنها باید از مخازن آنلاین دانلود شوند. اطمینان حاصل کنید که فایروال سیستم شما (مانند UFW) به گونهای تنظیم شده باشد که امکان دسترسی برای دانلود و ارتباطات داکر را فراهم کند، هرچند تنظیمات پیشفرض معمولاً مشکلی ایجاد نمیکنند. در نهایت، اطمینان از اینکه سیستم شما حداقل سختافزار مورد نیاز برای اجرای داکر و کانتینرها را دارد (مانند مقدار کافی رم و فضای دیسک) نیز توصیه میشود، هرچند داکر نسبتاً سبک است اما بار کاری کانتینرها میتواند منابع قابل توجهی مصرف کند. با فراهم بودن این موارد، میتوانید با اطمینان خاطر به مراحل بعدی نصب بپردازید.
بهروزرسانی سیستم عامل اوبونتو
پیش از نصب هر نرمافزار جدیدی، بهخصوص ابزارهای سیستمی مانند داکر، اکیداً توصیه میشود که سیستم عامل اوبونتو خود را بهروزرسانی کنید. این کار تضمین میکند که تمامی بستههای موجود بر روی سیستم شما به آخرین نسخههای پایدار خود ارتقا یافتهاند و هرگونه مشکلات امنیتی یا ناسازگاری احتمالی با بستههای جدید برطرف شده است. فرآیند بهروزرسانی شامل دو مرحله اصلی است: اول، بهروزرسانی فهرست بستههای موجود در مخازن نرمافزاری و دوم، ارتقاء بستههای نصب شده به آخرین نسخههای موجود در آن مخازن. برای انجام این کار، ترمینال را باز کرده و دستورات زیر را به ترتیب اجرا کنید. دستور اول، `sudo apt update`، با اتصال به مخازن پیکربندی شده در سیستم شما، فهرست بستههای موجود و اطلاعات مربوط به نسخههای آنها را بهروزرسانی میکند. این کار باعث میشود سیستم شما از وجود نسخههای جدیدتر بستههای نصب شده مطلع شود. پس از آن، دستور `sudo apt upgrade -y` بستههایی که نیاز به بهروزرسانی دارند را دانلود و نصب میکند. سوییچ `-y` باعث میشود که در فرآیند نصب، سیستم بدون نیاز به تأیید دستی شما، اقدام به دانلود و نصب بستهها کند. اجرای این دستورات، محیطی تمیز و بهروز شده را برای نصب داکر فراهم میکند و احتمال بروز خطا در مراحل بعدی را به حداقل میرساند. این یک گام پیشگیرانه حیاتی در هر فرآیند نصب نرمافزار در لینوکس است.
sudo apt update
sudo apt upgrade -y
نصب Docker Engine
نصب Docker Engine، که شامل Daemon داکر، Docker CLI (ابزار خط فرمان) و Containerd (موتور اجرای کانتینر) است، اصلیترین بخش این آموزش محسوب میشود. داکر روشهای مختلفی برای نصب ارائه میدهد، اما مطمئنترین و توصیهشدهترین روش، نصب از طریق مخازن رسمی داکر است. این روش تضمین میکند که شما آخرین نسخههای پایدار و امن داکر را دریافت میکنید و بهروزرسانیهای آینده نیز به سادگی در دسترس خواهند بود. نصب از مخازن رسمی داکر چند مرحله دارد که شامل اضافه کردن کلید GPG داکر برای تأیید اصالت بستهها، تنظیم مخزن APT داکر برای نسخهی اوبونتو ۲۴٫۰۴ و در نهایت نصب خود بستههای Docker Engine و ابزارهای مرتبط است. این فرآیند به سیستم مدیریت بسته APT در اوبونتو اجازه میدهد تا بستههای داکر را شناسایی، دانلود و نصب کند. برخلاف نصب از طریق اسکریپتهای راحت (convenience scripts) که ممکن است برای تست یا محیطهای غیرتولیدی مناسب باشند، نصب از مخازن رسمی کنترل بیشتری بر نسخه نصب شده و مسیر بهروزرسانیها فراهم میکند. پس از اتمام موفقیتآمیز این مراحل، Docker Engine آماده اجرا بر روی سیستم اوبونتو ۲۴٫۰۴ شما خواهد بود. در ادامه به جزئیات هر یک از این زیرمراحل میپردازیم.
اضافه کردن کلید GPG داکر
برای اطمینان از اینکه بستههای نرمافزاری داکر که از مخازن رسمی دانلود میکنید، دستکاری نشدهاند و واقعاً توسط داکر منتشر شدهاند، نیاز به اضافه کردن کلید GPG (GNU Privacy Guard) داکر به سیستم خود دارید. سیستمهای مدیریت بسته مانند APT از کلیدهای GPG برای تأیید امضای دیجیتالی بستهها استفاده میکنند. این امضا تضمین میکند که بستهها از منبع معتبر دانلود شدهاند و در حین انتقال تغییر نکردهاند. برای اضافه کردن کلید GPG داکر، ابتدا باید ابزارهای لازم برای مدیریت کلیدها و مخازن HTTPS را نصب کنید. این ابزارها شامل `ca-certificates` (برای تأیید گواهیهای امنیتی)، `curl` (برای دانلود فایلها از وب) و `gnupg` (برای کار با کلیدهای GPG) هستند. پس از نصب این ابزارها، از دستور `curl` برای دانلود کلید GPG رسمی داکر از آدرس مشخص شده استفاده میکنیم و خروجی آن را به ابزار `gpg` و سپس به فایل `/etc/apt/keyrings/docker.asc` هدایت میکنیم. دستور `sudo mkdir -m 0755 -p /etc/apt/keyrings` ابتدا دایرکتوری `/etc/apt/keyrings` را با مجوزهای مناسب ایجاد میکند، اگر از قبل وجود نداشته باشد. سپس دستور `curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.asc` کلید را دانلود و آن را در قالب مناسب (dearmored) در فایل `docker.asc` ذخیره میکند. این فایل حاوی کلید عمومی داکر است که APT از آن برای تأیید اصالت بستهها استفاده خواهد کرد.
sudo apt update
sudo apt install ca-certificates curl gnupg -y
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.asc
تنظیم مخزن نرمافزاری داکر
پس از اضافه کردن کلید GPG داکر، گام بعدی این است که سیستم مدیریت بسته APT را مطلع کنید که مخزن رسمی داکر کجاست و چگونه میتواند به آن دسترسی پیدا کند. این کار با اضافه کردن یک خط به فهرست منابع APT انجام میشود. این خط حاوی اطلاعاتی در مورد نوع مخزن (deb)، معماری سیستم (مانند amd64)، آدرس مخزن، نام توزیع اوبونتو (noble برای ۲۴٫۰۴) و شاخه مورد نظر (stable) است. دستور `echo` برای ایجاد این خط و هدایت آن به فایل `/etc/apt/sources.list.d/docker.list` استفاده میشود. قبل از آن، از دستور `chmod a+r /etc/apt/keyrings/docker.asc` برای تنظیم مجوزهای فایل کلید GPG استفاده میکنیم تا APT بتواند آن را بخواند. سپس، دستور `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` مخزن داکر را به لیست منابع اضافه میکند. عبارت `$(dpkg –print-architecture)` معماری سیستم شما را تشخیص میدهد (مانند `amd64` یا `arm64`) و عبارت `$(. /etc/os-release && echo “$VERSION_CODENAME”)` نام کد نسخهی اوبونتو شما را (مانند `noble` برای ۲۴٫۰۴) استخراج میکند. این اطمینان حاصل میکند که مخزن صحیح برای سیستم شما اضافه شود. `signed-by=/etc/apt/keyrings/docker.asc` به APT میگوید که برای تأیید بستههای این مخزن از کلید GPG موجود در این مسیر استفاده کند. در نهایت، `sudo tee … > /dev/null` خروجی `echo` را هم در فایل مینویسد و هم به ترمینال نمایش میدهد، اما `> /dev/null` از نمایش آن در ترمینال جلوگیری میکند. پس از اضافه کردن مخزن، باید دوباره فهرست بستههای APT را بهروزرسانی کنید تا اطلاعات مربوط به بستههای موجود در مخزن جدید داکر نیز بارگذاری شود. این کار با اجرای `sudo apt update` انجام میشود.
sudo chmod a+r /etc/apt/keyrings/docker.asc
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 update
نصب بستههای Docker Engine
اکنون که سیستم شما کلید GPG داکر را دارد و از محل مخزن رسمی داکر برای اوبونتو ۲۴٫۰۴ مطلع است، میتوانید بستههای اصلی Docker Engine و ابزارهای مرتبط را نصب کنید. این مرحله شامل دانلود و نصب خود Daemon داکر، ابزار خط فرمان داکر (CLI) و Containerd است که جزء اصلی Docker Engine محسوب میشود. علاوه بر این، برای استفاده از قابلیتهای جدیدتر و ابزارهای مفید داکر، بستههای `docker-buildx-plugin` و `docker-compose-plugin` نیز توصیه میشود نصب شوند. `docker-buildx-plugin` قابلیتهای پیشرفتهای برای ساخت ایمیجها فراهم میکند و `docker-compose-plugin` امکان تعریف و مدیریت برنامههای چندکانتینری را با استفاده از فایلهای YAML میدهد، که جایگزین دستور `docker-compose` مستقل شده است. برای نصب این بستهها، دستور `sudo apt install` را به همراه نام کامل بستهها در ترمینال اجرا کنید. دستور `sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y` تمامی این اجزا را نصب خواهد کرد. سوییچ `-y` مانند قبل، فرآیند نصب را بدون نیاز به تأیید دستی کاربر ادامه میدهد. پس از اجرای این دستور، APT بستههای مشخص شده را از مخزن داکر که در مرحله قبل اضافه کردید، دانلود و نصب خواهد کرد. این فرآیند ممکن است چند دقیقه طول بکشد بسته به سرعت اتصال اینترنت شما. پس از اتمام نصب، Docker Engine بر روی سیستم شما نصب شده و سرویس داکر به طور خودکار شروع به کار میکند. اکنون داکر آماده است تا دستورات را دریافت و کانتینرها را مدیریت کند.
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
تأیید نصب داکر
پس از اتمام مراحل نصب، بسیار مهم است که از صحت و موفقیتآمیز بودن فرآیند نصب اطمینان حاصل کنید. سادهترین و استانداردترین راه برای تأیید اینکه Docker Engine به درستی نصب شده و در حال اجراست، اجرای یک ایمیج آزمایشی بسیار سبک است که داکر به همین منظور فراهم کرده است. این ایمیج آزمایشی `hello-world` نام دارد و تنها کاری که انجام میدهد این است که یک پیام تأیید را در خروجی نمایش میدهد و سپس متوقف میشود. اجرای این ایمیج نه تنها نشان میدهد که Daemon داکر فعال است، بلکه تأیید میکند که سیستم شما میتواند با مخزن داکر هاب ارتباط برقرار کرده، ایمیجها را دانلود کند و کانتینرها را اجرا نماید. اگر این دستور با موفقیت اجرا شود و پیام مورد انتظار را ببینید، میتوانید با اطمینان خاطر ادامه دهید و از داکر برای نیازهای خود استفاده کنید. اگر در این مرحله با خطا مواجه شدید، معمولاً نشاندهنده مشکلی در فرآیند نصب یا پیکربندی اولیه است که باید مورد بررسی قرار گیرد. خطاهای رایج میتوانند مربوط به مشکلات شبکه، عدم دسترسی به مخازن یا مشکلات مربوط به سرویس داکر باشند. اما اجرای موفقیتآمیز `hello-world` به معنی این است که اجزای اصلی داکر به درستی کار میکنند.
اجرای تصویر آزمایشی hello-world
برای اجرای ایمیج آزمایشی `hello-world` و تأیید نصب داکر، دستور `docker run hello-world` را در ترمینال اجرا کنید. این دستور به Docker CLI میگوید که یک کانتینر جدید بر اساس ایمیج `hello-world` اجرا کند. اگر ایمیج `hello-world` از قبل بر روی سیستم شما وجود نداشته باشد، Docker Daemon ابتدا آن را از مخزن پیشفرض (که معمولاً Docker Hub است) دانلود میکند. این فرآیند به شما نشان میدهد که داکر قادر به ارتباط با مخازن خارجی و دریافت ایمیجهاست. پس از دانلود (اگر لازم باشد)، داکر یک کانتینر جدید از این ایمیج ایجاد کرده و آن را اجرا میکند. کانتینر `hello-world` تنها یک اسکریپت ساده را اجرا میکند که متنی را در خروجی استاندارد نمایش میدهد. خروجی مورد انتظار شامل پیامی است که به شما تبریک میگوید که نصب داکر موفقیتآمیز بوده است و اطلاعاتی در مورد مراحل انجام شده توسط داکر (مانند دانلود ایمیج، ایجاد کانتینر و اجرای آن) ارائه میدهد. اگر این پیام را در ترمینال مشاهده کردید، به این معنی است که Docker Engine به درستی نصب، پیکربندی و در حال اجراست و شما میتوانید از آن برای اجرای ایمیجها و ساخت کانتینرهای خود استفاده کنید. توجه داشته باشید که برای اجرای این دستور در حالت پیشفرض، ممکن است نیاز به استفاده از `sudo` داشته باشید که در بخش بعدی به نحوه رفع این نیاز میپردازیم.
sudo docker run hello-world
اجرای دستورات Docker بدون Sudo
به طور پیشفرض پس از نصب، برای اجرای دستورات داکر نیاز به استفاده از `sudo` دارید. این به دلیل این است که Daemon داکر به عنوان کاربر root اجرا میشود و سوکت داکر که ابزار خط فرمان (CLI) با آن ارتباط برقرار میکند، متعلق به root است. استفاده مداوم از `sudo` برای دستورات داکر میتواند خستهکننده و در برخی موارد خطرناک باشد، زیرا به دستورات داکر اجازه میدهد تا با دسترسی root اجرا شوند که میتواند منجر به آسیبهای ناخواسته به سیستم شود. راه حل استاندارد برای این مشکل، اضافه کردن کاربر غیر ریشه شما به گروه `docker` است. هنگامی که یک کاربر عضو این گروه باشد، مجوزهای لازم برای دسترسی به سوکت داکر و اجرای دستورات داکر بدون نیاز به `sudo` را خواهد داشت. این روش امنتر و راحتتر است و توسط خود داکر توصیه میشود. این فرآیند شامل ایجاد گروه `docker` (که معمولاً در حین نصب به طور خودکار ایجاد میشود)، افزودن کاربر فعلی به این گروه و سپس اعمال تغییرات گروه کاربری است. پس از انجام این مراحل و اعمال تغییرات، میتوانید دستورات داکر را مستقیماً و بدون پیشوند `sudo` اجرا کنید، که تجربه کار با داکر را بسیار روانتر میکند.
ایجاد گروه کاربری docker
در فرآیند نصب Docker Engine از طریق مخازن رسمی در اوبونتو ۲۴٫۰۴، یک گروه کاربری به نام `docker` به طور خودکار ایجاد میشود. این گروه برای مدیریت مجوزهای دسترسی به Daemon داکر استفاده میشود. کاربرانی که عضو این گروه باشند، میتوانند دستورات داکر را بدون نیاز به امتیازات ریشه (sudo) اجرا کنند. با این حال، اگر به هر دلیلی این گروه ایجاد نشده بود یا از روش نصب دیگری استفاده کردهاید، میتوانید این گروه را به صورت دستی ایجاد کنید. دستور `sudo groupadd docker` برای ایجاد یک گروه جدید به نام `docker` استفاده میشود. با این حال، همانطور که اشاره شد، در نصب استاندارد از مخازن، این گروه از قبل وجود دارد و اجرای مجدد این دستور ممکن است خطایی مبنی بر وجود گروه نمایش دهد که جای نگرانی نیست. هدف اصلی این مرحله اطمینان از وجود گروه `docker` است تا بتوان کاربر مورد نظر را به آن اضافه کرد. وجود این گروه، زیرساخت لازم را برای اعطای مجوزهای غیر ریشه به کاربران برای تعامل با Docker Daemon فراهم میکند. پس از اطمینان از وجود گروه، میتوان به مرحله بعدی یعنی افزودن کاربر به این گروه پرداخت.
sudo groupadd docker
افزودن کاربر فعلی به گروه
پس از اطمینان از وجود گروه `docker`، گام بعدی افزودن کاربر غیر ریشه فعلی شما به این گروه است. این کار به آن کاربر اجازه میدهد تا به سوکت Docker Daemon دسترسی داشته باشد و دستورات داکر را بدون نیاز به `sudo` اجرا کند. دستور `sudo usermod -aG docker $USER` برای انجام این کار استفاده میشود. در این دستور: `sudo` برای اجرای دستور با امتیازات ریشه استفاده میشود. `usermod` ابزاری برای تغییر مشخصات کاربر است. `-aG` دو سوییچ هستند: `-a` به معنی “append” است و مشخص میکند که کاربر باید به گروه اضافه شود نه اینکه عضویتهای قبلی او جایگزین شود. `-G` مشخص میکند که گروه یا گروههایی که کاربر باید به آنها اضافه شود، کدامند. `docker` نام گروهی است که کاربر به آن اضافه میشود. `$USER` یک متغیر محیطی است که نام کاربر فعلی شما را در ترمینال نشان میدهد. بنابراین، این دستور در عمل نام کاربر شما را به گروه `docker` اضافه میکند. پس از اجرای این دستور، کاربر شما عضو گروه `docker` خواهد شد، اما تغییرات گروه کاربری بلافاصله برای نشست فعلی ترمینال شما اعمال نمیشود. برای اینکه این تغییرات اعمال شوند، باید از سیستم خارج شده و دوباره وارد شوید، یا سیستم را راهاندازی مجدد کنید. راه جایگزین موقت، استفاده از دستور `newgrp docker` است، اما خروج و ورود مجدد روشی دائمیتر و مطمئنتر برای اعمال تغییرات است.
sudo usermod -aG docker $USER
اعمال تغییرات گروه کاربری
همانطور که در مرحله قبل اشاره شد، پس از افزودن کاربر به گروه `docker`، تغییرات گروه کاربری بلافاصله در نشست ترمینال فعلی شما اعمال نمیشود. برای اینکه سیستم از عضویت جدید شما در گروه `docker` مطلع شود و مجوزهای مربوطه را به شما اعطا کند، نیاز به شروع یک نشست جدید دارید. مطمئنترین و توصیهشدهترین راه برای اعمال این تغییرات، خروج کامل از سیستم (Log Out) و ورود مجدد (Log In) است. این کار باعث میشود که سیستم یک نشست جدید برای شما ایجاد کند و در این نشست جدید، عضویت شما در گروه `docker` تشخیص داده شده و مجوزهای لازم فعال شوند. پس از خروج و ورود مجدد، میتوانید ترمینال را باز کرده و امتحان کنید که آیا میتوانید دستورات داکر را بدون `sudo` اجرا کنید. برای تست، میتوانید دوباره دستور `docker run hello-world` را، این بار بدون پیشوند `sudo`، اجرا کنید. اگر پیام خوشآمدگویی داکر را مشاهده کردید، به این معنی است که تغییرات با موفقیت اعمال شدهاند و شما میتوانید به راحتی از داکر استفاده کنید. راه حل موقت برای اعمال تغییرات بدون خروج و ورود مجدد، اجرای دستور `newgrp docker` است. این دستور یک نشست جدید با گروه پیشفرض `docker` برای شما ایجاد میکند. با این حال، این تغییر تنها برای آن ترمینال خاص یا نشست فعلی اعمال میشود و با بستن ترمینال از بین میرود. بنابراین، خروج و ورود مجدد روشی پایدارتر و توصیه شده است.
docker run hello-world
مدیریت سرویس داکر
Docker Engine به عنوان یک سرویس سیستم در پسزمینه اجرا میشود و مسئول مدیریت کانتینرها، ایمیجها، شبکهها و حجمهای داده (volumes) است. این سرویس توسط `systemd`، سیستم مدیریت سرویس استاندارد در اوبونتو ۲۴٫۰۴، مدیریت میشود. آشنایی با نحوه مدیریت این سرویس، از جمله شروع، توقف، راهاندازی مجدد و بررسی وضعیت آن، برای هر کاربری که با داکر کار میکند ضروری است. این قابلیتها به شما امکان میدهند تا کنترل کاملی بر زمان اجرا و رفتار Docker Daemon داشته باشید. به عنوان مثال، ممکن است نیاز باشد سرویس داکر را برای اعمال برخی تغییرات پیکربندی یا رفع مشکلات احتمالی راهاندازی مجدد کنید. همچنین، میتوانید تنظیم کنید که آیا سرویس داکر به طور خودکار هنگام بوت شدن سیستم اجرا شود یا خیر. تمامی این عملیات از طریق ابزار `systemctl` در ترمینال انجام میشوند. دستورات `systemctl` به شما اجازه میدهند تا با سرویسهای سیستمی تعامل داشته باشید و وضعیت آنها را مدیریت کنید. در ادامه به دستورات اصلی برای مدیریت سرویس داکر میپردازیم که دانستن آنها برای کار با داکر در اوبونتو ۲۴٫۰۴ ضروری است.
شروع و توقف سرویس
برای مدیریت وضعیت سرویس Docker Engine در اوبونتو ۲۴٫۰۴، از ابزار `systemctl` استفاده میشود. این ابزار به شما امکان میدهد تا سرویسهای سیستمی را شروع، متوقف، راهاندازی مجدد و وضعیت آنها را بررسی کنید. برای شروع سرویس داکر، اگر در حال اجرا نیست، از دستور `sudo systemctl start docker` استفاده کنید. این دستور به `systemd` میگوید که واحد سرویس `docker` را فعال کند. برای توقف کامل سرویس داکر، از دستور `sudo systemctl stop docker` استفاده کنید. این کار باعث میشود Docker Daemon متوقف شود و تمامی کانتینرهای در حال اجرا نیز (بسته به تنظیمات) متوقف یا بسته شوند. اگر نیاز به اعمال تغییرات در پیکربندی داکر دارید یا با مشکلی مواجه شدهاید که نیاز به راهاندازی مجدد سرویس دارد، میتوانید از دستور `sudo systemctl restart docker` استفاده کنید. این دستور ابتدا سرویس را متوقف کرده و سپس دوباره آن را شروع میکند. برای بررسی وضعیت فعلی سرویس داکر، از دستور `sudo systemctl status docker` استفاده کنید. این دستور اطلاعاتی در مورد اینکه آیا سرویس در حال اجراست، چه مدت زمانی است که فعال است، و همچنین چند خط آخر از لاگهای آن را نمایش میدهد. این اطلاعات برای عیبیابی مشکلات بسیار مفید هستند.
sudo systemctl start docker
sudo systemctl stop docker
sudo systemctl restart docker
sudo systemctl status docker
فعالسازی سرویس هنگام بوت
یکی از تنظیمات مهم برای سرویس داکر، تعیین این است که آیا این سرویس باید به طور خودکار هنگام بوت شدن سیستم عامل اجرا شود یا خیر. در بسیاری از موارد، به خصوص در سرورها یا سیستمهایی که به طور مداوم برای اجرای کانتینرها استفاده میشوند، مطلوب است که سرویس داکر بلافاصله پس از راهاندازی سیستم فعال شود تا کانتینرها بتوانند به سرعت شروع به کار کنند. برای فعال کردن اجرای خودکار سرویس داکر هنگام بوت شدن سیستم، از دستور `sudo systemctl enable docker` استفاده کنید. این دستور با ایجاد یک لینک نمادین (symlink) در دایرکتوریهای مناسب `systemd`، سرویس `docker` را به لیست سرویسهایی که باید هنگام شروع سیستم فعال شوند، اضافه میکند. با اجرای این دستور، از بوت بعدی به بعد، نیازی به اجرای دستی دستور `sudo systemctl start docker` نخواهید داشت و داکر به طور خودکار آماده به کار خواهد بود. اگر به هر دلیلی نیاز دارید که سرویس داکر به طور خودکار هنگام بوت اجرا نشود، میتوانید آن را غیرفعال کنید. برای غیرفعال کردن اجرای خودکار سرویس داکر هنگام بوت شدن سیستم، از دستور `sudo systemctl disable docker` استفاده کنید. این دستور لینک نمادین ایجاد شده توسط دستور `enable` را حذف میکند و از اجرای خودکار سرویس در بوتهای بعدی جلوگیری میکند. توجه داشته باشید که این دستور تنها اجرای خودکار را غیرفعال میکند و سرویس ممکن است در حال حاضر فعال باشد؛ برای توقف آن باید از دستور `sudo systemctl stop docker` استفاده کنید.
sudo systemctl enable docker
sudo systemctl disable docker
حذف کامل Docker
اگر به هر دلیلی تصمیم به حذف Docker Engine از سیستم اوبونتو ۲۴٫۰۴ خود گرفتید، میتوانید این کار را به سادگی انجام دهید. فرآیند حذف شامل دو بخش اصلی است: حذف بستههای نرمافزاری داکر و حذف دادهها و تنظیمات مرتبط. مهم است که تفاوت بین این دو را بدانید. حذف بستهها با استفاده از ابزار مدیریت بسته APT انجام میشود و فایلهای اجرایی داکر و فایلهای پیکربندی آن را حذف میکند. اما این کار لزوماً دادههایی مانند ایمیجهای دانلود شده، کانتینرهای ایجاد شده، حجمهای داده (volumes) و شبکههای تعریف شده توسط شما را حذف نمیکند. این دادهها به طور پیشفرض در مسیری خاص در سیستم فایل ذخیره میشوند و ممکن است بخواهید آنها را نیز حذف کنید تا فضای دیسک آزاد شود و هیچ اثری از نصب قبلی داکر باقی نماند. حذف دادهها یک عملیات غیرقابل بازگشت است و باید با احتیاط انجام شود، زیرا تمامی کانتینرها، ایمیجها و دادههای مربوط به آنها را از بین میبرد. در ادامه به تفصیل نحوه انجام هر یک از این بخشهای فرآیند حذف کامل داکر را توضیح میدهیم تا بتوانید با اطمینان خاطر این عملیات را انجام دهید و سیستم خود را پاکسازی کنید.
حذف بستههای نصب شده
برای حذف بستههای نرمافزاری Docker Engine و ابزارهای مرتبط که قبلاً نصب کردهاید، از ابزار مدیریت بسته APT استفاده میشود. دو دستور اصلی برای حذف بستهها وجود دارد: `remove` و `purge`. دستور `remove` بستههای مشخص شده را حذف میکند، اما ممکن است برخی از فایلهای پیکربندی آنها را باقی بگذارد. دستور `purge` علاوه بر حذف بستهها، فایلهای پیکربندی مرتبط با آنها را نیز حذف میکند و یک پاکسازی کاملتر انجام میدهد. برای حذف کامل بستههای داکر و فایلهای پیکربندی آنها، استفاده از دستور `purge` توصیه میشود. دستور `sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y` تمامی بستههای اصلی Docker Engine و پلاگینهای مرتبط که در مرحله نصب اضافه کردیم را حذف میکند. سوییچ `-y` فرآیند حذف را بدون نیاز به تأیید دستی ادامه میدهد. این دستور فایلهای اجرایی داکر، ابزار خط فرمان، Containerd و فایلهای پیکربندی مربوط به آنها را از سیستم شما حذف میکند. با این حال، همانطور که پیشتر اشاره شد، این دستور دادههای مربوط به کانتینرها، ایمیجها، حجمها و شبکهها را حذف نمیکند. برای حذف این دادهها باید مرحله بعدی را نیز انجام دهید. پس از اجرای این دستور، Docker Engine از سیستم شما حذف شده و دستورات داکر دیگر قابل اجرا نخواهند بود، مگر اینکه دوباره آن را نصب کنید.
sudo apt purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
همچنین، ممکن است بخواهید هرگونه وابستگی که دیگر نیازی به آنها نیست را نیز حذف کنید. دستور `sudo apt autoremove -y` وابستگیهایی که به طور خودکار نصب شدهاند و پس از حذف داکر دیگر توسط هیچ بسته دیگری مورد نیاز نیستند را پاک میکند. این کار به آزاد شدن فضای دیسک کمک میکند.
sudo apt autoremove -y
حذف دادهها و تنظیمات
پس از حذف بستههای نرمافزاری داکر، دادههای مربوط به ایمیجها، کانتینرها، حجمهای داده (volumes) و شبکههایی که توسط داکر ایجاد شدهاند، همچنان بر روی سیستم شما باقی میمانند. این دادهها به طور پیشفرض در مسیر `/var/lib/docker` ذخیره میشوند. اگر قصد دارید داکر را به طور کامل از سیستم خود حذف کنید و فضای دیسک اشغال شده توسط این دادهها را آزاد کنید، باید این دایرکتوری را نیز حذف کنید. **توجه داشته باشید که این عملیات غیرقابل بازگشت است و تمامی ایمیجها، کانتینرها و دادههای مرتبط با آنها را برای همیشه حذف خواهد کرد.** قبل از اجرای این دستور، مطمئن شوید که هیچ داده مهمی در کانتینرها یا حجمهای داده داکر ندارید که نیاز به نگهداری آنها داشته باشید. برای حذف کامل دایرکتوری دادههای داکر، از دستور `sudo rm -rf /var/lib/docker` استفاده کنید. دستور `rm` برای حذف فایلها و دایرکتوریها استفاده میشود، سوییچ `-r` به معنی حذف بازگشتی (recursively) است و باعث حذف تمامی زیردایرکتوریها و فایلها میشود، و سوییچ `-f` به معنی “force” است و باعث میشود که دستور بدون پرسش برای هر فایل اقدام به حذف کند. همچنین، Containerd نیز دادههای خود را در مسیری دیگر ذخیره میکند که معمولاً `/var/lib/containerd` است. برای حذف دادههای Containerd نیز میتوانید این دایرکتوری را حذف کنید: `sudo rm -rf /var/lib/containerd`. پس از اجرای این دستورات، تمامی آثار مربوط به نصب داکر، شامل بستههای نرمافزاری و دادههای مربوط به آن، از سیستم شما حذف خواهند شد و فضای دیسک مربوطه آزاد خواهد شد.
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
آیا اوبونتو ۲۴٫۰۴ به طور رسمی توسط داکر پشتیبانی میشود؟
بله، اوبونتو ۲۴٫۰۴ با نام کد Noble Nindala به طور رسمی توسط داکر پشتیبانی میشود و میتوانید Docker Engine را با استفاده از مخازن رسمی داکر بر روی آن نصب کنید.
چگونه نسخه داکر نصب شده را بررسی کنیم؟
برای بررسی نسخه Docker Engine نصب شده بر روی سیستم اوبونتو ۲۴٫۰۴، میتوانید دستور docker version
یا docker --version
را در ترمینال اجرا کنید. هر دو دستور اطلاعات نسخه را نمایش میدهند.
چگونه خطای دسترسی (permission denied) هنگام اجرای داکر را رفع کنیم؟
این خطا معمولاً به دلیل عدم دسترسی کاربر شما به سوکت داکر رخ میدهد. برای رفع آن، کاربر خود را به گروه docker
اضافه کرده و سپس از سیستم خارج شده و دوباره وارد شوید یا سیستم را راهاندازی مجدد کنید.
آیا امکان نصب داکر بدون اتصال به اینترنت وجود دارد؟
نصب داکر از مخازن رسمی نیازمند اتصال به اینترنت است. روشهای نصب آفلاین وجود دارند اما پیچیدهتر بوده و برای بهروزرسانی نیز چالشبرانگیز هستند و برای یک نصب استاندارد توصیه نمیشوند.
چگونه داکر را بهروزرسانی کنیم؟
برای بهروزرسانی داکر، ابتدا فهرست بستههای APT را با sudo apt update
بهروز کرده و سپس با اجرای sudo apt upgrade docker-ce docker-ce-cli containerd.io -y
بستههای داکر را ارتقا دهید.
فایلهای ایمیج و کانتینرهای داکر کجا ذخیره میشوند؟
به طور پیشفرض، فایلهای ایمیج، کانتینرها، حجمهای داده (volumes) و شبکههای داکر در مسیر /var/lib/docker
بر روی سیستم فایل ذخیره میشوند.