داکر به زبان ساده

داکر به زبان ساده

- 3 دقیقه

داکر چیست؟

داکر (انگلیسی: Docker) پروژهٔ متن‌بازی است که دیپلویمنت نرم‌افزارهای کاربردی را درون کانتینر نرم‌افزاری به وسیلهٔ فراهم کردن لایهٔ انتزاعی اضافه‌ای فراهم می‌کند.

منبع

اگر تابه حال از داکر استفاده نکردید ، جمله بالا هیچ کمکی به شما نمی کنه مثل سایر متن های ترجمه شده که کمکی به هیچ کس نمی کنن. شاید بد نباشه به این عکس یه نگاهی بندازید:

docker containers

چیزی که در این عکس بیان شده مفهوم کانتینر نرم‌افزاریه که داره سعی می کنه به ما بگه کانتینر ها:

  • روی کرنل سوار می‌شن
  • کاملا مستقل هستند
  • اجزای تشکیل دهنده خودشون رو دارند

انصافاً داکر چیست؟

داکر یک نرم‌افزار کنترل و مدیریت کانتینر هایی که توسط خود داکر ساخته شدن. همونطور که قبل تر گفتم این کانتینر ها مستقل هستن و می تونند باهم link بشن. قبل از اینکه بتونیم کانتینر خودمون رو بسازیم باید یک نسخه اولیه ازش داشته باشیم که اینجا بهشون docker image میگیم.

docker image در نگاه اول

در داکر image ها نسخه های اولیه ای از کانتینر هستند که شما یا باید خودتون بسازینش یا از طریق دستور commit از کانتینر استخراج کنید. داکر هر image رو به یک سری لایه تقسیم می کنه که مجموع اونها سازنده یک image هستند. چیزی شبیه به عکسی که در پایین می بینید:

docker container layers

به طور معمول هر دستوری که در Dockerfile اجرا میشه یک لایه رو تشکیل میده همینطور هر commit.

چطور image بسازم

اغلب کسایی که با داکر کار می کنند از یک image پایه برای ساخت image های خودشون استفاده می کنند مثلا ubuntu ،debian یا phusion/baseimage ویا image خودشون رو میسازند که کار گزافیه. برای ساخت یک image که apache2 داشته باشه و image پایه هم ubuntu باشه به همچین Dockerfile احتیاج داریم:

FROM ubuntu:12.04

RUN apt-get update && apt-get install -y apache2 && apt-get clean && rm -rf /var/lib/apt/lists/*

ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2

EXPOSE 80

CMD ["/usr/sbin/apache2", "-D", "FOREGROUND"]

آخرین خط از Dockerfile که با دستور CMD اجرا میشه کارش در حال اجرا نگه داشتن کانتینر هست. دلیلش این اتفاق اینه که داکر هر container رو در قالب یک process اجرا می کنه و این process ها باید در حال اجرا بمونن تا ما بتونیم از کانتینر ها به عنوان سرویس استفاده کنیم.

کانتینر چی شد پس

بعد از اینکه image دلخواهمون رو ساختیم می تونیم با استفاده از دستور docker run یک دستور رو بر روی image اجرا کنیم که این اتفاق باعث ساخت یک کانتینر از اون image میشه. همین کار رو با image های پایه می تونیم انجام بدیم چرا که داکر کاری نداره image از کجا اومده. به محض اینکه دستور شما اصطلاحا exit کنه اون کانتینر هم ذخیره میشه و کانتینر stop می‌شه. اگر بخواهید بار بعد دوباره همون کانتینر رو داشته باشید اینبار باید از docker container start استفاده کنید.

داکر نصب کردم ولی نمی دونم چی میگی

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

kitematic

کافیه image که می خواهید رو پیدا کنید و کلید create رو بزنید، باقی کار هارو خود kitematic انجام میده. وقتی یک container ساختید از منویی که در اختیارتون هست می تونید container رو stop، start کنید یا با استفاده از exec به shell داخلی container وصل بشید.

دانیال نیک‌نام

دانیال نیک‌نام

مسلط به تمام زبان های برنامه نویسی در کره زمین
تحلیل گر مسائل وبی در خاور میانه
یک غیر فعال وب
:laughing: :alien:

comments powered by Disqus
rssfacebooktwittergithubyoutubemailspotifylastfminstagramlinkedingooglegoogle-pluspinterestmediumvimeostackoverflowredditquoraquora