İçeriğe geç
parazade

Konteyner Ne Demek?

İngilizce: Container

Yayın: · Son güncelleme:

Konteyner Ne Demek? Kısaca

Konteyner (container), bir uygulamayı çalışması için gereken kütüphane, ayar ve bağımlılıklarla birlikte tek bir pakette toplayan ve ana makinenin işletim sistemi çekirdeğini paylaşarak yalıtılmış biçimde çalıştıran hafif yazılım ortamıdır.

Konteyner nedir?
İçindekiler
  1. Konteyner ne demek?
  2. Nasıl çalışır?
  3. Örnek
  4. Nelere dikkat etmeli?

Konteyner ne demek?

Yazılımda konteyner, bir uygulamanın her yerde aynı şekilde çalışmasını sağlayan paketleme yöntemidir. Adını, yükün türü ne olursa olsun her gemiye ve tıra aynı şekilde yüklenen standart yük konteynerlerinden alır. İçinde uygulama kodu, çalışma ortamı (örneğin Python sürümü), kütüphaneler ve ayar dosyaları bulunur.

"Benim bilgisayarımda çalışıyordu" sorunu, konteynerlerin çözdüğü en bilinen problemdir. Geliştiricinin bilgisayarında, test sunucusunda ve canlı ortamda aynı paket çalıştığı için sürüm farklılıklarından doğan hatalar azalır.

Nasıl çalışır?

Konteyner, imaj (image) adı verilen bir şablondan başlatılır. İmaj, uygulamanın ve bağımlılıklarının donmuş bir kopyasıdır; konteyner ise bu imajın çalışan hâlidir. Aynı imajdan onlarca konteyner açılabilir.

Konteynerler ana işletim sisteminin çekirdeğini paylaşır. Linux'taki namespace ve cgroup gibi özellikler sayesinde her konteyner kendi dosya sistemini, süreçlerini ve ağ ayarlarını ayrı görür. Bu yüzden sanal makineye göre çok daha az yer kaplar ve saniyeler içinde açılır.

Örnek

Varsayımsal bir ekip, Node.js ile yazılmış bir web uygulaması ve PostgreSQL veritabanı kullanıyor. Yeni katılan geliştirici, her şeyi elle kurmak yerine tek komutla iki konteyneri başlatıyor ve birkaç dakika içinde projeyi çalıştırıyor. Canlı ortamda da aynı imajlar kullanıldığı için sürpriz sürüm farkları yaşanmıyor.

En yaygın konteyner aracı Docker'dır. Çok sayıda konteyneri yönetmek için ise Kubernetes gibi orkestrasyon araçları kullanılır.

Nelere dikkat etmeli?

Konteynerler sanal makineler kadar güçlü yalıtım sağlamaz, çünkü çekirdek ortaktır. Resmî ya da güvenilir kaynaklardan gelen imajlar kullanın ve imajları düzenli güncelleyin. Konteyner kapandığında içindeki veriler silinebilir; veritabanı gibi kalıcı veriler için ayrı depolama alanı (volume) tanımlamak gerekir.

Sıkça Sorulan Sorular

Konteyner nedir, Docker ile aynı şey mi?

Konteyner bir teknoloji ve paketleme yöntemidir, Docker ise konteyner oluşturmak ve çalıştırmak için en yaygın kullanılan araçtır. Podman ve containerd gibi başka konteyner araçları da vardır.

Konteynerler Windows'ta çalışır mı?

Evet. Docker Desktop gibi araçlarla Windows ve Mac'te de Linux konteynerleri çalıştırılabilir; bu araçlar arka planda hafif bir Linux sanal makinesi kullanır. Windows'a özgü konteynerler de mevcuttur.

İlgili terimler

DockerDocker, uygulamaları tüm bağımlılıklarıyla birlikte konteyner adı verilen taşınabilir paketlere dönüştüren ve bu konteynerleri çalıştıran açık kaynak kodlu bir platformdur. Uygulamanın her ortamda aynı şekilde çalışmasını sağlar.KubernetesKubernetes (kısaca K8s), çok sayıda konteynerin sunucular üzerinde dağıtılmasını, ölçeklendirilmesini, güncellenmesini ve arıza durumunda yeniden başlatılmasını otomatik olarak yöneten açık kaynak orkestrasyon platformudur.Sanal Makine(Virtual Machine)Sanal makine (virtual machine, VM), fiziksel bir bilgisayarın içinde yazılımla oluşturulan ve kendi işletim sistemini, belleğini, diskini ve ağ bağlantısını taşıyan bağımsız bir bilgisayar ortamıdır.Orkestrasyon(Container Orchestration)Orkestrasyon, yazılımda çok sayıda konteynerin ya da servisin sunuculara dağıtılması, ölçeklendirilmesi, birbirine bağlanması ve arıza durumunda yeniden başlatılması gibi işlerin otomatik olarak koordine edilmesidir.Web Uygulaması(Web Application)Web uygulaması, kurulum gerektirmeden internet tarayıcısı üzerinden çalışan, kullanıcının veri girip işlem yapabildiği ve sunucu ile sürekli etkileşim kuran yazılımdır; online bankacılık ve e-posta servisleri bu türe örnektir.Veritabanı(Database)Veritabanı, verilerin düzenli, aranabilir ve güncellenebilir biçimde saklandığı elektronik kayıt sistemidir. Müşteri listeleri, siparişler ve ürün bilgileri gibi veriler veritabanlarında tutulur.