• Forumu şuan da Ziyaretçi olarak görüntülüyorsunuz. Forum ziyaretçileri tüm konu ve bağlantıları görüntüleyemez ve kaynaklara erişimi yoktur. Eğer üye iseniz buradan üye girişi yapın ya da burayı tıklayarak şimdi üye olun.
  • Ubden® Topluluk Projelerine, Aracılığınızla Destek Vermektedir.

    Topluluk projelerine katkı yapmak ve topluğumuza ulaşan genç girişimcilere destek olmak için Buradaki  bağlantıdan işlem kanallarına ulaşabilirsiniz.

    Desteklerinizle 7.000 kişilik bir ekosistem olduk ve büyümeye devam ediyoruz. Desteğiniz için teşekkürler.

Container Teknolojisi Nedir ? Ne İşe Yarar ? (Basit Anlatım)

cnkrt 

Süper Moderatör
Süper Moderatör
Hizmet Sağlayıcı
16 Şub 2023
103
151
KrediPara
989KP
Bir konteyner, bir uygulamanın çalıştığı ortamı paketleyen, taşınabilir ve hafif bir birimdir. Konteyner teknolojisi, uygulamaların bir ortamdan diğerine kolayca taşınabilmesini ve farklı ortamlarda sorunsuzca çalışabilmesini sağlar. Her konteyner, işletim sistemini ve uygulamanın çalışması için gerekli olan tüm bağımlılıkları içerir.

Konteynerler, sanallaştırma teknolojilerinden farklıdır. Sanallaştırma, bir işletim sistemi üzerinde birden çok tam sanal makine çalıştırmak anlamına gelirken, konteynerler, işletim sistemi çekirdeğini paylaşan, ancak ayrı kullanıcı alanlarına ve bağımsız dosya sistemlerine sahip izole uygulama örnekleridir.

Konteynerlerin temel özellikleri şunlardır:

  1. Hafiflik: Konteynerler, bir uygulamanın çalışması için gerekli minimum kaynağı içerir. Bu, daha hızlı başlatma süreleri ve daha etkili kaynak kullanımı anlamına gelir.
  2. Taşınabilirlik: Konteynerler, bir uygulamanın tüm bağımlılıklarıyla birlikte paketlendiği için herhangi bir ortama taşınabilir. Bu, geliştirme ortamından üretim ortamına kadar tutarlılık sağlar.
  3. İzolasyon: Her konteyner, kendi dosya sistemine, ağına ve kullanıcı alanına sahiptir. Bu, bir konteynerin diğerlerinden izole olmasını ve birbirinden etkilenmemesini sağlar.
  4. Hızlı Başlatma: Konteynerler, sanal makinelerden daha hızlı başlarlar. Çünkü konteynerler, bir işletim sistemi çekirdeği paylaştığı için daha az başlatma süresine ihtiyaç duyarlar.
  5. Orkestrasyon: Konteyner orkestrasyon araçları, büyük ve karmaşık uygulamaların yönetimini ve dağıtımını kolaylaştırır. Kubernetes, Docker Swarm, ve Apache Mesos gibi araçlar popüler konteyner orkestrasyon sistemleridir.
Öne çıkan bir konteyner teknolojisi olan Docker, bu konsepti popülerleştirmiştir. Docker, konteynerleri oluşturmak, yönetmek ve dağıtmak için bir dizi araç ve platform sağlar. Bu sayede geliştiriciler, uygulamalarını konteynerler aracılığıyla daha etkili bir şekilde geliştirebilir ve dağıtabilirler.

Diyelim ki bir web uygulaması geliştiriyorsunuz ve bu uygulama, bir veritabanı sunucusu (örneğin, MySQL) ve bir web sunucusu (örneğin, Nginx) içeriyor. Geleneksel bir yöntemle, her biri farklı bağımsız sistem kaynaklarına ihtiyaç duyan bu bileşenleri yüklemek, yapılandırmak ve sürdürmek karmaşık olabilir.

İşte burada konteynerler devreye girer. Bu bileşenleri Docker adlı bir konteynerleme teknolojisi ile birbirinden izole bir şekilde çalıştırabilir ve uygulamanızın tüm bağımlılıklarını bir konteyner içinde paketleyebilirsiniz. İşte basit bir örnek:

  1. Docker Konteynerini Oluşturma:
    • Docker kullanarak, MySQL ve Nginx'in her birini kendi konteynerinizde çalıştırmak için Dockerfile adı verilen bir yapılandırma dosyası oluşturun.

Kod:
# MySQL Konteyneri
FROM mysql:latest
ENV MYSQL_ROOT_PASSWORD=root
ENV MYSQL_DATABASE=mydatabase

# Nginx Konteyneri
FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf

  1. Uygulama Dosyalarınızı Ekleyin:
    • MySQL ve Nginx için gerekli yapılandırma dosyalarını ve web uygulamanızın dosyalarını ekleyin.
  2. Docker Konteynerini Başlatma:
    • Docker komutları kullanarak, oluşturduğunuz konteynerleri başlatın. Bu komutlar, her konteyner için bağımsız ortamlar oluşturur.
Kod:
# MySQL Konteynerini Başlatma
docker run -d --name mysql-container my-mysql-image

# Nginx Konteynerini Başlatma
docker run -d --name nginx-container my-nginx-image

Bu basit örnekte, MySQL ve Nginx, kendi konteynerlerinde izole bir şekilde çalışır. Her iki konteyner de kendi bağımsız ortamlarına ve yapılandırmalarına sahiptir. Ayrıca, uygulamanızın tüm bağımlılıkları ve konfigürasyonları bu konteynerler içinde paketlenmiştir.

Bu, konteynerlerin uygulamaları hızlı bir şekilde paketleme, dağıtma ve yönetme yeteneğinin basit bir örneğidir. Bu sayede, uygulamalarınızı farklı ortamlara taşımak daha kolay ve tutarlı hale gelir.

 
Üst