Adım Adım Docker ile Yerel Geliştirme Ortamı Kurulumu
Docker kullanarak projeleriniz için izole, taşınabilir ve ölçeklenebilir yerel geliştirme ortamlarını nasıl kuracağınızı, temel komutlardan Docker Compose kullanımına kadar detaylı bir rehberle öğrenin.
Caner Serbest
Sistem ve Altyapı
2 min read
Docker ile Yerel Geliştirme Ortamı Kurulumu
Günümüz yazılım dünyasında “benim bilgisayarımda çalışıyor” sorunu, geliştiricilerin en büyük kabuslarından biridir. Projenizi yerel makinenizde çalıştırırken kullandığınız kütüphane sürümleri, veritabanı ayarları veya işletim sistemi farklılıkları, canlıya geçiş aşamasında ciddi hatalara yol açabilir. Bu rehberde, Docker kullanarak bu sorunu kökten nasıl çözeceğinizi ve standart bir geliştirme ortamını nasıl oluşturacağınızı adım adım inceleyeceğiz.
1. Docker Nedir ve Neden Kullanmalıyız?
Docker, uygulamaları ve bunların tüm bağımlılıklarını (kütüphaneler, ayarlar, çalışma zamanları) “konteyner” adı verilen paketler halinde izole eden bir platformdur. Geleneksel sanal makinelerin aksine, Docker işletim sistemi seviyesinde sanallaştırma yaparak çok daha hızlı çalışır ve daha az kaynak tüketir.
2. Kurulum Hazırlığı
Başlamadan önce Docker Desktop uygulamasını işletim sisteminize göre indirin ve kurun. Kurulum bittikten sonra terminalinizi açıp şu komutu girerek kurulumu doğrulayın:
docker --version
3. İlk Konteynerinizi Çalıştırma
Docker dünyasına girişin en temel adımı bir imaj çalıştırmaktır. Terminalde şu komutu yazın:
docker run hello-world
Bu komut, Docker Hub üzerinden hello-world adlı imajı çeker ve çalıştırır. Eğer her şey yolundaysa, “Hello from Docker!” mesajını göreceksiniz.
4. Bir Uygulama için Dockerfile Oluşturma
Gerçek bir projede, kendi Dockerfile dosyamızı oluşturmamız gerekir. Örneğin, basit bir Python Flask uygulaması için bir Dockerfile oluşturalım.
Proje klasörünüzde Dockerfile adında bir dosya oluşturun ve içine şunları yazın:
# Temel imaj olarak Python 3.9 kullan
FROM python:3.9-slim
# Çalışma dizinini ayarla
WORKDIR /app
# Gereksinim dosyasını kopyala
COPY requirements.txt .
# Bağımlılıkları kur
RUN pip install -r requirements.txt
# Uygulama kodunu kopyala
COPY . .
# Çalıştırılacak komut
CMD ["python", "app.py"]
5. Docker Compose ile Çoklu Servis Yönetimi
Modern web uygulamaları genellikle bir veritabanı, bir cache sistemi (Redis gibi) ve uygulama kodundan oluşur. Bunları tek tek yönetmek zordur. İşte burada Docker Compose devreye girer.
Projenizin ana dizininde docker-compose.yml dosyasını oluşturun:
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/app
db:
image: postgres:13
environment:
POSTGRES_DB: mydb
POSTGRES_PASSWORD: password
6. Geliştirme Sürecinde İpuçları
Volume Kullanımı
Yukarıdaki docker-compose.yml dosyasında volumes: - .:/app satırı çok kritiktir. Bu satır, yerel bilgisayarınızdaki kodunuzu konteyner içindeki /app dizinine bağlar (bind mount). Böylece kodda yaptığınız her değişiklik anında konteynerin içine yansır ve uygulamayı yeniden başlatmanıza gerek kalmaz.
İmaj Boyutlarını Küçültme
Üretim ortamına geçtiğinizde alpine tabanlı imajları tercih edin. python:3.9-slim yerine python:3.9-alpine kullanmak, imaj boyutunu onlarca megabayt düşürebilir ve güvenlik açıklarını minimize eder.
Docker İmajlarını Temizleme
Zamanla bilgisayarınızda biriken eski imajlar ve durmuş konteynerler disk alanınızı tüketir. Bunları şu komutla düzenli olarak temizleyebilirsiniz:
docker system prune -a
7. Sonuç
Docker, geliştirme sürecinizi standartlaştırmak için en güçlü araçtır. İlk başta karmaşık görünse de, bir kez Dockerfile ve docker-compose.yml yapılarını kurduğunuzda, yeni bir bilgisayara geçtiğinizde veya ekip arkadaşlarınızla çalışırken “bende çalışıyor” sorununun tamamen ortadan kalktığını göreceksiniz.
Bu rehberde temel adımları attık. Bir sonraki aşamada Docker ağlarını (networks) ve imaj katmanlarını (layers) optimize ederek daha ileri seviye bir altyapı kurabilirsiniz. Unutmayın, Docker ile yazılım geliştirme disiplini kazanmak, DevOps kültürüne atılan ilk ve en önemli adımdır.