Docker Nasıl Öğrenilir? Sıfırdan Ücretsiz Öğrenme Yol Haritası (2026)
Yazılım geliştirme, DevOps, bulut bilişim ve sistem yönetimi alanlarına ilgi duyuyorsanız Docker öğrenmek önemli bir adım olabilir. Docker, uygulamaları farklı bilgisayarlarda ve sunucularda daha tutarlı biçimde çalıştırmaya yardımcı olan konteyner teknolojisidir. Peki, Docker öğrenmeye nereden başlanır, hangi komutlar bilinmelidir, ücretsiz eğitim kaynakları nelerdir ve Docker'dan sonra Kubernetes öğrenmek gerekir mi? Bu rehberde sıfırdan başlayarak uygulama geliştirebileceğiniz bir öğrenme planı bulacaksınız.
Docker öğrenmek için önce konteyner mantığını anlamalı, ardından Docker'ı kurup temel komutları denemeli, Dockerfile ile kendi imajınızı oluşturmalı ve Docker Compose ile çok servisli bir uygulama çalıştırmalısınız. Sonraki aşamada veri saklama, ağ yönetimi, güvenlik ve Kubernetes konularına geçebilirsiniz.
Docker öğrenme yol haritası:
- Konteyner, imaj ve sanal makine kavramlarını öğrenin.
- Docker Desktop veya uygun Docker Engine kurulumunu yapın.
docker run,docker psvedocker logsgibi komutları deneyin.- Dockerfile hazırlayarak kendi uygulama imajınızı oluşturun.
- Docker Compose ile birden fazla servisi yönetin.
- Volume, network ve güvenlik konularını öğrenin.
- Örnek proje geliştirip GitHub'da paylaşın.
- Temel Docker bilgisi oturduktan sonra Kubernetes'e geçin.
Docker Nedir, Ne İşe Yarar?
Docker, uygulamaları bağımlılıklarıyla birlikte konteyner adı verilen izole çalışma ortamlarında paketlemeye ve çalıştırmaya yarayan bir platformdur.
Bir uygulama geliştirirken kullanılan yazılım sürümleri, kütüphaneler ve yapılandırmalar farklı bilgisayarlarda sorun çıkarabilir. Docker, bu farklılıkları azaltmak için uygulamanın ihtiyaç duyduğu ortamı imaj olarak tanımlamayı sağlar.
Docker özellikle şu alanlarda kullanılır:
- Yazılım geliştirme ve test ortamları
- Web uygulamalarının dağıtımı
- Mikroservis mimarileri
- CI/CD süreçleri
- Bulut tabanlı uygulamalar
- Veritabanı ve yardımcı servislerin çalıştırılması
- DevOps ve sistem yönetimi
Docker Öğrenmek Neden Önemli?
Docker, geliştirme ortamını tekrar oluşturmayı kolaylaştırır. Böylece bir ekipteki geliştiriciler, uygun yapılandırmayla benzer çalışma ortamlarını kullanabilir.
Ancak Docker kullanmak, uygulamanın her ortamda hiçbir ek yapılandırma gerektirmeden çalışacağı anlamına gelmez. İşletim sistemi, işlemci mimarisi, ağ ve güvenlik koşulları yine önemlidir.
Docker ile Sanal Makine Arasındaki Fark Nedir?
Docker konteynerleri ve sanal makineler farklı izolasyon yaklaşımları kullanır.
| Özellik | Docker Konteyneri | Sanal Makine |
|---|---|---|
| Çalışma modeli | İşletim sistemi çekirdeğini paylaşan süreç izolasyonu | Hipervizör üzerinde ayrı konuk işletim sistemi |
| Başlatma süresi | Genellikle daha hızlı | Genellikle daha uzun |
| Kaynak kullanımı | Çoğu senaryoda daha hafif | Konuk işletim sistemi nedeniyle daha fazla kaynak gerektirebilir |
| İzolasyon | İşletim sistemi düzeyinde | Donanım sanallaştırması düzeyinde |
| Yaygın kullanım | Uygulama paketleme ve dağıtım | Tam işletim sistemi ortamları |
Windows ve macOS üzerinde Linux konteynerleri çalıştırılırken Docker Desktop arka planda sanal makine teknolojilerinden yararlanabilir. Bu nedenle “Docker hiçbir zaman sanallaştırma kullanmaz” ifadesi doğru değildir.
Docker Öğrenmek İçin Önceden Neler Bilinmeli?
Docker öğrenmek için uzman yazılımcı olmanız gerekmez. Ancak bazı temel bilgiler öğrenme sürecini kolaylaştırır.
- Terminal kullanımı: Klasör değiştirme, dosya görüntüleme ve komut çalıştırma
- Temel işletim sistemi bilgisi: Dosya sistemi ve süreç kavramları
- Basit ağ bilgisi: IP adresi, port ve localhost kavramları
- Yazılım temelleri: Bir uygulamanın nasıl başlatıldığını anlamak
- YAML bilgisi: Docker Compose dosyalarını okuyabilmek
Linux komutlarına aşinalık yararlıdır ancak Docker öğrenmeye başlamak için ileri düzey Linux yönetimi bilmek şart değildir.
1. Adım: Docker Nasıl Kurulur?
Docker kurulumu kullanılan işletim sistemine göre değişir.
Windows ve macOS
Başlangıç için Docker Desktop tercih edilebilir. Resmî kurulum yönergeleri üzerinden işletim sisteminize uygun sürümü seçebilirsiniz.
Docker Desktop resmî dokümantasyonu
Linux
Linux dağıtımınıza uygun Docker Engine kurulumu yapılabilir. Kurulum adımları Ubuntu, Debian, Fedora ve diğer dağıtımlara göre değişebilir.
Kurulumu Kontrol Etme
Terminali açarak aşağıdaki komutu çalıştırın:
docker --version
Ardından Docker'ın örnek konteynerini deneyebilirsiniz:
docker run hello-world
Komut başarıyla çalışırsa Docker, gerekli imajı indirip örnek konteyneri başlatır.
Not: Docker Desktop'ın ticari kullanım koşulları kuruluşun büyüklüğüne ve kullanım türüne göre değişebilir. Bireysel öğrenme için ücretsiz kullanım seçenekleri bulunsa da güncel lisans koşulları resmî Docker sayfasından kontrol edilmelidir.
2. Adım: Docker'ın Temel Kavramlarını Öğrenin
Komutlara geçmeden önce dört temel kavramı anlamak önemlidir.
| Kavram | Anlamı |
|---|---|
| Image (İmaj) | Konteyner oluşturmak için kullanılan, uygulama ve bağımlılıklarını içeren paket |
| Container (Konteyner) | Bir imajdan oluşturulan çalıştırılabilir örnek |
| Dockerfile | İmaj oluşturma adımlarını tanımlayan metin dosyası |
| Registry | Docker imajlarının saklandığı ve dağıtıldığı hizmet |
| Volume | Konteyner yaşam döngüsünden bağımsız veri saklamak için kullanılan mekanizma |
| Network | Konteynerler arasında iletişim kurmayı sağlayan ağ yapısı |
Docker Image ile Container Arasındaki Fark
İmaj, uygulamanın çalıştırılmasına yönelik paketlenmiş tanımıdır. Konteyner ise bu imajdan oluşturulan çalıştırılabilir örnektir.
Aynı imajdan birden fazla konteyner başlatılabilir.
3. Adım: En Çok Kullanılan Docker Komutları
Docker öğrenirken temel komutları uygulayarak çalışmak, yalnızca komut listesini ezberlemekten daha yararlıdır.
| Komut | Görevi |
|---|---|
docker --version |
Docker sürümünü gösterir. |
docker pull nginx |
Nginx imajını indirir. |
docker images |
Yerel imajları listeler. |
docker ps |
Çalışan konteynerleri gösterir. |
docker ps -a |
Tüm konteynerleri gösterir. |
docker logs web |
Web adlı konteynerin günlüklerini gösterir. |
docker stop web |
Konteyneri durdurur. |
docker start web |
Durdurulmuş konteyneri başlatır. |
docker rm web |
Durdurulmuş konteyneri siler. |
İlk Web Sunucunuzu Çalıştırın
docker run -d --name web -p 8080:80 nginx:alpine
Bu komut Nginx tabanlı bir konteyner başlatır ve konteynerin 80 numaralı portunu bilgisayarınızın 8080 numaralı portuna yönlendirir.
Ardından tarayıcınızda şu adresi açın:
http://localhost:8080
İşiniz bittiğinde konteyneri durdurup silebilirsiniz:
docker stop web
docker rm web
Güvenlik notu: -p 8080:80 portu varsayılan olarak uygun ağ arayüzlerinde yayımlayabilir. Yalnızca kendi bilgisayarınızdan erişim istiyorsanız -p 127.0.0.1:8080:80 biçimini tercih edebilirsiniz.
4. Adım: Dockerfile Nedir ve Nasıl Yazılır?
Dockerfile, kendi uygulama imajınızı oluşturmak için gereken adımları tanımlayan dosyadır.
Örneğin basit bir Python uygulaması hazırlayalım.
Python Uygulaması Oluşturma
app.py dosyasına şu kodu yazın:
print("Merhaba Docker!")
Aynı klasörde Dockerfile adlı dosyayı oluşturun:
FROM python:3.12-slim
WORKDIR /app
COPY app.py .
CMD ["python", "app.py"]
Ardından terminalde şu komutları çalıştırın:
docker build -t ilk-python-uygulamam .
docker run --rm ilk-python-uygulamam
Terminalde Merhaba Docker! çıktısını görürseniz ilk Docker imajınızı başarıyla oluşturmuş olursunuz.
Dockerfile Komutları Ne Anlama Gelir?
| Komut | Açıklama |
|---|---|
FROM |
Temel imajı belirler. |
WORKDIR |
Çalışma dizinini tanımlar. |
COPY |
Dosyaları imaja kopyalar. |
RUN |
İmaj oluşturulurken komut çalıştırır. |
CMD |
Konteyner başlatıldığında varsayılan komutu belirtir. |
EXPOSE |
Uygulamanın kullanmayı amaçladığı portu belgeler; tek başına port yayımlamaz. |
Gerçek projelerde temel imaj sürümlerini sabitlemek, gereksiz dosyaları dışarıda bırakmak ve güvenlik güncellemelerini takip etmek önemlidir.
5. Adım: Docker Compose Nasıl Öğrenilir?
Docker Compose, birden fazla konteynerden oluşan uygulamaları tek bir YAML dosyasıyla tanımlamayı ve yönetmeyi kolaylaştırır.
Örneğin bir web uygulaması ile veritabanı ayrı servisler olarak tanımlanabilir.
Basit Docker Compose Örneği
Bir klasörde compose.yaml dosyası oluşturun:
services:
web:
image: nginx:alpine
ports:
- "127.0.0.1:8080:80"
Servisi başlatmak için:
docker compose up -d
Çalışan servisleri görüntülemek için:
docker compose ps
Servisleri durdurup kaldırmak için:
docker compose down
Bu örnek tek servis içerir. Compose'un asıl avantajı, birden fazla servisin aynı dosyada yönetilmesidir.
6. Adım: Docker Volume ve Network Konularını Öğrenin
Docker Volume Nedir?
Konteynerlerin yazılabilir katmanındaki veriler, konteyner silindiğinde kaybolabilir. Volume, verilerin konteynerden bağımsız biçimde saklanmasına yardımcı olur.
Örneğin:
docker volume create uygulama-verisi
Oluşturulan volume, uygun bir konteynerin dosya sistemine bağlanabilir.
Docker Network Nedir?
Docker ağları, konteynerlerin birbirleriyle ve dış sistemlerle iletişim kurmasını sağlar.
Özel bir ağ oluşturmak için:
docker network create uygulama-agi
Compose ile oluşturulan projelerde servisler, varsayılan olarak proje ağı üzerinden servis adlarıyla birbirlerine erişebilir.
Bu konuları öğrenirken port yayımlama ile konteynerler arası iletişimin aynı şey olmadığını anlamak önemlidir.
7. Adım: Docker Güvenliği Nasıl Sağlanır?
Docker konteynerleri izole çalışma ortamları sunsa da güvenlik risklerini tamamen ortadan kaldırmaz.
Özellikle internete açık uygulamalarda imaj güvenliği, erişim yetkileri ve gizli bilgilerin yönetimi önemlidir.
Docker Güvenliği İçin Temel Öneriler
- Güvenilir kaynaklardan imaj kullanın.
- İmajları ve bağımlılıkları güncel tutun.
- Gereksiz portları dış dünyaya açmayın.
- Uygulamaları mümkün olduğunda root olmayan kullanıcıyla çalıştırın.
- Parola ve API anahtarlarını imaj içine gömmeyin.
- Gereksiz Linux yeteneklerini sınırlandırın.
- İmaj taraması ve güvenlik kontrolleri uygulayın.
- Docker daemon erişimini dikkatle yönetin.
Docker güvenliği hakkında daha ayrıntılı bilgi edinmek isteyenler, Docker Güvenliği Eğitimi programını inceleyebilir.
Programın güncel içeriği ve katılım koşulları ilgili eğitim sayfasından kontrol edilmelidir.
Docker Öğrenmek İçin Ücretsiz Kaynaklar
Docker öğrenmeye başlamak için ücretli bir kursa katılmak zorunlu değildir. Resmî dokümantasyon ve açık eğitim kaynaklarıyla temel konular çalışılabilir.
| Kaynak | İçerik | Seviye |
|---|---|---|
| Docker Docs | Kurulum, komutlar, Dockerfile ve Compose | Başlangıç–ileri |
| Docker Get Started | Uygulamalı başlangıç rehberi | Başlangıç |
| Docker Hub | Hazır imajları inceleme | Başlangıç–orta |
| Play with Docker | Tarayıcı üzerinden deneysel Docker ortamı | Başlangıç |
| Kubernetes Docs | Docker sonrası orkestrasyon kavramları | Orta |
1. Docker Resmî Dokümantasyonu
docs.docker.com üzerinden kurulum, temel komutlar, imaj oluşturma ve güvenlik konularına ulaşabilirsiniz.
2. Docker Get Started
Docker Get Started, sıfırdan başlayanlar için adım adım öğrenme materyalleri sunar.
3. Docker Hub
Docker Hub üzerinden resmî ve topluluk imajlarını inceleyebilirsiniz. İmajın yayıncısını, güncelliğini ve kullanım yönergelerini kontrol edin.
4. Play with Docker
Play with Docker, erişilebilir olduğu durumlarda tarayıcı üzerinden geçici Docker ortamlarında denemeler yapmanıza yardımcı olabilir. Hizmetin kullanım sınırları ve erişim durumu değişebilir.
Docker Öğrenmek İçin 30 Günlük Yol Haritası
Aşağıdaki plan, temel bilgisayar ve terminal bilgisi olan bir kişinin Docker'a düzenli biçimde çalışması için hazırlanmış örnek bir programdır.
| Süre | Öğrenilecek Konular | Uygulama Hedefi |
|---|---|---|
| 1–5. gün | Konteyner, imaj, Docker kurulumu | hello-world ve Nginx çalıştırma |
| 6–10. gün | Temel Docker komutları | Konteyner başlatma, durdurma ve log inceleme |
| 11–15. gün | Dockerfile ve imaj oluşturma | Basit Python uygulamasını paketleme |
| 16–20. gün | Docker Compose | Birden fazla servisi birlikte çalıştırma |
| 21–25. gün | Volume, network ve güvenlik | Veri saklama ve ağ yapılandırması |
| 26–30. gün | Proje geliştirme ve dokümantasyon | GitHub üzerinde örnek proje yayımlama |
Bu plan kesin bir öğrenme süresi değildir. Ön bilgi, günlük çalışma süresi ve proje deneyimi öğrenme hızını etkiler.
Docker Öğrenirken Yapılabilecek 5 Uygulamalı Proje
1. Nginx Web Sunucusu Çalıştırma
Hazır Nginx imajını kullanarak yerel bilgisayarınızda bir web sunucusu başlatın.
2. Python Uygulamasını Dockerfile ile Paketleme
Basit bir Python programını kendi oluşturduğunuz Docker imajıyla çalıştırın.
3. Web Uygulaması ve Veritabanı
Docker Compose ile bir web servisi ve veritabanı servisi tanımlayın. Kalıcı veri için volume kullanın.
4. Konteyner Günlüklerini İzleme
Uygulama hatalarını docker logs komutuyla inceleyin ve temel sorun giderme pratiği yapın.
5. Güvenlik Odaklı Dockerfile Hazırlama
Root olmayan kullanıcı, gereksiz dosyaların dışarıda bırakılması ve sürüm sabitleme gibi uygulamaları deneyin.
Projelerinizi GitHub üzerinde açıklayıcı bir README dosyasıyla paylaşmak, öğrendiklerinizi somutlaştırmanıza yardımcı olabilir.
Docker'dan Sonra Kubernetes Öğrenmek Gerekir mi?
Kubernetes, konteynerleştirilmiş uygulamaların dağıtımını, ölçeklendirilmesini ve yönetimini otomatikleştirmeye yardımcı olan bir orkestrasyon platformudur.
Docker ve Kubernetes aynı araç değildir. Docker daha çok konteyner oluşturma ve çalıştırma süreçleriyle ilişkilidir. Kubernetes ise birden fazla makine üzerinde çalışan konteynerli uygulamaların yönetimine odaklanır.
Kubernetes öğrenmek herkes için zorunlu değildir. Ancak DevOps, platform mühendisliği ve bulut altyapısı alanlarında ilerlemek isteyenler için yararlı olabilir.
Docker'dan Kubernetes'e Geçiş Sırası
- Docker imajı ve konteyner mantığını öğrenin.
- Dockerfile ve Compose ile uygulama geliştirin.
- Temel ağ ve veri saklama konularını anlayın.
- Kubernetes Pod, Deployment ve Service kavramlarına geçin.
- Yerel bir Kubernetes ortamında uygulama dağıtın.
- Yapılandırma, güvenlik ve izleme konularını öğrenin.
İlgili konuları bir arada incelemek isteyenler, Docker ve Kubernetes Temelleri Eğitim Programı sayfasına göz atabilir.
Docker Eğitimleri ve Sertifika Programları
Ücretsiz kaynaklarla kendi kendine öğrenmek mümkündür. Bunun yanında yapılandırılmış eğitim programları, konuları belirli bir sırayla çalışmak isteyenler için alternatif oluşturabilir.
İstanbul Kent Üniversitesi bünyesinde Docker ve Kubernetes alanında farklı başlıklarda eğitim seçenekleri bulunmaktadır.
| Eğitim | Odak Konusu | Bağlantı |
|---|---|---|
| Docker Temel Seviye Eğitimi | Docker'a giriş ve temel kavramlar | Programı incele |
| Docker Güvenliği Eğitimi | Konteyner güvenliği ve güvenli yapılandırma | Programı incele |
| Docker ve Kubernetes Temelleri Eğitim Programı | Docker ve Kubernetes temel kavramları | Programı incele |
| Docker Kubernetes Service Sertifika Programı | Docker, Kubernetes ve servis yönetimi başlıkları | Programı incele |
Programların güncel müfredatı, eğitim süresi, ücretleri, katılım koşulları ve belgelendirme türü ilgili sayfalardan kontrol edilmelidir. Eğitim tamamlamak tek başına işe yerleşme veya belirli bir teknik yeterlilik kazanma garantisi vermez.
Docker Öğrenirken En Sık Yapılan Hatalar
- Komutları ezberlemek: İmaj ve konteyner mantığını anlamadan ilerlemek öğrenmeyi zorlaştırır.
- Dockerfile yazmadan geçmek: Hazır imajlarla sınırlı kalmak uygulama paketleme becerisini geliştirmeyi geciktirir.
- Veri saklamayı ihmal etmek: Konteyner silindiğinde önemli veriler kaybolabilir.
- Güvenliği ertelemek: Gereksiz port açmak ve gizli bilgileri imaja koymak risk oluşturur.
- Kubernetes'e çok erken başlamak: Docker temelleri anlaşılmadan orkestrasyon konularına geçmek karmaşıklığı artırabilir.
- Proje yapmamak: Yalnızca video izlemek, gerçek sorunlarla karşılaşma fırsatını sınırlar.
Docker Hakkında Sık Sorulan Sorular
Docker nedir?
Docker, uygulamaları bağımlılıklarıyla birlikte konteynerlerde paketlemeye ve çalıştırmaya yarayan bir platformdur.
Docker nasıl öğrenilir?
Önce temel kavramları öğrenip Docker kurulumu yapılmalı; ardından komutlar, Dockerfile, Compose, volume, network ve güvenlik konuları uygulamalı çalışılmalıdır.
Docker öğrenmek ücretsiz mi?
Resmî dokümantasyon ve birçok açık kaynak ücretsizdir. Kullanılan bazı yazılım ve hizmetlerin lisans veya kullanım koşulları farklı olabilir.
Docker öğrenmek ne kadar sürer?
Temel kavramlar birkaç haftalık düzenli çalışmayla öğrenilebilir. İleri düzey uygulama ve üretim ortamı deneyimi daha fazla pratik gerektirir.
Docker için Linux bilmek gerekir mi?
Temel terminal ve Linux kavramlarını bilmek yararlıdır ancak başlangıç için ileri düzey Linux bilgisi zorunlu değildir.
Docker ile Kubernetes arasındaki fark nedir?
Docker konteyner oluşturma ve çalıştırma süreçleriyle; Kubernetes ise konteynerli uygulamaların orkestrasyonuyla ilişkilidir.
Dockerfile nedir?
Docker imajı oluşturulurken uygulanacak adımları tanımlayan metin dosyasıdır.
Docker Compose nedir?
Bir veya birden fazla servisten oluşan uygulamaları YAML dosyasıyla tanımlamayı ve yönetmeyi sağlayan araçtır.
Docker öğrenmek için yazılım bilmek şart mı?
Şart değildir. Ancak basit bir uygulamanın nasıl çalıştığını bilmek Dockerfile ve proje geliştirme konularını anlamayı kolaylaştırır.
Docker hangi mesleklerde kullanılır?
Yazılım geliştirme, DevOps, sistem yönetimi, platform mühendisliği ve bulut bilişim gibi alanlarda kullanılabilir.
Docker Desktop ücretsiz mi?
Belirli kullanım türlerinde ücretsiz seçenekler bulunur. Ticari kullanım için güncel lisans koşulları kontrol edilmelidir.
Docker öğrendikten sonra ne öğrenilmeli?
Docker Compose, ağ, güvenlik, CI/CD ve ihtiyaçlara göre Kubernetes gibi konulara geçilebilir.
Sonuç: Docker Öğrenmeye Nereden Başlamalısınız?
Docker öğrenmenin en etkili yolu, temel kavramları küçük uygulamalarla birlikte çalışmaktır. İlk aşamada bir konteyner başlatmak, ardından kendi Dockerfile dosyanızı hazırlamak ve Docker Compose kullanmak güçlü bir başlangıç oluşturabilir.
Sonraki aşamalarda veri saklama, ağ yönetimi, güvenlik ve proje geliştirme konularına odaklanabilirsiniz.
Başlangıç için ilk hedefiniz şu olsun: Docker'ı kurun, bir Nginx konteyneri çalıştırın ve ardından kendi uygulamanız için bir Dockerfile hazırlayın.
Kaynaklar ve İleri Okuma
- Docker Docs – Get Started
- Docker Docs – Compose
- Docker Docs – Engine Security
- Kubernetes Resmî Dokümantasyonu
- İstanbul Kent Üniversitesi – Docker Temel Seviye Eğitimi
- İstanbul Kent Üniversitesi – Docker Güvenliği Eğitimi
- İstanbul Kent Üniversitesi – Docker ve Kubernetes Temelleri
- İstanbul Kent Üniversitesi – Docker Kubernetes Service Sertifika Programı
Güncelleme: 7 Kasım 2026. Docker komutları, sürümler ve lisans koşulları zamanla değişebilir. Teknik işlemlerde resmî dokümantasyon esas alınmalıdır.