pexels_temp

Docker Dersleri: Uygulamaları Paketleme ve Dağıtma Rehberi

Docker Dersleri: Uygulamaları Kolayca Paketleme ve Dağıtma

Günümüzde yazılım geliştirme süreçleri, uygulamaların hızlı ve güvenilir bir şekilde dağıtılmasını gerektiriyor. Docker, bu ihtiyaca cevap veren güçlü bir araçtır. Bu makalede, Docker’ın ne olduğunu, nasıl çalıştığını ve uygulamalarınızı nasıl paketleyip dağıtabileceğinizi adım adım öğreneceksiniz. Docker dersleri ile uygulama geliştirme sürecinizi kolaylaştırın!

İçindekiler

  1. Docker Nedir?
  2. Docker’ın Avantajları
  3. Docker Kurulumu
  4. Docker Temel Komutları
  5. Dockerfile Nedir?
  6. Docker Image Oluşturma
  7. Docker Container Çalıştırma
  8. Docker Compose ile Çoklu Container Yönetimi
  9. Docker Registry (Docker Hub)
  10. Docker En İyi Uygulamaları
  11. Örnek Uygulama ile Docker Kullanımı
  12. Sonuç

Docker Nedir?

Docker, uygulamaları ve bağımlılıklarını içeren taşınabilir, hafif ve bağımsız konteynerler oluşturmaya ve yönetmeye olanak tanıyan bir konteynerizasyon platformudur. Konteynerler, işletim sistemi seviyesinde sanallaştırma sağlayarak, uygulamaların farklı ortamlarda tutarlı bir şekilde çalışmasını sağlar. Docker dersleri sayesinde bu teknolojinin temellerini öğrenebilirsiniz.

Docker’ın Avantajları

  • Tutarlılık: Uygulamalar her ortamda aynı şekilde çalışır.
  • İzolasyon: Konteynerler birbirinden izole edilmiştir, bu da güvenlik ve istikrar sağlar.
  • Taşınabilirlik: Konteynerler kolayca farklı ortamlara taşınabilir (geliştirme, test, üretim).
  • Verimlilik: Kaynakları daha verimli kullanır.
  • Hız: Uygulamaları hızlı bir şekilde dağıtma ve ölçeklendirme imkanı sunar.
  • Sürüm Kontrolü: Docker image’ları sürüm kontrolü altında tutulabilir.

Docker Kurulumu

Docker’ı kurmak için işletim sisteminize uygun adımları takip etmeniz gerekmektedir. Docker’ın resmi web sitesinden (docs.docker.com) işletim sisteminize (Windows, macOS, Linux) uygun kurulum talimatlarına ulaşabilirsiniz. Kurulum tamamlandıktan sonra, terminalinizde docker version komutunu çalıştırarak Docker’ın başarıyla kurulduğunu doğrulayabilirsiniz. Bu Docker dersleri, size kurulum konusunda yardımcı olacaktır.

Docker Temel Komutları

Docker kullanırken en sık kullanacağınız temel komutlar şunlardır:

  • docker run: Yeni bir konteyner oluşturur ve çalıştırır.
  • docker ps: Çalışan konteynerleri listeler.
  • docker stop: Çalışan bir konteyneri durdurur.
  • docker start: Durdurulmuş bir konteyneri başlatır.
  • docker rm: Bir konteyneri siler.
  • docker images: Mevcut Docker image’larını listeler.
  • docker build: Bir Dockerfile’dan image oluşturur.
  • docker pull: Bir Docker Registry’den image indirir.
  • docker push: Bir Docker Registry’ye image yükler.

Dockerfile Nedir?

Dockerfile, bir Docker image’ını oluşturmak için kullanılan bir metin dosyasıdır. Bu dosya, image’ın nasıl oluşturulacağını adım adım tarif eden talimatlar içerir. Örneğin, hangi temel image’ın kullanılacağı, hangi paketlerin kurulacağı, hangi dosyaların kopyalanacağı ve hangi komutların çalıştırılacağı gibi bilgiler Dockerfile’da belirtilir. Docker dersleri arasında Dockerfile oluşturma da önemli bir yer tutar.

Örnek bir Dockerfile:


FROM ubuntu:latest

RUN apt-get update && apt-get install -y python3 python3-pip

WORKDIR /app

COPY . .

RUN pip3 install -r requirements.txt

CMD ["python3", "app.py"]

Docker Image Oluşturma

Dockerfile’ı oluşturduktan sonra, bu dosyayı kullanarak bir Docker image’ı oluşturabilirsiniz. Bunun için terminalde aşağıdaki komutu kullanın:

docker build -t uygulama_adi .

Bu komut, bulunduğunuz dizindeki Dockerfile’ı kullanarak uygulama_adi adında bir image oluşturur. -t parametresi, image’a bir etiket (tag) atamanızı sağlar. Nokta (.) ise, Dockerfile’ın bulunduğu dizini belirtir. Docker dersleri ile image oluşturma sürecini adım adım takip edebilirsiniz.

Docker Container Çalıştırma

Docker image’ını oluşturduktan sonra, bu image’dan bir konteyner çalıştırabilirsiniz. Bunun için terminalde aşağıdaki komutu kullanın:

docker run -d -p 8000:8000 uygulama_adi

Bu komut, uygulama_adi image’ından bir konteyner oluşturur ve arka planda (-d) çalıştırır. -p 8000:8000 parametresi, konteyner içindeki 8000 portunu host makinenizdeki 8000 portuna eşler. Bu sayede, uygulamanıza host makinenizden erişebilirsiniz. Bu Docker dersleri, container çalıştırma konusunda size rehberlik edecektir.

Docker Compose ile Çoklu Container Yönetimi

Docker Compose, birden fazla konteynerden oluşan uygulamaları tanımlamak ve yönetmek için kullanılan bir araçtır. Bir YAML dosyası (docker-compose.yml) kullanarak uygulamanızın servislerini, ağlarını ve diğer bağımlılıklarını tanımlayabilirsiniz. Docker Compose, özellikle mikroservis mimarisi kullanan uygulamalar için çok faydalıdır. Bu Docker dersleri, Docker Compose’un temel kullanımını öğretir.

Örnek bir docker-compose.yml dosyası:


version: "3.9"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
  db:
    image: postgres:13
    environment:
      POSTGRES_USER: kullanici
      POSTGRES_PASSWORD: sifre

Bu dosyayı kullanarak uygulamayı başlatmak için terminalde aşağıdaki komutu kullanın:

docker-compose up -d

Docker Registry (Docker Hub)

Docker Registry, Docker image’larını depolamak ve paylaşmak için kullanılan bir depodur. Docker Hub, Docker’ın resmi registry’sidir ve milyonlarca halka açık image’ı içerir. Ayrıca, özel registry’ler de oluşturabilirsiniz. Docker Registry, image’larınızı farklı ortamlara dağıtmanızı ve sürüm kontrolü yapmanızı kolaylaştırır. Docker dersleri ile registry kullanımı hakkında bilgi edinin.

Docker En İyi Uygulamaları

Docker kullanırken dikkat etmeniz gereken bazı en iyi uygulamalar şunlardır:

  • Küçük ve Basit Image’lar Oluşturun: Image boyutunu küçültmek için gereksiz paketleri ve dosyaları temizleyin.
  • Güvenlik Açıklarını Tarayın: Image’larınızdaki güvenlik açıklarını düzenli olarak tarayın ve güncelleyin.
  • Sürüm Etiketleri Kullanın: Image’larınızı sürüm etiketleriyle etiketleyin (örneğin, v1.0, latest).
  • Gizli Bilgileri Ortam Değişkenlerinde Saklayın: API anahtarları, şifreler gibi gizli bilgileri Dockerfile’da doğrudan saklamayın, ortam değişkenlerini kullanın.
  • Kalıcılığı Dikkate Alın: Verilerinizi konteyner içinde saklamayın, kalıcı depolama çözümleri kullanın (örneğin, Docker Volumes).

Örnek Uygulama ile Docker Kullanımı

Şimdi basit bir Python uygulamasını Dockerize edelim. Aşağıdaki gibi bir app.py dosyası oluşturalım:


from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Merhaba Docker!"

if __name__ == "__main__":
    app.run(debug=True, host='0.0.0.0')

Aşağıdaki gibi bir requirements.txt dosyası oluşturalım:

Flask

Aşağıdaki gibi bir Dockerfile oluşturalım:


FROM python:3.9-slim-buster

WORKDIR /app

COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD ["python", "app.py"]

Şimdi terminalde aşağıdaki komutları çalıştırarak uygulamayı Dockerize edebiliriz:

docker build -t hello-docker .
docker run -d -p 5000:5000 hello-docker

Tarayıcınızda http://localhost:5000 adresine giderek uygulamaya erişebilirsiniz. Bu Docker dersleri ile basit bir uygulamanın nasıl Dockerize edileceğini öğrenmiş oldunuz.

Sonuç

Bu makalede, Docker’ın ne olduğunu, nasıl çalıştığını ve uygulamalarınızı nasıl paketleyip dağıtabileceğinizi adım adım öğrendiniz. Docker dersleri ile yazılım geliştirme sürecinizi kolaylaştırabilir, uygulamalarınızı daha hızlı ve güvenilir bir şekilde dağıtabilirsiniz. Docker’ı öğrenmek ve kullanmak, modern yazılım geliştirme dünyasında size önemli bir avantaj sağlayacaktır.

Leave A Comment

Your email address will not be published. Required fields are marked *