0Pricing
FastAPI Backend Development Bootcamp · Ders

FastAPI Uygulamalarını Docker ile Konteynerleştirme

Docker kullanarak FastAPI hizmetinizi konteynerleştirmeyi ve verimli, taşınabilir dağıtım kalıpları oluşturmayı öğrenin.

FastAPI Uygulamalarını Docker ile Konteynerleştirme, CoddyKit'te ücretsiz bir FastAPI Backend Development Bootcamp dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, FastAPI Backend Development Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. FastAPI Backend Development Bootcamp kursu toplamda 4 dersten oluşur.

Docker & FastAPI: Why Containerize?

Hoş geldiniz! Bu derste, Docker kullanarak FastAPI uygulamanızı nasıl paketleyeceğinizi öğreneceğiz. Bu, uygulamanızı inanılmaz derecede tutarlı hale getirir ve herhangi bir yere dağıtılmasını kolaylaştırır.

  • Docker nedir? Yazılımı konteyner adı verilen paketler halinde sunmak için işletim sistemi düzeyinde sanallaştırmayı kullanan bir platformdur.
  • Neden FastAPI için kullanılmalı? Uygulamanızı ve bağımlılıklarını bir araya getirerek "benim bilgisayarımda çalışıyordu" sorununu çözer.

Docker's Core: Images & Containers

Dockerlaştırmaya başlamadan önce, iki temel kavramı anlayalım:

  • Docker İmajı (Image): Bir imajı bir plan veya şablon olarak düşünün. Uygulama kodunuzu, kütüphanelerinizi, bağımlılıklarınızı ve yapılandırmanızı içeren statik, değiştirilemez bir dosyadır.
  • Docker Konteyneri (Container): Konteyner, bir imajın çalıştırılabilir bir örneğidir. Uygulamanızın ana sisteminizden tamamen ayrı, yalıtılmış bir ortamda çalıştığı yerdir.

Bir imajı oluşturursunuz (build), ardından ondan bir konteyner çalıştırırsınız (run).

A Basic FastAPI Service

Konteynerleştireceğimiz basit bir FastAPI uygulamasıyla başlayalım. Bu dosya main.py olarak adlandırılacak.

'Merhaba' mesajı döndüren tek bir uç noktası var.

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {"message": "Hello from FastAPI!"}

# To run locally (without Docker):
# uvicorn main:app --host 0.0.0.0 --port 8000

The Dockerfile: Starting Strong

Bir Dockerfile, bir kullanıcının bir imaj oluşturmak için komut satırında çağırabileceği tüm komutları içeren bir metin dosyasıdır. İmajı oluşturmak için kullandığınız tarifinizdir.

Bir temel imaj (base image) seçerek ve çalışma dizinimizi ayarlayarak başlıyoruz:

  • FROM: Temel imajı belirtir (örneğin, Python sürümü).
  • WORKDIR: Konteyner içindeki mevcut çalışma dizinini ayarlar.
# Dockerfile
FROM python:3.9-slim-buster
WORKDIR /app

FastAPI Dependencies: requirements.txt

FastAPI uygulamanızın çalışması için belirli Python paketlerine ihtiyacı vardır. Bunları bir requirements.txt dosyasında listeleriz. Bu dosya, Docker'a konteyner içinde hangi paketlerin kurulacağını söyler.

İşte basit FastAPI uygulamamız için tipik bir requirements.txt dosyası:

# requirements.txt
fastapi==0.104.1
uvicorn[standard]==0.24.0.post1

Dockerfile: Installing Dependencies

Şimdi, bu bağımlılıkları kopyalayıp yüklemek için Dockerfile dosyamıza komutlar ekleyelim:

  • COPY requirements.txt .: requirements.txt dosyasını yerel makinenizden kapsayıcının /app dizinine kopyalar.
  • RUN pip install ...: requirements.txt içinde listelenen tüm paketleri yüklemek için komutu çalıştırır. --no-cache-dir, imaj boyutunu küçük tutmaya yardımcı olur.
# Dockerfile (continued)
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

Dockerfile: App Code & Entrypoint

Son olarak, uygulama kodumuzu ekliyoruz ve Docker'a onu nasıl çalıştıracağını söylüyoruz:

  • COPY . .: Mevcut dizininizdeki kalan tüm dosyaları (main.py dahil) kapsayıcının /app dizinine kopyalar.
  • EXPOSE 8000: Docker'a kapsayıcının 8000 numaralı portu dinlediğini bildirir. Bu bir güvenlik duvarı kuralı değil, bir dokümantasyondur.
  • CMD [...]: Kapsayıcı başladığında çalıştırılacak komutu belirtir. Uvicorn, FastAPI uygulamanızı bu şekilde sunacaktır.
# Dockerfile (final)
FROM python:3.9-slim-buster
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

Building Your Docker Image

Dockerfile'ınız ve FastAPI uygulamanız hazır olduğuna göre, Docker imajını oluşturma zamanı!

Terminalinizi Dockerfile ve main.py dosyanızın bulunduğu dizinde açın ve ardından şu komutu çalıştırın:

  • docker build .: Docker'a, mevcut dizindeki Dockerfile'ı kullanarak bir imaj oluşturmasını söyler.
  • -t myfastapi-app: İmajı, kolayca referans alabilmek için bir isimle (myfastapi-app) etiketler.
# Terminal Command
docker build -t myfastapi-app .

Running Your FastAPI Container

Görüntü oluşturulduktan sonra, FastAPI uygulamanızı bir kapsayıcı içinde çalıştırabilirsiniz!

docker run komutunu kullanın:

  • -p 8000:8000: Bu, ana makinenizdeki 8000 numaralı bağlantı noktasını kapsayıcı içindeki 8000 numaralı bağlantı noktasına eşler.
  • myfastapi-app: Az önce oluşturduğumuz görüntünün adı.

Çalıştırdıktan sonra tarayıcınızı açın veya http://localhost:8000 adresini ziyaret etmek için curl kullanın.

# Terminal Command
docker run -p 8000:8000 myfastapi-app

Introducing Docker Compose

Birden fazla hizmete sahip uygulamalar için (FastAPI uygulaması ve veritabanı gibi), Docker Compose yönetimi kolaylaştırır. Bir YAML dosyası kullanarak çok kapsayıcılı Docker uygulamalarını tanımlamanıza ve çalıştırmanıza olanak tanır.

Birden fazla docker run komutu çalıştırmak yerine, her şeyi docker-compose.yml dosyasında tanımlayıp docker-compose up komutunu kullanabilirsiniz.

# docker-compose.yml (simplified)
version: '3.8'
services:
  web:
    build: .
    ports:
      - "8000:8000"

Dockerfile Command Check

Yerel makinenizdeki dosyaları veya dizinleri Docker görüntüsüne kopyalamak için hangi Dockerfile komutu kullanılır?

Recap: FastAPI in a Box!

Harika iş çıkardın! FastAPI uygulamanı Docker'ize etmenin temellerini öğrendin. Şunları ele aldık:

  • Docker İmajları (Images) ve Konteynerleri (Containers) arasındaki fark.
  • FROM, WORKDIR, COPY, RUN, EXPOSE ve CMD gibi komutlarla bir Dockerfile yazmak.
  • FastAPI uygulamanı bir Docker konteynerinde oluşturmak (build) ve çalıştırmak (run).
  • Çok servisli uygulamalar için Docker Compose'a kısa bir giriş.

Bu beceri, tutarlı ve ölçeklenebilir dağıtımlar için çok önemlidir!

Sıkça Sorulan Sorular

“FastAPI Uygulamalarını Docker ile Konteynerleştirme” dersi ücretsiz mi?

Evet — “FastAPI Uygulamalarını Docker ile Konteynerleştirme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve FastAPI Backend Development Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. FastAPI Backend Development Bootcamp kursu toplamda 4 dersten oluşur.

“FastAPI Uygulamalarını Docker ile Konteynerleştirme” dersinde ne öğreneceğim?

Docker kullanarak FastAPI hizmetinizi konteynerleştirmeyi ve verimli, taşınabilir dağıtım kalıpları oluşturmayı öğrenin. FastAPI Backend Development Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

FastAPI Backend Development Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te FastAPI Backend Development Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“FastAPI Uygulamalarını Docker ile Konteynerleştirme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu FastAPI Backend Development Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her FastAPI Backend Development Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. FastAPI Uygulamalarını Docker ile Konteynerleştirme
  2. Gunicorn ve Uvicorn ile Dağıtım
  3. Bulut Dağıtım Stratejileri
  4. Ortam Değişkenlerini ve Gizli Bilgileri Yönetme
← FastAPI Backend Development Bootcamp Sayfasına Dön