محمد جوادی - SMJ
محمد جوادی - SMJ
خواندن ۵ دقیقه·۴ سال پیش

چطور با داکر کار کنیم؟ - داکر ایمیج قسمت - ۱

با سلام و خسته نباشید خدمت شما همراهان گرامی.

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

در این مقاله قصد داریم موضوعات زیر را بررسی کنیم:

  • داکر فایل چیست؟
  • چگوه یک داکر فایل بسازیم؟
  • چگونه از یک داکر فایل یک ایمیج تهیه کنیم؟


داکر فایل چیست؟

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

به طور کلی داکر ایمیج‌ها در اینترنت به وفور یافت می‌شوند حتی در سایت hub.docker.com تعداد خیلی زیادی ایمج وجود دارد که شما می‌توایم برای استفاده در برنامه‌ها و سرویس‌های خود از آن‌ها استفاده کنید؛ اما وقتی نیاز به یک ایمیج به خصوص دارید که آن‌را هیچ جای دیگر پیدا نمی‌کنید و برای خودتان باید ساخته شود از داکر فایل برای تنظیم این ایمیج استفاده می‌کنیم.


چگوه یک داکر فایل بسازیم؟

برای انجام این کار ما باید چند قدم برداریم که این قدم‌ها به صورت زیر می‌باشند:

قدم اول:

ابتدا یک فایل متنی با نام Dockerfile در مکان مورد نظر خود در سیستم‌عامل می‌سازیم.

قدم دوم:

وارد فایل خود شده و شروع به ادیت کردن آن می‌کنیم:

  • اولین قسمتی که در این فایل مورد بحث قرار می‌گیرد قسمت FROM بوده که در این قسمت ما از یک ایمیج پایه داکر استفاده می‌کنیم و بر پایه آن تغییرات مورد نظر خود را تعیین می‌کنیم. (در نظر داشته باشید که اگر علاقه‌ای بر این داشتید که هیچ ایمیج پایه‌ای استفاده نشود می‌توانید در قسمت FROM از ایمیج scratch استفاده کنید.) در این آموزش ما برای شروع از ایمیج ubuntu استفاده می‌کنیم.
  • در این قسمت ما می توانیم امضای خود را با قسمت MAINTAINER وارد کنیم بدین صورت که بعد از این قسمت هر چه نوشته شود نماد و معرفی کننده ما برای تنظیم و ادامه زندگی این داکر فایل و آپدیت کردن ایمج خواهد بود. به طور مثال:
    MAINTAINER smj <s.m.javadi001@gmail.com>
    در این قسمت ایمیل خود را وارد کردم تا در صورت وجود مشکل در استفاده کردن از این ایمیج راه ارتباطی بین من و مصرف کننده وجود داشته باشد.

در این قسمت می‌توانیم با استفاده از دستور RUN یک دستور عادی لینوکس در داکر خود در هنگام اجرا استفاده کنیم به طور مثال:
RUN apt-get update

با استفاده از قسمت CMD هم می‌توانیم کامندی که نیاز است تا در هنگام ساخت داکر از آن استفاده شود را به ایمیج خود معرفی کنیم. الگوی نوشتاری CMD به طور زیر می‌باشد. به طور مثال:
CMD ["echo", ""Hello World! From my first docker image..."]

نکته: تفاوت قسمت RUN, CMD در آن است که RUN در هنگام کار کردن کانتینر انجام می‌شود و ربطی به لحظه ساخت کانتینر داکر ندارد؛ اما CMD تنها در لحظه ساختن داکر خارج از کانتینر اجرا می‌شود.
  • در نظر داشته باشید که تعداد بسیار زیادی قسمت دیگر ممکن از در داکر فایل وجود داشته باشد که در زیر به تعدادی از آن‌ها اشاره می‌کنیم و در مقالات بعد به توضیح کامل استفاده از آن‌ها می‌پردازیم:
    • EXPOSE:
      با استفاده از این قسمت در کانتینر می‌توانیم یک پورت ارتباطی شبکه داخلی داکر جهت شنود و ارتباط با داکر در هنگام استفاده شدن را معرفی نماییم.
    • ENV:
      با استفاده از این قسمت متغییر‌های تعیین شده در ایمیج را می‌توانیم مدیریت کرده و با توجه به خواسته‌های خود ایمیج جدید را تنظیم کنیم.
    • ADD:
      با استفاده از این قسمت می‌توانیم فایل جدیدی را به کانتینر از داخل دستگاه اضافه کنیم.
    • COPY:
      با استفاده از این قسمت هم می‌توانیم فایل یا پوشه جدیدی را به کانتینر خود از داخل دستگاه اضافه کنیم. تنها در نظر داشته باشید که تمامی کپی‌های این قسمت با یوزر root صورت گرفته و باید فایل دسترسی مدیرتی داشته باشد.
    • ENTRYPOINT:
      با استفاده از این قسمت می‌توانیم یک کانتینر که به عنوان یک ابزار اجرا شونده و اجرایی استفاده می‌شود را تنظیم کنیم.
    • VOLUME:
      با استفاده از این قسمت می‌توانی یک مکان برای مانت کردن فایل های خود برای این کانتینر و کانتینر‌های دیگر و شیر کردن اطلاعات بین تمامشان استفاده کنیم.
    • USER:
      با استفاده از این قسمت می‌توانیم یوزر مورد نظری برای اجرای قسمت‌های RUN, CMD, ENTRYPOINT در نظر بگیریم
    • WORKDIR:
      با استفاده از این قسمت پوشه مورد نظر خود برای انجام عملیات را تعیین می‌کنیم.
    • ARG:
      با استفاده از این قسمت یک سری متغییرهایی تعیین می‌کنیم که در زمان بیلد استفاده می‌شوند.
    • ONBUILD:
      با استفاده از این قسمت می‌توانیم یک سری ابزار برای وقتی که این ایمیج پایه یک ایمیج دیگر قرار می‌گیرد را تنظیم کنیم.
    • STOPSIGNAL:
      با استفاده از این قسمت می‌توانیم حالتی برای پایان یافتن ارتباط بین سیستم عامل و این کانتینر ایجاد کرده تا از دسترس خارج شود.
    • LABLE:
      توضیحاتی درباره ایمیج شما در عنوان key/value اضافه می‌کند.

تا به اینجای کار ما یک داکر فایل با الگو زیر ساخته‌ایم:

FROM ubuntu MAINTAINER smj <s.m.javadi001@gmail.com> RUN apt-get update CMD [&quotecho&quot, &quotHello World! From my first docker image...&quot]

حال از فایل خود خارج شده و برای درک بهتر عملیات انجام شده یک بار داکر فایل خود را تست می‌کنیم.

با استفاده از دستورات Build داکر می‌توانیم از داکر فایل خود ایمیج مورد نظر را بسازیم؛ تنها کاری که نیاز است انجام شود آن است که وارد جایی که داکر فایل خود را ساخته‌ایم بشویم و در اینجا از یکی از دستورات زیر استفاده کنیم:

docker build . docker build -t <<IMAGENAME:TAG>> .

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

حال نوبت آن است که با استفاده از دستور زیر داکر ایمیج ایجاد شده را مشاهده کنیم:

docker images

در این قسمت ایمیج خود را پیدا می‌کنیم و برای ران کردن ایمیج خود از دستور زیر استفاده می‌کنیم:

docker run <<IMAGENAME:TAG>>

بعد از اجرای این دستور می‌توانیم اتفاق انجام شده را مشاهده کنیم.

با تشکر از شما که تا به اینجای کار در کنار ما بودید.

امیدوارم این مقاله برای شما مفیده بوده باشد؛ در هفته‌های آینده با آموزش‌های پیچیده و عمیق‌تر با موضوع داکر در خدمت شما خواهیم بود.

با تشکر از شما و تیم ابرآراز که فرصت نوشتن این مقالات را در اختیار من گذاشتند.

ابرآراز ارائه‌دهنده سرویس‌های تماما ابری بوده و می‌تواند نیاز‌های پردازشی و سروری شما را در سریع‌ترین زمان ممکن حل کند:

arazcloud.com

داکرdockerdockerfilelinux
شاید از این پست‌ها خوشتان بیاید