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
- Docker Nedir?
- Docker’ın Avantajları
- Docker Kurulumu
- Docker Temel Komutları
- Dockerfile Nedir?
- Docker Image Oluşturma
- Docker Container Çalıştırma
- Docker Compose ile Çoklu Container Yönetimi
- Docker Registry (Docker Hub)
- Docker En İyi Uygulamaları
- Örnek Uygulama ile Docker Kullanımı
- 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.