Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu video, bir eğitmen tarafından sunulan Docker ve Docker Compose konulu kapsamlı bir eğitim içeriğidir.
- Video, Docker Compose'un ne olduğunu ve nasıl kullanıldığını adım adım anlatmaktadır. Eğitmen, bir Node.js projesi üzerinden API, veritabanı (PostgreSQL) ve PG Admin servislerini nasıl bir araya getireceğini gösteriyor. İçerikte Docker Compose dosyasının yapısı, Dockerfile'ın nasıl oluşturulacağı, run ve cmd komutlarının farkı, servislerin nasıl ayağa kaldırılacağı ve durdurulacağı detaylı olarak açıklanıyor.
- Eğitim, Alpine işletim sisteminin tercih edilme nedenleri, environment, image, volume ve build etiketlerinin kullanımı gibi teknik detayları da içermektedir. Video, bir proje geliştirme sürecinde Docker ve Docker Compose'un nasıl kullanılabileceğini gösteren pratik bir rehber niteliğindedir.
- Docker Compose Nedir?
- Docker Compose, birden fazla servisi bir araya getirerek aynı anda çalıştırıp durdurabilmemizi sağlayan bir araçtır.
- Docker Compose kullanabilmek için bir Docker Compose dosyasına ihtiyaç vardır.
- Bu videoda, bir Node.js projesi, Nes.js framework, PostgreSQL veritabanı ve PgAdmin yönetim paneli gibi servislerin Docker Compose ile birlikte çalıştırılması gösterilecektir.
- 01:10Docker Compose Dosyası Yapısı
- Docker Compose dosyasında ilk olarak versiyon bilgisi belirtilmelidir çünkü farklı versiyonlarda farklı komutlar ve yazım şekilleri vardır.
- "services" etiketi altında farklı servisler tanımlanır ve her servis kendi başlığı altında özelliklerini içerir.
- Servis isimleri özel değildir, istenilen isim verilebilir.
- 01:59Port ve Network Yapılandırması
- Port etiketi ile host bilgisayarı ile konteyner arasında iletişim kurulabilmesi için port yönlendirme yapılır.
- Servislerin birbirleriyle iletişim kurabilmesi için "networks" etiketi kullanılır.
- "networks" bölümünde bir ağ oluşturulur ve bu ağ, farklı servisler arasında iletişim kurabilmesi için bağlanır.
- 04:09Volume Kullanımı
- Volume, konteyner içindeki verilerin silinmeden saklanmasını sağlayan bir mekanımdır.
- Verileri bir klasöre kopyalayarak saklayabilir veya özel bir volume oluşturabilirsiniz.
- Volume kullanarak veritabanı dosyalarını koruyabilirsiniz, böylece konteyner silindiğinde veriler kaybolmaz.
- 06:38Dockerfile Yapılandırması
- API servisinde "build" etiketi kullanılarak bir Dockerfile belirtilir ve bu Dockerfile kullanılarak imaj oluşturulur.
- Dockerfile'da "FROM node:18.18-alpine" ile Node.js 18.18 sürümü ve Alpine Linux işletim sistemi kullanılır.
- Alpine Linux, daha az yer kaplayan ve daha hafif bir işletim sistemidir.
- 08:09Dockerfile'da RUN ve CMD Komutlarının Kullanımı
- RUN ve CMD komutları Dockerfile'da farklı amaçlarla kullanılır.
- CMD komutu, imaj oluşturulduktan sonra üzerine işlemler yapmak için kullanılırken, RUN komutu imaj oluşturulurken içine katmanlar eklemek için kullanılır.
- RUN komutu ile imaj oluşturulurken gerekli paketler kurulabilirken, CMD ile daha karmaşık işlemler (github'dan proje indirme, dosya silme vb.) yapılabilir.
- 09:19CMD Komutu ile Komut Dosyası Çalıştırma
- CMD komutu ile uzun komut yığınını engellemek için komutlar bir dosyaya yazılabilir ve bu dosya çalıştırılabilir.
- Entry point adlı komut dosyasında, app klasörüne giriş yapılarak git kurulumu, github'dan proje klonlama ve dosya kopyalama işlemleri gerçekleştirilebilir.
- Komut dosyası çalıştırıldıktan sonra npm install ile paketler kurulur ve projenin çalıştırılması sağlanır.
- 10:51Docker Compose ile Servisleri Ayağa Kaldırma
- Docker Compose dosyası ile tüm servisler tek bir komutla ayağa kaldırılabilir.
- "docker compose up" komutu servisleri ayağa kaldırırken, "docker compose down" komutu servisleri kapatır.
- -d flag'i eklenerek servisler arka planda çalıştırılabilir.
- 12:23Veritabanına Bağlanma ve Servisleri Kapatma
- PG Admin ile veritabanına bağlanırken, Docker Compose dosyasında tanımlanan servis ismi (örneğin "db") kullanılır.
- Node.js projesine veritabanı bağlantısı için environment değişkenleri kullanılarak yapılandırılır.
- Servisleri kapatmak için "docker compose down" komutu kullanılır ve bu komut tüm servisleri durdurup konteynerleri temizler.