Docker Container Nedir ve Nasıl Çalışır?

Docker Container, uygulamaların ihtiyaç duyduğu yazılımlar, kütüphaneler ve yapılandırmalarla birlikte izole bir ortamda çalıştırılmasını sağlayan konteyner teknolojisinin temel bileşenidir. Docker sayesinde uygulamalar farklı sunuculara ve geliştirme ortamlarına daha kolay taşınabilir.

5 things you should know about Docker | TechRadar

Docker Container Nedir?

Docker Container, bir Docker Image üzerinden oluşturulan ve uygulamanın çalışmasını sağlayan izole bir işlem ortamıdır.

Geleneksel yöntemlerde uygulamanın çalışması için sunucuya çeşitli yazılımlar ve bağımlılıklar kurulması gerekebilir. Docker Container ise uygulamayı ihtiyaç duyduğu bileşenlerle birlikte paketlenmiş bir imaj üzerinden çalıştırır.

Docker Container'ın temel özellikleri şunlardır:

  • Uygulamaların birbirinden izole ortamlarda çalışmasını sağlar.

  • Aynı sunucuda birden fazla container çalıştırılabilir.

  • Uygulama bağımlılıklarının yönetimini kolaylaştırır.

  • Geliştirme ve üretim ortamları arasında tutarlılık sağlar.

  • Container'lar bağımsız olarak başlatılabilir, durdurulabilir ve silinebilir.

  • İşletim sistemi çekirdeğini paylaşarak kaynak kullanımını azaltabilir.

Docker Container Nasıl Çalışır?

Why Are Companies Using Docker? A Real-World Case Study on the Rise of Containerization

Docker Container, Docker Engine tarafından yönetilir. Bir container çalıştırıldığında Docker, belirtilen imajı kullanarak uygulama için izole bir çalışma ortamı oluşturur.

Bu süreç genel olarak şu aşamalardan oluşur:

  1. Docker Image belirlenir: Çalıştırılacak uygulamaya ait imaj seçilir.

  2. Image kontrol edilir: İmaj sistemde bulunmuyorsa yapılandırılmış kayıt deposundan indirilir.

  3. Container oluşturulur: İmaj temel alınarak yeni bir container hazırlanır.

  4. Çalışma ortamı yapılandırılır: Dosya sistemi, ağ bağlantıları ve gerekli izolasyon ayarları oluşturulur.

  5. Uygulama başlatılır: Container içerisinde tanımlanan işlem çalıştırılır.

  6. Container yönetilir: Çalışan container izlenebilir, durdurulabilir veya yeniden başlatılabilir.

Linux sistemlerinde container izolasyonu için namespaces, kaynak kullanımının kontrolü için ise cgroups gibi çekirdek özelliklerinden yararlanılır.

Docker Image ile Docker Container Arasındaki Farklar

Docker Image ve Docker Container birbirleriyle ilişkili ancak farklı kavramlardır.

Docker Image

Docker Container

Salt okunur bir şablondur.

İmajdan oluşturulan çalıştırılabilir örnektir.

Uygulama dosyalarını ve bağımlılıklarını içerir.

Uygulamayı izole ortamda çalıştırır.

Doğrudan çalışan bir işlem değildir.

Başlatıldığında uygulama işlemini yürütür.

Aynı imaj tekrar kullanılabilir.

Aynı imajdan birden fazla container oluşturulabilir.

Örneğin Nginx imajı kullanılarak birbirinden bağımsız birden fazla web sunucusu container'ı oluşturulabilir.

Docker Container ile Sanal Makine Arasındaki Farklar

Beginners Track - Difference between VM vs Docker | dockerlabs

Docker Container ve sanal makineler uygulamaları izole etmek için kullanılabilir. Ancak çalışma mimarileri farklıdır.

Docker Container:

  • İşletim sistemi çekirdeğini paylaşır.

  • Genellikle daha az kaynak tüketir.

  • Çoğunlukla daha hızlı başlatılır.

  • Uygulama ve bağımlılıklarına odaklanır.

Sanal Makine:

  • Sanallaştırılmış donanım üzerinde çalışır.

  • Kendi misafir işletim sistemini ve çekirdeğini barındırır.

  • Genellikle daha fazla bellek ve depolama alanı gerektirir.

  • Farklı işletim sistemlerinin çalıştırılmasına olanak tanır.

Docker Desktop üzerinde Linux container çalıştırılırken Windows ve macOS sistemlerinde bir Linux sanal makinesinden yararlanılabilir.

Docker Container Nasıl Oluşturulur?

Docker Engine kurulu ve çalışır durumdaki bir sistemde terminal üzerinden container oluşturulabilir.

Örneğin Nginx web sunucusunu çalıştırmak için:

docker run -d --name websunucum -p 8080:80 nginx

Bu komutta:

  • docker run: Yeni bir container oluşturur ve başlatır.

  • -d: Container'ı arka planda çalıştırır.

  • --name websunucum: Container'a isim verir.

  • -p 8080:80: Sunucunun 8080 portunu container'ın 80 portuna yönlendirir.

  • nginx: Kullanılacak Docker imajını belirtir.

Container başarıyla başlatıldığında, uygun ağ ve güvenlik ayarları altında web sunucusuna localhost:8080 adresinden erişilebilir.

Docker Container Yönetim Komutları

Docker, container yönetimi için çeşitli terminal komutları sunar.

Çalışan container'ları listeleme:

docker ps

Tüm container'ları listeleme:

docker ps -a

Container durdurma:

docker stop websunucum

Container başlatma:

docker start websunucum

Container yeniden başlatma:

docker restart websunucum

Container kayıtlarını görüntüleme:

docker logs websunucum

Container silme:

docker rm websunucum

Son komut, normal koşullarda durmuş bir container'ı silmek için kullanılır.

Docker Container Verileri Nasıl Saklanır?

Docker container'ların kendi yazılabilir dosya sistemi katmanı bulunur. Ancak container silindiğinde bu katmanda tutulan veriler de kaybolabilir.

Kalıcı verilerin korunması için Docker Volume kullanılabilir.

Örnek:

docker volume create webverileri

Oluşturulan volume, uygun bir dizine bağlanarak container yeniden oluşturulduğunda verilerin korunmasına yardımcı olur.

Özellikle veritabanı sistemlerinde kalıcı depolama yapılandırmasının doğru yapılması önemlidir.

Docker Container Hangi Alanlarda Kullanılır?

Microservices Explained: The Good, The Bad, and The Scalable | by Kaveen Pasindumal | Jan, 2026 | Medium

Docker Container teknolojisi birçok yazılım geliştirme ve sunucu yönetimi alanında kullanılmaktadır.

Web Uygulamaları

PHP, Python, Node.js ve diğer teknolojilerle geliştirilen web uygulamaları container ortamlarında çalıştırılabilir.

Veritabanı Sistemleri

MySQL, PostgreSQL, Redis ve MongoDB gibi sistemler Docker container içerisinde çalıştırılabilir.

Mikroservis Mimarisi

Büyük uygulamalar daha küçük ve bağımsız servislerden oluşabilir. Her servis ayrı bir container içerisinde çalıştırılabilir.

Yazılım Test Ortamları

Uygulamalar farklı bağımlılık sürümleriyle test edilebilir. Böylece geliştirme bilgisayarındaki mevcut yazılımlarla oluşabilecek çakışmalar azaltılabilir.

CI/CD Sistemleri

Docker, otomatik yazılım derleme, test ve dağıtım süreçlerinde tutarlı çalışma ortamları oluşturmak amacıyla kullanılabilir.

Docker Container Kullanmanın Avantajları

Docker Container kullanımının başlıca avantajları şunlardır:

  • Taşınabilirlik: Uygulamalar uyumlu Docker ortamları arasında taşınabilir.

  • Kaynak verimliliği: İşletim sistemi çekirdeğinin paylaşılması ek yükü azaltabilir.

  • Hızlı dağıtım: Hazırlanan imajlardan yeni container'lar oluşturulabilir.

  • Bağımsız yönetim: Uygulama bileşenleri ayrı ayrı yönetilebilir.

  • Sürüm kontrolü: Farklı uygulama bağımlılıkları ayrı imajlarla yönetilebilir.

  • Ölçeklenebilirlik: İhtiyaç halinde aynı uygulamanın birden fazla container örneği çalıştırılabilir.

Docker Container Kullanırken Dikkat Edilmesi Gerekenler

Docker container'lar belirli düzeyde izolasyon sağlasa da tek başına eksiksiz bir güvenlik çözümü değildir.

Container kullanırken şu konulara dikkat edilmelidir:

  • Güvenilir ve güncel Docker imajları kullanılmalıdır.

  • Gereksiz yönetici yetkilerinden kaçınılmalıdır.

  • Kullanılmayan ağ portları dış erişime açılmamalıdır.

  • Kalıcı veriler için volume veya uygun depolama çözümleri kullanılmalıdır.

  • CPU ve RAM kaynak sınırları ihtiyaca göre yapılandırılmalıdır.

  • Hassas bilgiler doğrudan imajların içerisine yerleştirilmemelidir.

  • Docker Engine ve kullanılan yazılımlar güncel tutulmalıdır.

Sonuç

Docker Container, uygulamaların bağımlılıklarıyla birlikte izole ortamlarda çalıştırılmasını sağlayan bir teknolojidir. Docker Image üzerinden oluşturulan container'lar, Docker Engine aracılığıyla yönetilir.

Web sunucuları, veritabanları, mikroservisler ve yazılım test ortamları gibi birçok alanda kullanılan container teknolojisi, modern uygulama geliştirme ve dağıtım süreçlerinin önemli bileşenlerinden biridir.

Docker, uygulamaların çalıştırılmasını ve yönetilmesini kolaylaştırırken güvenlik, ağ yapılandırması ve kalıcı veri depolama gibi konuların ayrıca planlanmasını gerektirir.

 


Alıntı