0Pricing
Docker & DevOps Fundamentals · Ders

Compose Dosyası Yazma

Hizmetleri, ağları ve birimleri tanımlamak için `docker-compose.yml` YAML söz dizimini öğrenin.

Compose Dosyası Yazma, CoddyKit'te ücretsiz bir Docker & DevOps Fundamentals dersidir. Bu, 4 dersinin 2. 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, Docker & DevOps Fundamentals öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.

Compose Dosyası: Taslak

Docker Compose dosyaları yazmaya hoş geldiniz! docker-compose.yml dosyası, birden çok kapsayıcıdan oluşan Docker uygulamalarını tanımlayıp çalıştırmanız için taslağınızdır.

Uygulamanızın hizmetlerini, ağlarını ve birimlerini tek bir dosyada yapılandırmak için YAML söz dizimini kullanır.

Compose Dosyası Yazma — resim 1

YAML: Hızlı Bir Hatırlatma

Docker Compose dosyaları YAML (YAML Ain't Markup Language) ile yazılır. YAML, insanların kolayca okuyabildiği bir veri serileştirme standardıdır.

  • Anahtar-Değer Çiftleri: key: value
  • Listeler: Öğeler tire işaretiyle başlar (- item)
  • Girinti: Yapıyı ve hiyerarşiyi tanımlamak için çok önemlidir. Sekme yerine boşluk kullanın!

`version` Anahtarı

Her docker-compose.yml dosyası bir version anahtarıyla başlar. Bu anahtar Compose dosyası biçiminin sürümünü belirtir ve Docker Compose'un dosyanızı nasıl yorumlayacağını anlamasına yardımcı olur.

Modern uygulamaların çoğu için '3.8' veya benzer bir '3.x' sürümü önerilir.

version: '3.8'

`services` Tanımlama

services bölümü, uygulamanızı oluşturan ayrı kapsayıcıları (hizmetleri) tanımladığınız yerdir. Her hizmet, web sunucusu veya veritabanı gibi bir bileşeni temsil eder.

services altında, seçtiğiniz adla her hizmeti listelersiniz.

version: '3.8'
services:
  web:
    # Service configuration goes here
  database:
    # Another service's configuration

Hizmet `image` ve `ports` Anahtarları

Bir hizmet tanımının içinde image, kullanılacak Docker imajını belirtir (ör. nginx:latest). ports anahtarı, kapsayıcı bağlantı noktalarını ana makine bağlantı noktalarıyla eşleyerek dış erişime izin verir.

  • "80:80", ana makinenin 80 numaralı bağlantı noktasını kapsayıcının 80 numaralı bağlantı noktasına eşler.
version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Hizmet `volumes` Anahtarı

Bir hizmet içindeki volumes anahtarı, ana makinenizdeki yolları kapsayıcıya bağlamanıza veya kalıcı depolama için adlandırılmış birimler kullanmanıza olanak tanır.

Bu örnek, yerel ./app dizinini kapsayıcının içindeki /usr/src/app yoluna bağlar.

version: '3.8'
services:
  app:
    image: my-node-app
    volumes:
      - ./app:/usr/src/app

Hizmet `environment` Değişkenleri

Ortam değişkenlerini hizmetinizin kapsayıcılarına aktarmak için environment anahtarını kullanın. Bu, ortamlar arasında değişebilecek yapılandırmalar için kritik öneme sahiptir (örneğin, veritabanı bağlantı dizeleri).

Değişkenler anahtar-değer çiftleri olarak veya liste biçiminde belirtilebilir.

version: '3.8'
services:
  backend:
    image: my-api
    environment:
      - DATABASE_URL=postgres://user:pass@host:5432/db
      - NODE_ENV=development

Üst Düzey `networks` ve `volumes`

Bunları hizmetlerin içinde tanımlamanın yanı sıra, docker-compose.yml dosyanızın üst düzeyinde özel adlandırılmış birimleri ve ağları da bildirebilirsiniz.

Bu, verilerin kalıcılığı ve kapsayıcılar arası iletişim için daha düzenli ve yeniden kullanılabilir tanımlamalar yapmanızı sağlar.

version: '3.8'
services:
  # ... service definitions ...

networks:
  my_app_network:
    # custom network configuration

volumes:
  db_data:
    # named volume configuration

Hepsini Bir Araya Getirme

Öğrendiklerimizi bir araya getiren küçük bir örneği inceleyelim. Bu örnek, bir imaj, bağlantı noktaları ve adlandırılmış bir birim kullanarak bir web hizmeti ile bir veritabanı hizmeti tanımlar.

Girintilemenin yapıyı nasıl oluşturduğuna dikkat edin.

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - web_content:/usr/share/nginx/html
  db:
    image: postgres:13
    environment:
      - POSTGRES_DB=mydb
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=secret

volumes:
  web_content:
  db_data:

Compose Dosyası Denetimi

Aşağıdaki YAML parçacıklarından hangisi, `myapi:1.0` imajını kullanan ve kapsayıcının 3000 numaralı bağlantı noktasını ana makinenin 8080 numaralı bağlantı noktasına açan, 'api' adlı bir Docker Compose hizmetini doğru şekilde tanımlar?

Özet: Compose Dosyasının Temel Unsurları

Harika iş çıkardınız! docker-compose.yml dosyası yazmanın temellerini öğrendiniz.

  • Dosya bir version ile başlar.
  • services, uygulamanızın bileşenlerini tanımlar.
  • Her hizmet bir image kullanır; ports ile bağlantı noktalarını dışarı açabilir, kalıcılık için volumes kullanabilir ve environment değişkenlerini ayarlayabilir.
  • Üst düzey networks ve volumes, gelişmiş yapılandırmaya olanak tanır.

Bu YAML yapısına hâkim olmak, birden çok kapsayıcı içeren uygulamaları düzenlemek için çok önemlidir!

Sıkça Sorulan Sorular

“Compose Dosyası Yazma” dersi ücretsiz mi?

Evet — “Compose Dosyası Yazma” 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 Docker & DevOps Fundamentals kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Docker & DevOps Fundamentals kursu toplamda 4 dersten oluşur.

“Compose Dosyası Yazma” dersinde ne öğreneceğim?

Hizmetleri, ağları ve birimleri tanımlamak için `docker-compose.yml` YAML söz dizimini öğrenin. Docker & DevOps Fundamentals 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.

Docker & DevOps Fundamentals öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Docker & DevOps Fundamentals, 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 2. dersidir.

“Compose Dosyası Yazma” 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 Docker & DevOps Fundamentals dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Docker & DevOps Fundamentals 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. Docker Compose Nedir?
  2. Compose Dosyası Yazma
  3. Birden Çok Hizmet İçeren Uygulamaları Dağıtma
  4. Ortam Değişkenleri ve .env Dosyaları
← Docker & DevOps Fundamentals Sayfasına Dön