• 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.

Docker Nedir ? Ne işe yarar ? Nasıl Kullanılır ? (Basit Anlatım)

cnkrt 

Süper Moderatör
Süper Moderatör
Hizmet Sağlayıcı
16 Şub 2023
103
151
KrediPara
989KP
Docker Nedir?

Docker, konteynerleme teknolojisi sağlayan bir platformdur. Konteynerler, uygulamaların ve tüm bağımlılıklarının izole bir şekilde çalıştırılmasını sağlayan hafif, taşınabilir birimlerdir. Docker, bu konteynerleri oluşturmayı, dağıtmayı ve yönetmeyi kolaylaştıran bir dizi araç ve platform sunar.

Ne İçin Kullanılır?

  1. Taşınabilirlik: Docker, bir uygulamayı çalıştırmak için gerekli olan tüm bağımlılıkları ve ortamı içeren konteynerler oluşturarak, uygulamaların farklı ortamlarda (geliştirme, test, üretim) sorunsuz bir şekilde çalışmasını sağlar.
  2. Hızlı Dağıtım: Konteynerler, hızlı başlatma süreleri ve hafif yapısıyla uygulamaların hızlı bir şekilde dağıtılmasını sağlar. Docker, uygulamaları hızlı bir şekilde paketleme ve paylaşma sürecini kolaylaştırır.
  3. İzolasyon ve Güvenlik: Her bir Docker konteyneri, kendi dosya sistemi, ağı ve kullanıcı alanına sahiptir. Bu, konteynerlerin birbirinden izole olmasını ve güvenlikle birbirinden ayrılmasını sağlar.
  4. Kaynak Verimliliği: Docker, sanallaştırma teknolojilerinden daha hafif olup daha az kaynak tüketir. Bu, aynı fiziksel veya sanal makinede daha fazla konteynerin çalışmasına olanak tanır.
Ne İşe Yarar?

Docker, aşağıdaki işlemleri gerçekleştirmek için kullanılır:

  1. Konteyner Oluşturma: Docker, uygulamalarınızın ve bağımlılıklarının bir araya getirildiği konteynerleri oluşturmanızı sağlar.
  2. Konteyner Başlatma: Oluşturulan konteynerleri başlatarak, uygulamalarınızı çalıştırabilirsiniz.
  3. Konteyner Paylaşma ve Dağıtma: Konteynerleri paylaşabilir ve Docker Hub gibi merkezi depolama yerlerinde dağıtarak başkalarının kullanmasına olanak tanırsınız.
  4. Konteyner Yönetimi: Docker, çalışan konteynerleri izlemenizi, durdurmanızı, silmenizi ve güncellemenizi sağlayan kapsamlı bir yönetim arayüzü sunar.
Örnek:

Diyelim ki bir web uygulaması geliştiriyorsunuz ve bu uygulama, bir Python uygulamasını ve bir Nginx web sunucusunu içeriyor. Docker kullanarak, bu uygulamayı kolayca konteynerleştirebilirsiniz.


Kod:
# Python Uygulaması Konteyneri
FROM python:3.8
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

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

Bu Dockerfile, Python uygulamasını içeren bir konteyner ve Nginx web sunucusunu içeren başka bir konteyner oluşturur. Ardından, bu konteynerleri başlatarak, uygulamanızı hızlı bir şekilde dağıtabilirsiniz.


Kod:
# Python Uygulaması Konteynerini Oluştur ve Başlat
docker build -t my-python-app .
docker run -d --name python-container my-python-app

# Nginx Konteynerini Oluştur ve Başlat
docker build -t my-nginx-app .
docker run -d --name nginx-container my-nginx-app

Bu, Docker'ın temel kullanımını basit bir örnekle açıklar. Uygulamaları izole bir şekilde çalıştırmak, taşımak ve dağıtmak için Docker'ın sunduğu kolaylıklarından birkaçını gösterir.

Docker'ın günlük yaşamdan bir örneği, bir yazılım geliştiricisinin uygulama geliştirme sürecini düşünmek olabilir. Diyelim ki bir yazılım geliştirici, bir web uygulaması üzerinde çalışıyor ve bu uygulamanın farklı ortamlarda (lokal geliştirme ortamı, test ortamı, üretim ortamı) sorunsuz bir şekilde çalışmasını istiyor.

İşte Docker'ın günlük yaşamda nasıl kullanılabileceğine dair örnek bir senaryo:

Senaryo: Web Uygulaması Geliştirme

  1. Lokal Geliştirme Ortamı:
    • Geliştirici, uygulamanın yerel geliştirme ortamını Docker kullanarak oluşturur. Bu ortam, uygulamanın çalışması için gerekli tüm bağımlılıkları içeren bir Docker konteyneri olabilir. Geliştirici, kendi bilgisayarında bu konteyneri başlatarak uygulamayı hızlıca çalıştırabilir ve kod değişikliklerini test edebilir.
  2. Versiyon Kontrol Entegrasyonu:
    • Docker, uygulamanın bağımlılıkları ve yapılandırması gibi dosyaların bir araya getirildiği Dockerfile'ı içerebilir. Bu dosyalar, versiyon kontrol sistemine (örneğin, Git) dahil edilir. Geliştirici, ekip üyeleriyle bu Dockerfile'ı paylaşabilir ve herkesin aynı ortamda çalışmasını sağlayabilir.
  3. Test Ortamı:
    • Geliştirici, uygulamanın test edilmesi için Docker kullanarak bir test ortamı oluşturabilir. Bu ortam, üretim ortamına daha yakın bir konfigürasyona sahip olabilir ve geliştirici, uygulamanın test edilmiş bir sürümünü bu ortamda çalıştırarak hataları tespit edebilir.
  4. Üretim Ortamına Dağıtma:
    • Uygulama, Docker konteynerleri aracılığıyla üretim ortamına dağıtılabilir. Docker, uygulamanın yerel geliştirme ortamından üretim ortamına geçirilmesini kolaylaştırır. Bu, uygulamanın farklı ortamlarda tutarlı bir şekilde çalışmasını sağlar.
  5. Çevik Geliştirme ve Hızlı Dağıtım:
    • Docker sayesinde geliştirici, uygulamanın farklı konfigürasyonlarda hızlı bir şekilde çalıştırılmasını, paylaşılmasını ve dağıtılmasını sağlayabilir. Bu, çevik geliştirme sürecini destekler ve yeni özelliklerin hızlı bir şekilde kullanıma alınmasına olanak tanır.
Bu örnek senaryo, Docker'ın yazılım geliştirme süreçlerini daha verimli ve tutarlı hale getirme yeteneğini gösterir. Docker, yazılım geliştiricilerin uygulamalarını izole bir şekilde çalıştırmalarını, taşımalarını ve dağıtmalarını sağlayarak geliştirme süreçlerini hızlandırır ve sorunsuzlaştırır.


 
Üst