آموزش استفاده از تصاویر Docker

آموزش استفاده از تصاویر Docker
آفلاین
user-avatar
عرفان حشمتی
19 فروردین 1400, خواندن در 6 دقیقه

در مقاله مقدمه Docker ما در مورد اجزای اصلی سازنده این پلتفرم و نحوه کار آنها بحث کردیم. تصاویر Docker نقشه‌های اصلی هستند که ما برای ایجاد کانتینرها استفاده می‌کنیم. در این مقاله هم دستورات مهم Docker را برای توسعه دهندگان نرم‌افزار بررسی کردیم. اما در این آموزش قصد داریم مطالب ارائه شده در دو مقاله‌ای را که قبلا منتشر شده‌اند را تکمیل کنیم؛ یعنی تمرین‌ها و جنبه‌های عملی تصاویر Docker. در اینجا تصور می‌کنیم که شما می‌دانید Docker چیست و آن را قبلا تنظیم کرده‌اید. برای بررسی مفاهیم لطفا به آموزش‌هایی که قبلا ذکر شد مراجعه کنید.

از دستور sudo docker run hello-world برای تأیید درست بودن تنظیم Docker استفاده می‌کنیم. دستور را اجرا کنید و مطمئن شوید که پیام Docker is working نمایش داده می‌شود و به خوبی کار می‌کند، در غیر این صورت باید محیط خود را به درستی تنظیم کنید.

دستوری که برای تست Docker استفاده می‌کنیم تصویر hello-world را از مرکز Docker بارگیری کرده و آن را اجرا می‌کند. Docker hub مخزن مرکزی مبتنی بر ابر (cloud) است که توزیع تصاویر Docker را تسهیل می‌کند. هر زمان که بخواهید یک docker image را بر روی هاست خود اجرا کنید، در صورت پیدا نشدن آن، از هاب داکر بارگیری می‌شود.

Docker hub دارای ویژگی‌های بسیار کاربر پسند و آسان برای پشتیبانی از توسعه دهنده است. اولین ویژگی که باید از Docker هاب آگاه باشید این است که به عنوان یک توسعه دهنده قادر به جستجو و بارگیری تصاویر آماده برای استفاده هستید. با مراجعه به وب سایت هاب داکر‌ به آدرس https://hub.docker.com قادر به جستجوی تصاویر و آگاهی از روند ایجاد و نگهداری آنها هستید. با این حال نمی‌توانید تصاویر را از وب سایت بارگیری کنید. برای تعامل با مخزن Docker باید از دستورات موجود در ترمینال استفاده کنیم.

برای جستجوی تصاویر در Docker هاب، از دستور جستجو استفاده کرده و نام تصویری را که می‌خواهید جستجو کنید وارد می‌کنید. به عنوان مثال اگر ما علاقمند به اجرای وردپرس هستیم، می‌توانیم تصاویر وردپرس را با استفاده از دستور زیر نشان دهیم. این دستور لیستی از تصاویر را همراه با نام تصویر، توضیح مختصر، امتیاز بندی و نشان آن در صورت رسمی یا خودکار بودن تصویر برمی‌گرداند.

sudo docker search wordpress

دو نوع تصویر در Docker هاب وجود دارد، رسمی و خودکار. تصاویر رسمی توسط Docker ساخته می‌شوند در حالی که تصاویر خودکار توسط افراد ساخته می‌شوند. تصاویر رسمی توسط Docker اعتبار سنجی می‌شوند و نگهداری می‌گردند. به عنوان یک توسعه دهنده برای بارگذاری تصاویر خود نیاز به ایجاد یک حساب کاربری دارید.

پس از شناسایی تصویری که نیاز شما را برآورده می‌کند، از دستور pull برای بارگیری آن استفاده می‌کنید. به عنوان مثال اجازه دهید آخرین تصویر bitnami Docker را بارگیری کنیم. دستور نشان داده شده در زیر این کار را انجام می‌دهد:

sudo docker pull bitnami/wordpress:latest

بسته به سرعت اینترنت شما، برای بارگیری تصویر مدت زمانی طول می‌کشد. پس از بارگیری تصویر می‌توانید از دستورات Docker برای مدیریت آن استفاده کنید. برای به دست آوردن لیستی از تمام تصاویر موجود در سیستم خود می‌توانید از دستور sudo docker images استفاده کنید.

در هنگام مشاهده لیست کلیه تصاویر، اطلاعاتی از شناسه و اندازه آنها به دست خواهید آورد.

همانطور که در زیر نشان داده شده با وارد کردن دستور no trunc– می‌توانید ID کل تصاویر را بگیرید.

sudo  docker images –no-trunc

دستور تصاویر دارای چندین flag اختیاری است که می‌توانید برای فیلتر کردن تصاویر مورد نظر به منظور برگرداندن آنها استفاده کنید. گزینه [REPOSITORY: [TAG] فقط تصاویر متناسب با مخزن و تگ مشخص شده را برمی‌گرداند. اگر تگ تصاویر متناسب را حذف کنید، مخزن برگردانده می‌شود.

به عنوان مثال برای لیست تصاویر مخزن bitnami / wordpress، دستور زیر را اجرا می‌کنیم. تگ‌های منطبق دقیقا استفاده می‌شود، بنابراین در مثال زیر هیچ تصویری برای مخزن bitnami / word برگردانده نمی‌شود.

sudo docker images bitnami/wordpress

برای بازگرداندن تصاویر از یک مخزن خاص و یک تگ، از دستور images استفاده کنید، همانطور که در زیر نشان داده شده است.

sudo docker images bitnami/wordpress:latest

برای نشان دادن تطابق دقیق اگر از هیچ تصویری استفاده نکنیم، همانطور که در خروجی زیر نشان‌داده شده‌است، برگشت داده نمی‌شود.

پرچم فیلتر -f یا -filter گزینه‌های انعطاف پذیرتری برای محدود کردن تصاویر برگشتی به شما می‌دهد. همچنین با استفاده از قالب key = value یک فیلتر تعیین می‌کنید. فیلتر dangling تصاویر تگ شده یا بدون تگ را برمی‌گرداند. هنگامی که فیلتر روی true تنظیم شود تصاویر بدون تگ برگردانده می‌شود و هنگامی که بر روی false تنظیم شود تصاویر تگ شده برگردانده می‌شود. استفاده از dangling در دستورات زیر نشان داده شده است:

sudo docker images --filter "dangling=true"
sudo docker images --filter "dangling=false"

برای اجرای تصویر بارگیری شده از دستور run با دادن یک نام کانتینر، میزبان، درگاه کانتینر و نام تصویر استفاده می‌کنیم. برای اجرای تصویر وردپرسی خود می‌توانیم از دستور نشان داده شده در زیر استفاده کنیم.

sudo docker run --name=firstcontainer -p 80:80 -p 443:443 bitnami/wordpress

در دستوری که در بالا اجرا کردیم، نام کانتینر firstcontainer است و ما از پورت‌های 80 و 443 استفاده می‌کنیم.

اگر دیگر به تصویری احتیاج ندارید می‌توانید با استفاده از دستور rmi آن را با عبور دادن نام تصویری که توسط دستور عکس برگردانده شده حذف کنید. قبل از حذف هر تصویر، اطمینان حاصل کنید که هیچ کانتینر در حال اجرایی بر اساس تصویری که حذف می‌کنید وجود ندارد. به عنوان مثال برای حذف تصویر hello world، از دستور نشان داده شده در زیر استفاده می‌کنیم.

sudo docker rmi hello-world

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

  • با استفاده از Dockerfile حاوی دستورالعمل‌هایی که برای ایجاد تصویر استفاده می‌شود.
  • با به روزرسانی کانتینری که از تصویر ایجاد شده، قصد اصلاح یا کامیت کردن آن را دارید.

ما در مورد اصلاح کانتینرها در قسمت دوم این آموزش بحث خواهیم کرد.

جمع بندی

در این آموزش مطالبی را که در سایر آموزش‌ها آمده بود و برای فهمیدن این آموزش لازم بود، به طور خلاصه مرور کردیم. همچنین در مورد چگونگی جستجو و بارگیری تصاویر از Docker hub با استفاده از دستورات Docker بحث کردیم. و نیز درباره دستورات مهم دیگر در مدیریت کانتینرها صحبت کردیم. سرانجام دو روش را شناسایی کردیم که می‌تواند تصاویر موجود را متناسب با نیازهای شما اصلاح کند.

منبع

چه امتیازی به این مقاله می دید؟
خیلی بد
بد
متوسط
خوب
عالی

دیدگاه‌ها و پرسش‌ها

برای ارسال دیدگاه لازم است، ابتدا وارد سایت شوید.

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

در حال دریافت نظرات از سرور، لطفا منتظر بمانید

آفلاین
user-avatar
عرفان حشمتی @heshmati74
مهندس معماری سیستم های کامپیوتری، طراح و توسعه دهنده وب سایت
دنبال کردن

گفتگو‌ برنامه نویسان

بخشی برای حل مشکلات برنامه‌نویسی و مباحث پیرامون آن وارد شو