Docker একটি ওপেন সোর্স প্ল্যাটফর্ম, যা অ্যাপ্লিকেশনকে কনটেইনারের মধ্যে চালানোর জন্য ব্যবহৃত হয়। Docker কনটেইনারাইজেশনের মাধ্যমে ASP.NET Core অ্যাপ্লিকেশনগুলোকে সহজে ডিপ্লয় এবং স্কেল করা যায়।
Docker ব্যবহার করার জন্য আপনার সিস্টেমে Docker ইন্সটল করতে হবে। Docker ইন্সটল করতে Docker Official Website থেকে আপনার অপারেটিং সিস্টেমের জন্য উপযুক্ত Docker Desktop ডাউনলোড এবং ইন্সটল করুন।
একটি নতুন ASP.NET Core অ্যাপ তৈরি করুন বা একটি বিদ্যমান অ্যাপ ব্যবহার করুন। নতুন অ্যাপ তৈরি করতে:
dotnet new webapi -n DockerizedApp
cd DockerizedApp
Dockerfile
হলো একটি টেক্সট ফাইল, যেখানে কনটেইনার তৈরি এবং কনফিগারেশনের জন্য প্রয়োজনীয় নির্দেশাবলী থাকে। ASP.NET Core অ্যাপের জন্য একটি সাধারণ Dockerfile
:
# Base image
FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
# Build image
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY ["DockerizedApp.csproj", "./"]
RUN dotnet restore "./DockerizedApp.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "DockerizedApp.csproj" -c Release -o /app/build
# Publish image
FROM build AS publish
RUN dotnet publish "DockerizedApp.csproj" -c Release -o /app/publish
# Final stage
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerizedApp.dll"]
Dockerfile এর ভিত্তিতে ইমেজ তৈরি করতে নিচের কমান্ডটি ব্যবহার করুন:
docker build -t dockerizedapp .
এখানে:
-t dockerizedapp
: ইমেজের নাম নির্ধারণ করে।.
: বর্তমান ডিরেক্টরিতে থাকা Dockerfile থেকে ইমেজ তৈরি করে।Docker ইমেজ থেকে একটি কনটেইনার চালাতে:
docker run -d -p 8080:80 --name myapp dockerizedapp
এখানে:
-d
: কনটেইনারকে ব্যাকগ্রাউন্ডে চালায়।-p 8080:80
: হোস্ট মেশিনের 8080 পোর্টকে কনটেইনারের 80 পোর্টের সঙ্গে ম্যাপ করে।--name myapp
: কনটেইনারের নাম নির্ধারণ করে।এখন ব্রাউজারে http://localhost:8080
এ গিয়ে অ্যাপটি অ্যাক্সেস করুন।
যদি একাধিক কনটেইনার চালাতে হয়, তাহলে Docker Compose ব্যবহার করা সুবিধাজনক। docker-compose.yml
ফাইল তৈরি করুন:
version: '3.4'
services:
web:
image: dockerizedapp
build:
context: .
ports:
- "8080:80"
Docker Compose দিয়ে অ্যাপ রান করতে:
docker-compose up -d
চলমান কনটেইনার দেখতে:
docker ps
কনটেইনার থামাতে:
docker stop myapp
কনটেইনার মুছে ফেলতে:
docker rm myapp
ইমেজ মুছে ফেলতে:
docker rmi dockerizedapp
Docker ব্যবহার করে ASP.NET Core অ্যাপ কনটেইনারাইজ করা আপনার অ্যাপ্লিকেশন ডেভেলপমেন্ট এবং ডিপ্লয়মেন্টকে আরও কার্যকর ও পোর্টেবল করে তোলে।
common.read_more