Docker Nedir, Nasıl Kullanılır? Kurulum, İlk Container ve Dockerfile Örneği
Docker'ın ne işe yaradığını, kurulumunu, ilk container'ın çalıştırılmasını ve bir Python uygulaması için Dockerfile yazılmasını adım adım anlatır.
"Benim bilgisayarımda çalışıyordu" cümlesinin ilacı Docker'dır. Uygulamanızı, ihtiyaç duyduğu dil sürümü ve kütüphanelerle birlikte container adı verilen izole bir pakete koyar; bu paket kendi bilgisayarınızda da sunucuda da aynı çalışır.
Sanal makineden farkı: container bütün işletim sistemini taşımaz, ana sistemin çekirdeğini paylaşır; bu yüzden saniyeler içinde açılır ve az kaynak harcar.
- 7 steps
- 3 min read
-
Docker'ı kurun
Windows ve macOS için docker.com adresinden Docker Desktop indirilir. Windows'ta WSL 2 desteği gerekir; kurulum sihirbazı bunu önerir. Kişisel kullanım ve küçük işletmeler için ücretsizdir, büyük şirketlerde lisans şartı vardır. Linux'ta Docker Engine'i resmi dokümandaki komutlarla kurun. Kontrol:
docker --version docker run hello-worldHello-world mesajını görüyorsanız kurulum tamam.
-
Temel kavramlar
- Image (imaj): uygulamanın salt okunur şablonu.
- Container: bir imajın çalışan örneği.
- Dockerfile: imajı nasıl üreteceğinizi anlatan tarif dosyası.
- Docker Hub: hazır imajların bulunduğu depo.
-
Hazır bir web sunucusu çalıştırın
docker run -d --name web -p 8080:80 nginx-darka planda çalıştırır,--nameisim verir,-p 8080:80bilgisayarınızın 8080 numaralı portunu container içindeki 80'e bağlar. Tarayıcıdahttp://localhost:8080adresinde nginx karşılama sayfasını görürsünüz.docker ps # çalışanları listele docker logs web # günlükleri oku docker stop web # durdur docker rm web # sil -
Kendi uygulamanız için Dockerfile yazın
Basit bir Python programı olan
app.pyve bağımlılık listesirequirements.txtiçinDockerfile:FROM python:3.14-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["python", "app.py"]Sırası önemlidir: bağımlılıkları kaynak koddan önce kopyalarsanız, kod değiştiğinde Docker bağımlılık katmanını önbellekten kullanır ve derleme hızlanır.
-
İmajı derleyin ve çalıştırın
docker build -t uygulamam . docker run --rm uygulamam-timaja ad verir, sondaki nokta Dockerfile'ın bulunduğu klasörü gösterir.--rmcontainer bitince onu otomatik siler. -
Veriyi kalıcı yapın: volume
docker run -d -v veri:/var/lib/data uygulamamContainer silindiğinde içindeki dosyalar da gider. Veritabanı gibi saklanması gereken veriyi volume ile container dışında tutun.
-
Birden çok servis: Docker Compose
services: web: build: . ports: - "8000:8000" db: image: postgres:17 environment: POSTGRES_PASSWORD: gizli-parola volumes: - pgveri:/var/lib/postgresql/data volumes: pgveri:Bu dosyayı
compose.yamladıyla kaydedin vedocker compose up -dyazın. Uygulama ve veritabanı birlikte kalkar. Gerçek ortamda parolayı dosyaya değil.envdosyasına ya da gizli değer yönetimine koyun.
Sık Sorulanlar
Docker ücretsiz mi?
Docker Engine ve komut satırı araçları ücretsizdir. Docker Desktop kişisel kullanım, eğitim ve küçük işletmeler için ücretsizdir; büyük şirketler ücretli abonelik gerektirir.
Docker ile sanal makine arasındaki fark nedir?
Sanal makine tam bir işletim sistemi çalıştırır. Container ana sistemin çekirdeğini paylaşır; daha hafif ve hızlıdır, ama izolasyonu daha zayıftır.
Docker öğrenmek için Linux bilmek şart mı?
Şart değil ama temel komut satırı bilgisi (cd, ls, dosya düzenleme) çok işinize yarar.
Docker ile Kubernetes aynı şey mi?
Hayır. Docker container üretir ve çalıştırır. Kubernetes, çok sayıda container'ı birden çok sunucuda yönetir. Önce Docker'ı öğrenin.
Next guides
Step-by-step guide
Go (Golang) ile İlk Web Sunucusu: Kurulum ve JSON API Örneği
Go dilini kurup standart kütüphaneyle sıfır paket kullanarak bir web sunucusu ve JSON API yazmayı gösteren başlangıç reh... Read the guide →
Step-by-step guide
SQL Nasıl Öğrenilir? SELECT, WHERE, JOIN ve GROUP BY (Uygulamalı SQLite Rehberi)
SQL'i kurulum derdi olmadan SQLite ile öğrenin: tablo oluşturma, veri ekleme, SELECT, WHERE, JOIN ve GROUP BY örnekleri. Read the guide →
Step-by-step guide
TypeScript Nedir? JavaScript'ten Farkı, Kurulum ve İlk Proje
TypeScript'in JavaScript'ten farkı, neden web projelerinde standart olduğu, kurulumu ve ilk tip tanımları. Adım adım baş... Read the guide →
Comments (0)
No comments yet.
Comments are moderated before publishing.