Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills
20.11.2024

Docker Nedir ve Nasıl Çalışır?

Docker, hafif, taşınabilir konteynerler içindeki uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştiren açık kaynaklı bir platformdur. Konteynerler bir uygulamayı ve bağımlılıklarını kapsülleyerek geliştirmeden üretime kadar çeşitli ortamlarda tutarlı bir şekilde çalışmasını sağlar. Bu makale Docker’ın ne olduğunu, nasıl çalıştığını ve faydalarını inceleyecektir.

1. Docker’ı Anlamak

Docker, konteynerleştirme teknolojisini kullanarak uygulama dağıtımını basitleştirmek için tasarlanmıştır. Her örnek için tam bir işletim sistemi gerektiren geleneksel sanal makinelerin (VM) aksine, Docker konteynerleri yalıtımı korurken ana işletim sistemi çekirdeğini paylaşır. Bu, daha verimli kaynak kullanımı ve daha hızlı uygulama dağıtımı sağlar.

2. Docker’ın Temel Bileşenleri

2.1. Docker Motoru

Docker Engine, konteynerleri çalıştıran ve yöneten temel bileşendir. Şunları içerir:

  • Docker Daemon: Docker konteynerlerini yöneten bir arka plan hizmeti.
  • Docker CLI (Komut Satırı Arayüzü): Kullanıcıların konteyner oluşturmak, yönetmek ve çalıştırmak için Docker Daemon ile etkileşime girmesini sağlayan bir komut satırı aracı.

2.2. Docker Görüntüleri

Docker imajları, konteyner oluşturmak için kullanılan salt okunur şablonlardır. Bir imaj, uygulama kodu, kütüphaneler, bağımlılıklar ve ortam değişkenleri dahil olmak üzere bir uygulamayı çalıştırmak için gereken her şeyi içerir. İmajlar, imajın montajı için talimatlar içeren bir Dockerfile’dan oluşturulur.

2.3. Docker Hub

Docker Hub, kullanıcıların Docker görüntülerini paylaşmasına ve dağıtmasına olanak tanıyan bulut tabanlı bir kayıt defteridir. Görüntüleri depolamak ve yönetmek için bir depo sağlayarak uygulamaları dağıtmak için kayıt defterinden görüntüleri çekmeyi kolaylaştırır.

3. Docker Nasıl Çalışır?

Adım 1: Docker dosyası oluşturma

Dockerfile, bir Docker görüntüsünün nasıl oluşturulacağına ilişkin talimatları içeren bir betiktir. Örneğin, bir web uygulaması görüntüsü oluşturmak için basit bir Docker dosyası aşağıdaki gibi görünebilir:

# Üst imaj olarak resmi bir Node.js çalışma zamanı kullanın FROM node:14 # Konteynerdeki çalışma dizinini ayarlayın WORKDIR /usr/src/app # package.json dosyasını kopyalayın ve bağımlılıkları yükleyin COPY package*.json ./ RUN npm install # Uygulama kodunun geri kalanını kopyalayın COPY . # Uygulamanın çalıştığı bağlantı noktasını gösterin EXPOSE 8080 # Uygulamayı çalıştırmak için komut CMD [“node”, “app.js”]

Adım 2: Docker Görüntüsünü Oluşturma

Dockerfile oluşturulduktan sonra, aşağıdaki komutu kullanarak Docker görüntüsünü oluşturabilirsiniz:

docker build -t my-app .

Bu komut Docker’a geçerli dizindeki Dockerfile’ı kullanarak my-app adında bir görüntü oluşturmasını söyler.

Adım 3: Docker Konteynerini Çalıştırma

İmajı oluşturduktan sonra, bu imaja dayalı bir konteyner çalıştırabilirsiniz:

docker run -p 8080:8080 my-app

Bu komut my-app imajından yeni bir konteyner başlatır ve ana bilgisayardaki 8080 numaralı portu konteynerdeki 8080 numaralı portla eşler.

4. Docker Kullanmanın Faydaları

  • Taşınabilirlik: Docker konteynerleri Docker yüklü herhangi bir sistemde çalışabilir, bu da uygulamaların ortamlar arasında taşınmasını kolaylaştırır.
  • Tutarlılık: Docker, uygulamaların farklı ortamlarda aynı şekilde çalışmasını sağlayarak “benim makinemde çalışıyor” sorunlarını azaltır.
  • İzolasyon: Her konteyner kendi ortamında çalışır ve birden fazla uygulamanın aynı ana bilgisayarda çakışma olmadan bir arada bulunmasına olanak tanır.
  • Kaynak Verimliliği: Konteynerler hafiftir ve ana işletim sistemi çekirdeğini paylaşarak geleneksel sanal makinelere kıyasla daha iyi kaynak kullanımı sağlar.

5. Sonuç

Docker, geliştiriciler ve sistem yöneticileri için uygulamaları dağıtma ve yönetme sürecini basitleştiren güçlü bir araçtır. Docker, konteynerleri kullanarak çeşitli ortamlarda uygulamaları paketlemek ve çalıştırmak için tutarlı ve verimli bir yol sağlar. Docker’ı ve bileşenlerini anlamak, geliştirme ve dağıtım iş akışlarınızı önemli ölçüde geliştirebilir.

Test your skills on our all Hosting services and get 15% off!

Use code at checkout:

Skills