021-71053903 [email protected] پشتیبانی از شنبه تا چهارشنبه ساعت 9 الی 16

داکر(ساخت و اجرای اولین ایمیج)

پیش نیاز ها:

این مقاله توضیحاتی در مورد نحوه ساخت و اجرای اولین ایمیج خودمان در داکر داده که برای این کار ابتدا باید داکر بر روی سیستم شما نصب باشد لذا مقاله رو به رو را بخوانید “داکر نصب Docker Engine روی ابونتو

مقدمه:

حال که شما محیط توسعه خود را ساختید و تنظیم کردید میتوانید شروع کنید به توسعه برنامه های کانتینری شده

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

ابتدا با ساخت ایمیج داکر، کانتینر های برای هر جزء از برنامه به صورت جداگانه میسازید و تست میکنید.

کانتیر ها و زیرساخت های مربوط را برای یک کامپیوتر اسمبل (Assemble) میکنید.

برنامه کانتینری شده خود را تست میکنید، به اشتراک میگذارید و پروژه را اجرایی میکنید.

ما در این قسمت از آموزش میخواهیم که قسمت اول یعنی ساخت ایمیج با داکر را پیش ببریم. یعنی ساخت ایمیجی که کانتینر های شما بر پایه آن هستند.

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

نصب کردن

بیایید پروژه نمونه node-bulletin-board را دانلود کنیم.این یک برنامه ساده bulletin board نوشته شده با Node.js است.

از طریق Git

شما اگر از Git استفاده میکنید میتوانید این پروژه را از GitHub کلون کرده و استفاده کنید.

برای اینکار کد های زیر را وارد کنید.

git clone https://github.com/dockersamples/node-bulletin-board

cd node-bulletin-board/bulletin-board-app

در ویندوز

اگر شما از ویندوز استفاده میکنید و نمیخواهید گیت را نصب کنید و از پروژه استفاده کنید  میتونید کامند های زیر را در پاور شل استفاده کنید.

curl.exe –LO https://github.com/dockersamples/node-bulletin-board/archive/master.zip

tar.exe xf master.zip

cd node-bulletin-board/bulletin-board-app

تعریف یک کانتینر با Dockerfile

پس از دانلود پروژه بیایید یک نگاه به فایلی به نام Dockerfile در برنامه bulletin board بیندازیم.

Dockerfile توضیح میدهد که چگونه فایل ها شخصی سیستمی برای یک کانتیر assemble بشوند همچنین میتوانید metadata برای شرح دادن نحوه اجرای یک کانتیر بر روی ایمیج بدهد.

برای اطلاعات بیشتر در مورد dockerfile میتوانید از لینک روبه رو استفاده کنید. نمونه های داکر فایل

ساخت و تست ایمیج خودتان

خب حالا شما چند سورس کد و یک داکر فایل دارید زمانش فرا رسیده که اولین image  خودتان را بسازید و مطمئن شوید که همانطور که انتظار میرود کانتیرها کار میکنند.

مطمئن شوید که داخل دایرکتوری node-bulletin-board/bulletin-board-app هستید داخل یک ترمینال یا پاور شل با استفاده از دستور cd میتوانید تغییر دایرکتوری بدهید. با کدهای زیر میتوانید ایمیج خودتان را برای bulletin board بسازید.

docker build –tag bulletinboard:1.0 .

همانطور که میبیند طبق دستورالعملی که داخل داکرفایل نوشتید پروژه ساخته میشود. اگر این پروسه موفق آمیز بوده باشه در آخر شما یک پیام با متن Successfully tagged bulletinboard:1.0 خواهید دید.

کاربران ویندوز:

 مثال بالا برای استفاده در لینوکس بوده. کاربران ویندوز پس از اطمینان از اینکه کانتینر ها بر  روی سیستم لینوکس ران میشوند اقدام به انجام این کار بدهند.

برای اطمینان شما میتوانید بر روی لوگوی داکر راست کلیک کرده و روی گزینه Switch to Linux containers کلیک کنید. اصلا نگران نباشید کد ها دقیقا همانطور که برای لینوکس ران شدن برای ویندوز هم ران میشوند.

شاید شما یک پیام با متن SECURITY WARNING پس از اجرای image بگیرید. این پیغام با توجه به مجوز های که برای ایمیج ست شده (read، write، execute) برای شما نمایش داده میشود.

ما قرار نیست اطلاعات حساسی را در این مثال به کار ببریم پس به این پیغام بی اعتنا باشید.

اجرای ایمیج به عنوان یک کانتینر

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

docker run –publish 8000:8080 –detach –name bb bulletionboard:1.0

در کد بالا چند flag وجود دارد که در ادامه شرحشان میدهیم:

–publish

این flag از داکر میخواهد که تمام ترافیک ورودی پورت 8000 هاست را به پورت   8080  کانتینر منتقل کند.

کانتینر ها پورت های خود را دارند پس اگر بخواهید از یک شبکه به آنها دسترسی داشته باشید باید ترافیک را forward  کنید به پورت مورد نظر.

در غیر اینصورت سیاست ها و قوانین فایروال این اجازه را به شما نمیدهد که به ترافیک و داده از طریق داکر دسترسی داشته باشید.
(این قوانین به صورت پیشفرضتنظیم شده اند)

–detach

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

–name

یک نام را مشخص میکند که شما میتوانید با دستورات بعدی به کانتینر دسترسی داشته باشید در این مثال این نام bb بود.

از برنامه خود از طریق یک مرورگر و آدرس localhost:8000 یک اجرا بگیرید.

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

در این قسمت میتوانید هر کاری که لازم است را انجام بدهید که مطمئن شوید برنامه طبق انتظار کار میکند. شما میتوانید شروع به تست کردن برنامه کنید.

پس از تست کردن و اطمینان از اینکه برنامه به درستی کار میکند میتوانید آن را حذف کنید این کار را میتوانید با دستور زیر انجام بدهید:

docker rm –force bb

flag استفاده شده در این دستور یعنی –force باعث میشود که کانتینر متوقف شود. سپس شما میتوانید کانتینر را حذف کنید. اگر شما قبلا با دستور docker stop bb این کار را کردید نیازی به افزودن فلگ –force  در این قسمت نیست میتوانید –force  را از کد بالا حذف کنید.

مقاله های مرتبط:

داکر (نصب Docker Engine روی ابونتو)

داکر(قسمت 4 نصب در ویندوز)

محمد حجازی

31 مطلب منتشر شده

محمد حجازی هستم برنامه نویس و علاقمند به تکنولوژی و کامپیوتر. در تلاشیم که همه با هم یه قدم در راستای گسترش علم برداریم.

درباره این مطلب نظر دهید !

محصولات فروش پایتونی ها

%60
تخفیف

آموزش فیگما (Figma)

30,000 تومان
3
%69
تخفیف

آموزش برنامه نویسی پایتون

35,000 تومان
2