در این مقاله قصد دارم مفهوم کانتینرها را توضیح دهم و نحوه اجرای برنامه وب هسته دات نت خود را در یک کانتینر نشان دهم.
![برنامه هسته دات نت را با استفاده از داکر کانتینر کنید](http://pezhvak24.ir/dl/codenevis/firstcode/article/containerize-dotnet-core-application-using-docker/Images/docker.png)
ظروف چیست و چرا از آنها استفاده می کنیم
این یک سناریوی معمولی است که در آن کد روی ماشین توسعهدهنده به خوبی کار میکند، اما وقتی روی ماشین دیگری مستقر میشود کار نمیکند. برای حل این گونه مسائل مربوط به وابستگی های زیست محیطی، کانتینرها وارد صحنه می شوند.
می توانید ظروف را با استفاده از مثال زیر تجسم کنید تا آنها را بهتر درک کنید.
در روزهای قبل، حمل و نقل کالاهای مختلف از یک مکان به مکان دیگر با استفاده از روش های مشابه بسیار دشوار بود. حمل و نقل و بسته بندی کاملاً به چیزهایی که می خواهید حمل کنید بستگی داشت. به عنوان مثال، برخی از کالاها را نمی توان از طریق دریا یا از طریق جاده ها حمل کرد. برای حل این مشکل، اختراع ظروف موفقیت آمیز بود. ظروف را می توان با هر نوع ماده و محصولی بسته بندی کرد. محیط مربوطه برای این محصول را می توان در خود ظرف تهیه یا ایجاد کرد.
بنابراین حمل و نقل هر نوع محصول از طریق هر رسانه ای بسیار آسان شد.
به همین ترتیب، Containers کد و تمام وابستگیهای آن را کپسوله میکند تا برنامه به سرعت و با اطمینان از یک محیط به محیط دیگر بدون دردسر وابستگیهای مرتبط با محیط اجرا شود.
چندین فروشنده در دسترس هستند که کانتینرها را ارائه می دهند و در میان آنها Docker محبوب ترین است. در این مثال قصد داریم از Docker استفاده کنیم.
مراحل ایجاد و اجرای برنامه هسته دات نت در کانتینر:
با استفاده از دستور زیر یک برنامه وب به نام Containerapp ایجاد کنید
"dotnet new webapp -o containerapp"
یک فایل در دایرکتوری ریشه پروژه "Dockerfile" ایجاد کنید. اگر از ویژوال استودیو استفاده می کنید، می توانید روی پروژه -> افزودن آیتم جدید کلیک راست کرده و پشتیبانی Docker را اضافه کنید. به طور خودکار یک فایل docker ایجاد می کند و docker فایل را برای شما نادیده می گیرد.
![برنامه هسته دات نت را با استفاده از داکر کانتینر کنید](http://pezhvak24.ir/dl/codenevis/firstcode/article/containerize-dotnet-core-application-using-docker/Images/001.png)
Dockerfile شامل تمام وابستگی ها و اطلاعات برای اجرای برنامه است. در زیر محتوای فایل docker آمده است.
- #This is base image of dotnet core application which is created by Microsoft.
- FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build-env
- WORKDI /app
- # Copy csproj and restore its dependencies such as NuGet packages
- COPY *.csproj ./
- RUN dotnet restore
- # Copy complete project files and build
- COPY . ./
- RUN dotnet publish -c Release -o out
- # Build runtime image
- FROM mcr.microsoft.com/dotnet/core/aspnet:2.2
- WORKDIR /app
- COPY –from=build-env /app/out .
- ENTRYPOINT ["dotnet", "containerapp.dll", "http://*:5000"]
تصویر بسازید و کانتینر را اجرا کنید
- دستور ایجاد یک تصویرDocker