تغییرات اخیر

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

آموزش کار با کانتینرهای داکر (ساخت + مدیریت و حذف کانتینرها)


۱۵ فروردین ۱۴۰۴

داکر ابزاری مهم برای ساخت و اجرای برنامه‌ها در کانتینرهای ایزوله است. ایمیج‌ (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

به اشتراک بگذارید

برچسب‌ها: