Sobes.tech
Junior

Konteynerler ne amaçla kullanılır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Konteynerler, uygulamayı tüm bağımlılıklarıyla (kod, kütüphaneler, yapılandırma dosyaları) standartlaştırılmış ve izole bir modüle paketlemek için kullanılır ve bu modül herhangi bir ortamda çalıştırılabilir. Kullanım amaçlarının başlıcaları:

  • İzolasyon: Her uygulama, diğer uygulamalara veya temel sisteme zarar vermeden izole bir ortamda çalışır.
  • Taşınabilirlik: Bir ortamda oluşturulan konteyner, uyumlu bir konteyner motoru (örneğin Docker) yüklü herhangi bir ortamda aynı şekilde çalışacaktır.
  • Yeniden üretilebilirlik: Uygulamanın çalışma ortamı deterministik hale gelir, böylece "benim makinemde çalışıyor" sorunu ortadan kalkar.
  • Bağımlılıkların yönetimi: Gerekli tüm kütüphaneler ve bağımlılıklar uygulama ile birlikte paketlenir.
  • Kaynakların verimli kullanımı: Konteynerler, işletim sistemi çekirdeğini paylaşarak sanal makinelerden daha hafif kaynak kullanımı sağlar.
  • Dağıtım hızlandırma: Konteynerin oluşturulması ve başlatılması, tam bir sanal makine oluşturma ve yapılandırmasından çok daha hızlıdır.
  • Mikroservis mimarisini destekleme: Konteynerler, bağımsız mikroservislerin dağıtımı ve yönetimi için idealdir.
  • Değiştirilemez altyapı (Immutable Infrastructure): Mevcut sunucular güncellenmek yerine, yeni uygulama sürümleriyle yeni konteynerler dağıtılır.

Python ve Flask kullanarak basit bir web uygulaması için Dockerfile örneği:

# Ubuntu tabanlı imaj kullanıyoruz
FROM ubuntu:latest

# Python ve pip yükleme
RUN apt-get update && apt-get install -y python3 python3-pip

# requirements.txt'den bağımlılıkları yükle
COPY requirements.txt /app/
WORKDIR /app
RUN pip3 install --no-cache-dir -r requirements.txt

# Uygulama kodunu kopyala
COPY app.py /app/

# Uygulamanın dinlediği portu aç
EXPOSE 5000

# Uygulamayı başlatmak için komut
CMD ["python3", "app.py"]