Docker ve .NET: Uygulamaları Containerize Etme Rehberi

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

Docker ve .NET: Uygulamaları Her Yerde Çalıştırma Sanatı​


Docker, uygulamanızı kodları, çalışma zamanı (runtime), kütüphaneleri ve ayarlarıyla birlikte tek bir paket (Image) haline getiren platformdur. Bu paketler "Container" adı verilen izole ortamlarda çalışır.



1. Neden .NET İçin Docker Kullanmalıyız?​



  • []Tutarlılık: Geliştirme, test ve canlı ortamlar birebir aynı olur.
    []Hızlı Dağıtım (Deployment): Uygulamanızı saniyeler içinde ayağa kaldırabilir veya ölçeklendirebilirsiniz.
    []Microservices:** Farklı projeleri (API, Database, Redis) birbirini etkilemeden yan yana çalıştırabilirsiniz.
    []Linux Desteği:** .NET Core ve sonrasındaki sürümlerle uygulamalarınızı çok daha ucuz olan Linux sunucularda Docker üzerinden çalıştırabilirsiniz.




2. Dockerfile: Uygulamanın Reçetesi​


Bir .NET projesini Dockerize etmek için projenin kök dizinine Dockerfile isimli bir dosya eklenir. Bu dosya, imajın nasıl oluşturulacağını adım adım anlatır.

Kod:
1. Aşama: Uygulamayı derle (Build)

FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
WORKDIR /app
Dosyaları kopyala ve geri yükle (Restore)

COPY *.csproj ./
RUN dotnet restore
Yayınla (Publish)

COPY . ./
RUN dotnet publish -c Release -o out
2. Aşama: Çalışma zamanı imajını oluştur (Runtime)

FROM mcr.microsoft.com/dotnet/aspnet:8.0
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "Uygulamam.dll"]



3. Çoklu Konteyner Yönetimi: Docker Compose​


Uygulamanız sadece koddan ibaret değildir; genellikle bir veritabanına (SQL Server, PostgreSQL) veya bir cache mekanizmasına (Redis) ihtiyaç duyar. Docker Compose, bu bileşenleri tek bir komutla ayağa kaldırmanızı sağlar.

docker-compose.yml Örneği:
YAML:
services:
webapi:
build: .
ports:
- "8080:80"
depends_on:
- db
db:
image: mcr.microsoft.com/mssql/server
environment:
SA_PASSWORD: "Sifre123!"
ACCEPT_EULA: "Y"



4. .NET Geliştiricileri İçin Docker Avantajları[/TABLE]

ÖzellikGeleneksel IIS / SunucuDocker Container
KurulumFramework sürümü manuel kurulur.İmaj içinde hazır gelir.
İzolasyonAynı sunucudaki uygulamalar birbirini etkileyebilir.Tamamen izole ve güvenli.
TaşınabilirlikSunucudan sunucuya taşımak zordur.İmajı her yere taşıyabilirsiniz.



Sonuç​


Docker, .NET dünyasında artık "olsa iyi olur" denilen bir araç değil, modern yazılım mimarisinin zorunlu bir parçasıdır. Bulut bilişim (Azure, AWS, Google Cloud) ve Kubernetes gibi devasa sistemlere giden yolun ilk durağı Docker'dan geçer.​
 
Geri
Üst