در دنیای توسعه نرمافزار، داکر بهسرعت به یک ابزار ضروری تبدیل شده است. با ارائه یک رویکرد جدید و نوآورانه به مجازیسازی، داکر توانسته تجربه توسعهدهندگان را به یک سطح جدید ارتقا دهد.
کلید موفقیت داکر، استفاده از کانتینرها است. این کانتینرها به برنامهها اجازه میدهند تا بهصورت مستقل و بدون تداخل با دیگر برنامهها اجرا شوند. به این معنا که دیگر نیازی به نگرانی در مورد وابستگیها یا تنظیمات سختافزاری نیست.
از ویژگیهای برجسته دیگر داکر، سهولت در اشتراکگذاری و انتقال برنامهها، قابلیت مقیاسپذیری فوقالعاده و امکانات مدیریت شبکه و ذخیرهسازی است. همچنین، با پشتیبانی از استقرار پیوسته، داکر به یک انتخاب استاندارد برای توسعهدهندگان جهانی تبدیل شده است.
همراه ما باشید تا در این مقاله به بررسی عمیقتر دستورات پایه داکر بپردازیم و نحوه استفاده از این ابزار قدرتمند را کشف کنیم.
تعریف داکر و اهمیت آن در توسعه نرمافزار
داکر چیست؟داکر یک ابزار است که به توسعهدهندگان امکان میدهد تا برنامههای خود را در محیطهای مختلف و بدون هیچگونه تداخل با سایر برنامهها اجرا کنند. این امکان با استفاده از مفهوم کانتینرها فراهم میشود که هر کدام بهصورت مستقل از دیگران عمل میکنند.
تاریخچه و پیشینه داکر
داکر در سال ۲۰۱۳ توسط شرکت داتکام بهعنوان یک پروژه متنباز معرفی و راهاندازی شد. هدف از آن، ارائه یک راهکار سبک و سریع برای مجازیسازی بود.
پیش از داکر، روشهای مجازیسازی موجود معمولا سنگین و کند بودند و این موضوع کار با آنها را برای توسعهدهندگان دشوار میکرد. داکر با ارائه یک معماری جدید بر مبنای کانتینرهای سبک، توانست زمان استقرار برنامهها را کاهش دهد و انعطافپذیری بالایی فراهم کند.
داکر از همان ابتدا بهعنوان یک پروژه متنباز توسعه پیدا کرد و بهسرعت مورد استقبال توسعهدهندگان و شرکتها قرار گرفت. امروزه بسیاری از شرکتهای بزرگ فناوری و استارتاپها از داکر بهعنوان راهکار اصلی مجازیسازی و توزیع برنامههایشان استفاده میکنند. بهطوری که داکر توانسته در طول این سالها به یک استاندارد صنعتی تبدیل شود.
مراحل نصب و راهاندازی داکر بر روی سیستمعاملهای مختلف (Linux, Windows, MacOS)
Linux
۱- دانلود داکر
ابتدا به وبسایت رسمی داکر مراجعه کرده و نسخه مناسب برای توزیع لینوکسی که استفاده میکنید را دانلود نمایید.
۲- نصب داکر
بسته دانلود شده را با استفاده از دستورات مخصوص توزیع لینوکس نصب کنید. برای مثال، در توزیعهای مبتنی بر Debian از apt و در توزیعهای مبتنی بر Redhat از yum استفاده میشود.
۳- پیکربندی داکر
مخزن داکر و سرویس آن را در سیستم پیکربندی کنید.
۴- اجرای داکر
سرویس داکر را اجرا کرده و با دستورات آن کار کنید.
Windows و MacOS
۱- دانلود داکر دسکتاپ
از وبسایت رسمی داکر، نسخه داکر دسکتاپ مناسب برای Windows یا Mac OS را دانلود کنید.
۲- نصب داکر
بسته دانلود شده را مانند هر برنامه دیگری در Windows یا Mac OS نصب کنید.
۳- اجرای داکر
داکر دسکتاپ یک محیط کامل برای کار با داکر را فراهم میکند. پس از نصب، میتوانید Docker Engine و دستورات داکر را مستقیما از طریق خط فرمان اجرا کنید.
بررسی وضعیت داکر
- با دستور docker –version میتوانید نسخه نصب شده داکر را بررسی کنید.
- docker info جزئیات و وضعیت کلی سرور داکر را به شما نشان میدهد.
- با استفاده از docker ps میتوانید کانتینرهای در حال اجرا را مشاهده کنید.
با اجرای این دستورات، میتوانید مطمئن شوید که داکر بهدرستی روی سیستم شما نصب و فعال شده است.
دستورات اساسی داکر
در این بخش، به بررسی دستورات پایه داکر که هر توسعهدهنده باید با آنها آشنا باشد، میپردازیم:
- docker run
با استفاده از این دستور، میتوانید یک کانتینر جدید اجرا کنید. به عنوان مثال، با دستور docker run ubuntu:latest یک کانتینر با تصویر اوبونتو اجرا خواهد شد.
- docker ps
این دستور به شما امکان میدهد تا کانتینرهای فعال را مشاهده کنید. با استفاده از گزینه -a میتوانید همه کانتینرها را مشاهده کنید، حتی کانتینرهای متوقف شده.
- docker pull
با استفاده از این دستور، میتوانید یک تصویر را از Docker Hub دانلود کنید. به عنوان مثال، با دستور docker pull nginx تصویر انجیناکس دانلود خواهد شد.
- docker build
این دستور به شما امکان میدهد تا یک تصویر جدید از یک Dockerfile بسازید. به عنوان مثال، با دستور docker build -t my-image:latest . یک تصویر با نام “my-image” و تگ “latest” ساخته خواهد شد.
- docker images
یکی دیگر از دستورات پایه داکر، «docker images» است. با استفاده از این دستور میتوانید تصاویر موجود روی سیستم خود را مشاهده کنید.
- docker rmi
این دستور به شما امکان میدهد تا یک یا چند تصویر حذف تصاویر داکر اتفاق خواهد افتاد. بهعنوان مثال، با دستور docker rmi image_id تصویر با شناسه مورد نظر حذف خواهد شد.
- docker stop
با استفاده از این دستور، میتوانید یک کانتینر فعال را متوقف کنید. بهعنوان مثال، با دستور docker stop container_id کانتینر با شناسه مورد نظر متوقف خواهد شد.
- docker start
یکی از مهمترین دستورات پایه داکر، دستور docker start است. این دستور به شما امکان میدهد تا یک کانتینر متوقف شده را دوباره شروع کنید. بهعنوان مثال، با دستور docker start container_id کانتینر با شناسه مورد نظر دوباره شروع به کار خواهد کرد.
- docker rm
با استفاده از این دستور میتوانید یک کانتینر را حذف کنید. بهعنوان مثال، با دستور docker rm container_id کانتینر با شناسه مورد نظر حذف خواهد شد.
- docker logs
این دستور به شما امکان میدهد تا لاگهای یک کانتینر را مشاهده کنید. بهعنوان مثال، با دستور docker logs container_id لاگهای کانتینر با شناسه مورد نظر نمایش داده خواهد شد.
- docker exec
دستور docker exec یکی از دستورات پایه داکر است که با استفاده از آن میتوانید یک دستور خاص را در یک کانتینر در حال اجرا را فعال کنید. بهعنوان مثال، با دستور docker exec -it container_id /bin/bash یک شل بش در کانتینر با شناسه مورد نظر اجرا خواهد شد.
- docker volume create
با استفاده از این دستور میتوانید یک حجم (volume) جدید برای ذخیرهسازی دادهها ایجاد کنید. حجمها به شما امکان میدهند تا دادهها را بین کانتینرها به اشتراک بگذارید یا دادهها را در حالت پایدار ذخیره کنید.
- docker volume ls
با استفاده از این دستور میتوانید لیست تمام حجمهای موجود روی سیستم خود را مشاهده کنید.
- docker volume rm
این دستور به شما امکان میدهد تا یک حجم موجود را حذف کنید.
- docker network create
با استفاده از این دستور، میتوانید یک شبکه جدید برای ارتباط بین کانتینرها ایجاد کنید.
- docker network ls
این دستور لیست تمام شبکههای موجود روی سیستم شما را نمایش میدهد.
- docker network rm
با استفاده از این دستور میتوانید یک شبکه موجود را حذف کنید.
- docker cp
این دستور به شما امکان میدهد تا فایلها و دایرکتوریها را بین کانتینر و سیستم میزبان کپی کنید. بهعنوان مثال، با دستور docker cp container_id:/path/in/container /path/on/host میتوانید فایلها را از کانتینر به سیستم میزبان منتقل کنید.
- docker commit
دستور docker commit یکی دیگر از باارزشترین دستورات پایه داکر است که به شما امکان میدهد تا تغییرات اعمال شده در یک کانتینر را به یک تصویر جدید کامیت کنید.
مفهوم Dockerfile و ساخت تصاویر و دستورات آن
Dockerfile یک فایل متنی با مجموعهای از دستورات است که به داکر میگوید چگونه یک تصویر (image) را بسازد. در واقع آموزش کامل Dockerfile به شما امکان میدهد تا محیط اجرایی مورد نظر خود را با دقت و با تنظیمات خاص خود ایجاد کنید.
دستورات کلیدی در Dockerfile
- FROM
دستور FROM تصویر پایهای را مشخص میکند که برای ساخت تصویر جدید میخواهید از آن استفاده کنید. به عبارت دیگر، این تصویر اولیه است که بر روی آن تغییرات شما اعمال میشود.
- RUN
دستور RUN به شما امکان میدهد تا دستورات مختلفی را در زمان ساخت تصویر اجرا کنید، مانند نصب بستهها یا ایجاد فایلها.
- CMD
دستور CMD دستور پیشفرضی را تعریف میکند که هنگامی که یک کانتینر از تصویر مورد نظر اجرا میشود، اجرا میشود.
چگونه با استفاده از Dockerfile یک تصویر بسازیم؟
پس از آمادهسازی و نوشتن Dockerfile، با دستور docker build میتوانید تصویر مورد نظر خود را ایجاد کنید. بهعنوان مثال، با دستور docker build -t my-image:latest .، تصویری با نام «my-image» و برچسب «latest» ساخته میشود.
مفهوم و دستورات شبکه در داکر
داکر امکان ایجاد شبکههای مجازی و متصل کردن کانتینرها به این شبکهها را فراهم میکند. شبکهها در داکر انواع مختلفی دارند:
- شبکه پیشفرض (bridge)
این شبکه پیشفرض بهصورت خودکار برای کانتینرها ایجاد میشود. کانتینرها میتوانند با یکدیگر در این شبکه ارتباط برقرار کنند.
- شبکه میزبان (host)
برای اتصال مستقیم کانتینر به شبکه میزبان استفاده میشود.
- شبکه اختصاصی (overlay)
برای اتصال کانتینرهای موجود در میزبانهای مختلف به یکدیگر به کار میرود.
اتصال کانتینرها به شبکه
- در زمان create کانتینر با استفاده از دستور docker run با پارامتر –network
- برای کانتینرهای موجود با دستور docker network connect
- مشاهده شبکههای متصل به کانتینر با دستور docker inspect
با استفاده از شبکهبندی داکر میتوان بهراحتی ارتباط بین کانتینرها و سرویسها را مدیریت کرد.
مدیریت حافظه و دیسک در داکر
یکی از ویژگیهای مهم داکر، امکان مدیریت و کنترل منابع سختافزاری مانند حافظه و دیسک برای کانتینرها است.
راههای تخصیص حافظه به کانتینرها در داکر
- استفاده از پارامتر –memory در دستور docker run برای مشخص کردن حداکثر حافظهی قابل استفاده
- تنظیم memory.limit در تنظیمات Docker daemon برای محدود کردن حافظهی پیشفرض
- استفاده از محدودیتهای memory در Docker Compose
مدیریت فضای دیسک در داکر
- تعیین حداکثر فضای قابل استفاده با –storage-opt size هنگام docker run
- استفاده از حجمهای داکر (Docker Volumes) برای ذخیرهسازی پایدار داده
- محدود کردن دسترسی کانتینر به فضای دیسک میزبان با –read-only
- استفاده از ابزارهای سطح بالا مانند Docker Compose برای مدیریت حافظه و دیسک
با استفاده از این روشها میتوان بهطور موثری منابع سختافزاری را در محیطهای مبتنی بر داکر مدیریت کرد.
دو نکته مهم برای استفاده از داکر
استفاده از Docker Compose برای مدیریت چندین کانتینر
Docker Compose یک ابزار قدرتمند است که به شما امکان میدهد تا چندین کانتینر را با استفاده از یک فایل تنظیمات به نام docker-compose.yml مدیریت کنید. این امکان به شما کمک میکند تا سرویسهای مختلفی که به یکدیگر وابسته هستند، بهطور همزمان و با تنظیمات مشخص اجرا شوند. این کار بهخصوص در مواردی که سیستم شما از چندین سرویس وابسته تشکیل شده است، بسیار مفید است.
بهینهسازی تصاویر و کاهش حجم آنها
تصاویر داکر میتوانند با زمان حجم زیادی از فضای دیسک را اشغال کنند. برای بهینهسازی و کاهش حجم تصاویر، میتوانید از روشهای مختلفی استفاده کنید:
- استفاده از تصاویر پایهای سبکتر
بهجای استفاده از تصاویر پایهای سنگین مانند ubuntu، میتوانید از تصاویر سبکتر مانند alpine استفاده کنید.
- حذف بستههای غیرضروری
پس از نصب بستههای مورد نیاز، بستههایی که برای اجرای برنامه شما ضروری نیستند را حذف کنید.
- استفاده از ابزارهای بهینهسازی
ابزارهایی مانند DockerSlim میتوانند به شما کمک کنند تا تصاویر داکر خود را بهینهسازی کنید.
با استفاده از این نکات و روشها، میتوانید از داکر به طور کارآمدتری استفاده کنید و منابع سیستم خود را بهتر مدیریت کنید.
یادگیری دستورات پایه داکر، نکاتی ضروری که هر توسعهدهندهای باید بداند!
داکر در طول چند سال گذشته توانسته جایگاه ویژهای در دنیای توسعه و عرضه نرمافزار پیدا کند. این فناوری با ارائه روشی نوآورانه برای مجازیسازی مبتنی بر کانتینر، مزایای بسیار زیادی را برای توسعهدهندگان و تیمهای عملیاتی به ارمغان آورده است.
از مهمترین مزایای داکر میتوان به سرعت بالا در استقرار برنامهها، سادگی مدیریت و توزیع آنها، انعطافپذیری و قابلیت توسعه پیوسته، مقیاسپذیری عالی و صرفهجویی قابل توجه در مصرف منابع اشاره کرد.
در این مقاله سعی شد دستورات پایه داکر به همراه نکات مفیدی در خصوص نحوه استفاده بهینه از آن معرفی شود. با یادگیری این مفاهیم، توسعهدهندگان میتوانند بهسادگی از داکر در پروژههای خود استفاده کنند و از مزایای آن بهرهمند شوند. امید است این مقاله بتواند شروعی برای تسلط و توانمندسازی بیشتر توسعهدهندگان در حوزه داکر باشد.
سوالات متداول در رابطه با دستورات پایه داکر
۱- داکر چیست و چرا برای توسعه نرمافزار مورد استفاده قرار میگیرد؟
داکر یک پلتفرم مجازیسازی سطح سیستم است که توسعهدهندگان میتوانند برنامهها و سرویسهای خود را در محیطهای مجازی به نام «کانتینرها» اجرا کنند. در نتیجه توسعهدهندگان میتوانند برنامههایشان را با تنظیمات وابستگیهای مشخص اجرا کرده و بهصورت قابلیت توسعه و استقرار پیوسته (CD) استفاده کنند.
۲- چگونه میتوان یک کانتینر جدید با داکر اجرا کرد؟
با استفاده از دستور docker run و تعیین تصویر مورد نظر، میتوانید یک کانتینر جدید را ایجاد و اجرا کنید. مثال: docker run ubuntu:latest.
۳- چگونه میتوان تصویر داکر را از Docker Hub دانلود کرد؟
با استفاده از دستور docker pull و تعیین نام تصویر مورد نظر، میتوانید تصویر را از Docker Hub دانلود کنید. مثال: docker pull nginx.
۴- چگونه میتوان یک Dockerfile برای ساخت تصویر خود نوشت؟
برای نوشتن Dockerfile، از دستوراتی مانند FROM (برای تعیین تصویر پایه)، RUN (برای اجرای دستورات) و CMD (برای تعیین دستور پیشفرض) استفاده میشود.
۵- چگونه میتوان لاگهای یک کانتینر داکر را مشاهده کرد؟
با استفاده از دستور docker logs و تعیین شناسه کانتینر مورد نظر، میتوانید لاگهای آن کانتینر را مشاهده کنید. مثال: docker logs container_id.
۶- چگونه میتوان چندین کانتینر را با Docker Compose مدیریت کرد؟
با ایجاد یک فایل تنظیمات docker-compose.yml و تعریف سرویسها و وابستگیهای آنها در این فایل، میتوانید چندین کانتینر را با یک دستور واحد و با استفاده از Docker Compose مدیریت کنید.
۷- چگونه میتوان تصاویر داکر را بهینهسازی و حجم آنها را کاهش داد؟
برای بهینهسازی تصاویر داکر میتوانید از تصاویر پایهای سبکتر استفاده کنید، بستههای غیرضروری را حذف کنید و از ابزارهای بهینهسازی مانند DockerSlim استفاده کنید تا حجم تصاویر را کاهش دهید و بهینهتر مدیریت کنید.
بدون دیدگاه