آنچه در این مقاله میخوانید
آموزش کار با کانتینرهای داکر (ساخت + مدیریت و حذف کانتینرها)
۱۵ فروردین ۱۴۰۴
داکر ابزاری مهم برای ساخت و اجرای برنامهها در کانتینرهای ایزوله است. ایمیج (Images)های داکر شبیه الگوهایی هستند که برای ساخت کانتینرها از آن استفاده میشود و فقط شامل موارد ضروری برای اجرای برنامهها هستند. زمانی که یک کانتینر از ایمیجها (Images) ساخته میشود، تغییرات داخل کانتینر فقط در همان کانتینر اعمال میشود و با حذف کانتینر، این تغییرات از بین میروند. داکر با سیستم فایل ترکیبی باعث میشود که نرم افزار در هر محیطی به یک شکل عمل کند.
آنچه در ادامه خواهید خواند:
- معرفی داکر چیست؟
- نحوه کار کردن با کانتینرهای داکر
- مرحله اول: ساخت دو کانتینر
- مرحله دوم: راه اندازی مجدد اولین کانتینر
- مرحله سوم: حذف هر دو کانتینر
- سوالات متداول
- جمع بندی
همین حالا، بدون نیاز به پیکربندی و تنظیمات پیچیده، اپلیکیشن Docker خود را در کمتر از چند ثانیه اجرا کنید!
✅ استقرار سریع ✅ عملکرد پایدار ✅ هزینه مقرونبهصرفه
خرید هاست Docker
معرفی داکر چیست؟
داکر (Docker) یک پلتفرم نرم افزاری است که به شما این امکان را میدهد تا برنامهها و سرویسها را در محیطهای ایزوله و مستقل به نام کانتینر اجرا کنید. این کانتینرها مانند یک محیط کوچک و سبک هستند که از هسته سیستمعامل بهطور مشترک استفاده میکنند، اما کاملا از یکدیگر جدا هستند. این جدا بودن، باعث میشود که هر برنامه در محیطی امن و بدون تداخل با دیگر برنامهها اجرا شود.
اگرچه مفهوم کانتینر در دنیای فناوری اطلاعات جدید نیست، اما داکر در سال ۲۰۱۳ با معرفی یک پلتفرم متن باز، این تکنولوژی را متحول کرد و به آن جان تازهای بخشید. داکر باعث شد که استفاده از کانتینرها مخصوصا برای توسعه برنامهها، دوباره محبوب شود.
امروزه، توسعه نرمافزارها به سمت استفاده از کانتینرها و میکروسرویسها پیش میرود. این شیوهها به عنوان رویکردهای مدرن در توسعه ابری یا Cloud-native شناخته میشوند. داکر به توسعه دهندگان کمک میکند که برنامهها و سرویسهای خود را به صورت سریع، مقیاس پذیر و ایمن توسعه دهند و از مشکلاتی مانند ناسازگاری نسخهها و وابستگیها جلوگیری کنند.
اگر شما هم تا حالا با این مفاهیم آشنا نبودید، نگران نباشید! در این مطلب به تمام این مفاهیم پرداخته و در انتها خواهید فهمید که داکر چیست و چطور میتواند کار شما را در توسعه نرم افزار آسان تر و بهینه تر کند.
مطالعه بیشتر: داکر (Docker) چیست؟
نحوه کار کردن با کانتینرهای داکر
- ساخت دو کانتینر داکر
- راه اندازی مجدد کانتینر اول
- حذف هر دو کانتینر
هر بار که از دستور docker run
استفاده میکنید، یک کانتینر جدید از تصویری که مشخص میکنید ایجاد میشود. اما امکان دارد که این روش برای شما کمی گیج کننده باشد پس بیایید با چند مثال ساده آن را بهتر درک کنیم.

مرحله اول: ساخت دو کانتینر
دستور docker run
زیر یک کانتینر جدید با استفاده از ایمیجها (Images) پایهی اوبونتو ایجاد میکند. گزینهی -t
به ما یک ترمینال میدهد و -i
این امکان را فراهم میکند که با آن تعامل داشته باشیم. ما از دستور پیشفرض در فایل داکر ایمیج اوبونتو، یعنی bash
استفاده میکنیم تا وارد یک شل شویم.
docker run -ti ubuntu
پیشنمایش خط فرمان تغییر میکند تا نشان دهد که وارد کانتینر شدهایم و به عنوان کاربر روت (root) با شناسه ۱۲ رقمی کانتینر در حال کار هستیم.
یک تغییر را ایجاد میکنیم برای مثال مقدار متن را در دایرکتوری /tmp
کانتینر وارد میکنیم، سپس از دستور cat
برای بررسی اینکه آیا متن به درستی ذخیره شده است یا نه استفاده خواهیم کرد.
echo "Example1" > /tmp/Example1.txt
cat /tmp/Example1.txt
Example1
در این قسمت باید وارد کانتیر شویم.
exit
کانتینرهای داکر زمانی که دستور اجرایی خود را تمام میکنند، متوقف میشوند، بنابراین کانتینر ما زمانی که از شل bash
خارج شدیم متوقف شد. اگر دستور docker ps
را اجرا کنیم تا کانتینرهای در حال اجرا را نمایش دهد، کانتینر ما در لیست نخواهد بود.
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
اگر گزینه -a
را اضافه کنیم تمام کانتینرها را، چه در حال اجرا و چه متوقف شده باشند را نشان میدهد، کانتینر ما در لیست نشان داده خواهد شد.
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11cc47339ee1 ubuntu "/bin/bash" 6 minutes ago Exited (127) 8 seconds ago small_sinoussi
زمانی که کانتینر ایجاد شد، به آن شناسه کانتینر و یک نام بهصورت تصادفی اختصاص خواهیم داد. در این مثال، 11cc47339ee1
شناسه کانتینر و small_sinoussi
نام تصادفی آن است. دستور ps -a
این مقادیر را بههمراه ایمیجها (Images) که کانتینر از آن ساخته شده است و دستوری که در آن اجرا شده را نشان میدهد.
اگر همان دستور را دوباره اجرا کنیم، یک کانتینر جدید کامل ساخته میشود.
docker run -ti ubuntu
در این قسمت میتوانیم متوجه شویم که کدام کانتینر جدید است، زیرا شناسه آن در خط فرمان متفاوت است و وقتی به دنبال فایل Example1 بگردیم، آن را پیدا نخواهیم کرد.
cat /tmp/Example1
cat: /tmp/Example1: No such file or directory
این ممکن است باعث شود که فکر کنیم دادهها از بین رفتهاند، اما اینطور نیست. حالا بیایید از کانتینر دوم خارج شویم تا ببینیم که کانتینر اول و کانتینر دوم با فایلی که ایجاد کردهایم، هنوز در سیستم موجود هستند یا خیر.
exit
زمانی که دوباره لیست کانتینرها را مشاهده میکنیم، باید هر دو کانتینر در لیست نمایش داده شوند.
docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6e4341887b69 ubuntu "/bin/bash" About a minute ago Exited (1) 6 seconds ago kickass_borg
11cc47339ee1 ubuntu "/bin/bash" 13 minutes ago Exited (127) 6 minutes ago small_sinoussi

بیشتر بخوانید: نحوه حذف ایمیج (image)، کانتینر (container) و والیوم (volume) در داکر Docker در سرور
مرحله دوم: راه اندازی مجدد اولین کانتینر
برای راهاندازی مجدد یک کانتینر موجود، از دستور start
با فلگ -a
برای اتصال به آن و فلگ -i
برای تعاملی کردن استفاده خواهیم کرد، سپس یا شناسه کانتینر یا نام آن را وارد میکنیم. حتماً شناسه کانتینر خود را در دستور زیر جایگزین کنید.
docker start -ai 11cc47339ee1
مجددا به پروامپت bash
کانتینر خواهیم رسید و وقتی که فایل قبلاً ایجاد شده را با دستور cat
بررسی میکنیم، باید آنجا باشد.
cat /tmp/Example1.txt
Example1
حال میتوانیم از کانتینر خارج شویم.
exit
این خروجی نشان میدهد که تغییرات ایجاد شده در داخل کانتینر بعد از توقف و راهاندازی مجدد آن باقی میمانند. تنها زمانی که کانتینر حذف شود، محتویات آن از بین میرود. این مثال همچنین نشان میدهد که تغییرات فقط به همان کانتینر خاص محدود است. وقتی که کانتینر دومی را راهاندازی کردیم، وضعیت اصلی تصویر را مشاهده خواهیم کرد.
مطالعه بیشتر: آموزش گام به گام راه اندازی رجیستری خصوصی داکر در اوبونتو
مرحله سوم: حذف هر دو کانتینر
در این مرحله میخواهیم آنها را حذف کنیم. دستور docker rm
که فقط روی کانتینرهای متوقفشده کار میکند، به شما این امکان را میدهد که نام یا شناسه یک یا چند کانتینر را مشخص کنید. بنابراین، میتوانیم هر دو کانتینر را با دستور زیر حذف کنیم.
docker rm 11cc47339ee1 kickass_borg
11cc47339ee1
kickass_borg
با انجام آن هر دو کانتینر، همراه با هر تغییری که داخل آنها ایجاد کردهایم، از بین خواهد رفت.
برای ادامه مطالعه و یادگیری: نصب و استفاده از داکر کامپوز (Docker Compose) در اوبونتو
سوالات متداول:
در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جوابهای کوتاه اما مفیدی دادهایم که با استفاده از آن میتوانید به سوال خود پاسخ صحیحی را بدهید.
Docker چیست؟
Docker یک ابزار برای ایجاد، توزیع و اجرای اپلیکیشنها در کانتینرهای مستقل است که میتواند روی هر سیستم عامل اجرا شود.
تفاوت Docker Image و Docker Container چیست؟
Docker Image
یک الگوی خام است که برای ایجاد کانتینر استفاده میشود، در حالی که Docker Container
یک نمونه اجرایی است که از آن Image ساخته میشود.
چطور میتوانم یک کانتینر جدید در Docker بسازم؟
با دستور docker run -ti ubuntu
میتوانید یک کانتینر جدید از ایمیج ها بسازید.
چطور میتوانم کانتینر را متوقف کنم؟
با دستور docker stop <container_id>
میتوانید یک کانتینر در حال اجرا را متوقف کنید.
چطور میتوانم اطلاعات کانتینرهای خود را مشاهده کنم؟
با دستور docker ps -a
میتوانید لیست تمامی کانتینرها، چه در حال اجرا و چه متوقفشده، را مشاهده کنید.
چطور میتوانم یک کانتینر را حذف کنم؟
برای حذف یک کانتینر از دستور docker rm <container_id>
استفاده کنید. این دستور فقط برای کانتینرهای متوقفشده کار میکند.

جمع بندی
داکر ابزاری است که برای ساخت و اجرای برنامهها در محیطهای ایزوله به نام کانتینر از آن استفاده میشود. در داکر منابع سیستم عامل به صورت مشترک استفاده میشود. این ابزار به توسعه دهندگان اجازه میدهد که برنامهها را مستقل و مقیاس پذیر اجرا کنند. داکر فرآیند توسعه و استقرار برنامهها را سادهتر و سریعتر کرده است و از همه مهم تر داکر مشکلات ناسازگار سیستمها را کاهش میدهد.
?مطالعه بیشتر: آموزش نصب داکر روی اوبونتو 22.04