İçeriğe atla

Docker

Docker
Orijinal yazar(lar)Solomon Hykes
Geliştirici(ler)Docker, Inc.
İlk yayınlanma13 Mart 2013 (11 yıl önce) (2013-03-13)
Güncel sürüm25.0.4 / 7 Mart 2024 (6 ay önce) (2024-03-07)
Programlama diliGo
İşletim sistemiGNU/Linux, macOS, Windows
Platformx86-64, ARM
Türİşletim sistemi seviyesinde sanallaştırma
LisansFreemium
Resmî sitesidocker.com
Kod deposu Bunu Vikiveri'de düzenleyin

Docker, bir konteynerleştirme teknolojisi olarak tanımlanır ve yazılım uygulamalarının bağımsız ve izole bir ortamda çalıştırılmasını sağlar. Docker, 2013 yılında Docker, Inc. tarafından piyasaya sürülmüştür ve bu tarihten itibaren yazılım geliştirme ve dağıtım süreçlerinde devrim yaratmıştır.

Tarihçe

Docker, Solomon Hykes tarafından başlatılan bir proje olarak doğdu ve ilk olarak 2013 yılında halka açıldı. Docker, başlangıçta bir PaaS (Platform-as-a-Service) sağlayıcısı olan dotCloud'un bir parçasıydı. Ancak, Docker'ın başarısı nedeniyle dotCloud, Docker Inc. olarak yeniden markalandı ve tamamen konteynerleştirme teknolojisine odaklandı.

Teknolojik Temeller

Docker, Linux Containers (LXC) teknolojisinin üzerine inşa edilmiştir. Konteynerler, uygulamaları ve onların bağımlılıklarını bağımsız ve izole bir şekilde çalıştırmak için kullanılır. Bir Docker konteyneri, uygulama kodunu, gerekli kütüphaneleri ve konfigürasyon dosyalarını içerir. Bu konteynerler, herhangi bir ortamda - geliştirme makineleri, test sunucuları veya üretim sunucuları - tutarlı bir şekilde çalışabilirler.

Docker İmajları

Docker'ın temel yapı taşları, Docker İmajları olarak adlandırılır. Bir Docker imajı, bir uygulamanın çalışması için gerekli olan tüm bileşenleri içerir. İmajlar, konteynerleri başlatmak için kullanılır. Docker imajları katmanlı yapıdadır, yani her katman bir önceki katmana eklenir ve sadece değişiklikler saklanır. Bu yapı, depolama verimliliğini artırır ve ağ üzerinden hızlı dağıtım sağlar.[1][2]

Docker Konteynerleri

Docker konteynerleri, ana işletim sistemi üzerinde çalışırken, kendi bağımsız dosya sistemine ve işletim sistemine sahiptirler. Bu izolasyon, uygulamaların birbirleriyle ve ana işletim sistemiyle çakışmasını engeller. Docker, Cgroups ve Namespaces gibi Linux çekirdek özelliklerini kullanarak bu izolasyonu sağlar.

Docker Ekosistemi

Docker ekosistemi, çeşitli bileşenlerden oluşur:

  • Docker Engine: Docker konteynerlerini oluşturmak ve çalıştırmak için kullanılan çekirdek bileşendir.
  • Docker Hub: Kullanıcıların Docker imajlarını paylaşabileceği ve keşfedebileceği çevrimiçi bir depodur.
  • Docker Compose: Birden fazla konteyneri içeren uygulamaların tanımlanması ve yönetilmesi için kullanılan bir araçtır.
  • Docker Swarm: Docker konteynerlerinin küme (cluster) ortamlarında orkestrasyonu için kullanılan bir araçtır.

Kullanım Alanları ve Avantajları

Docker, yazılım geliştirme ve dağıtım süreçlerini hızlandırır, taşınabilirliği artırır ve kaynakları daha verimli kullanmayı sağlar. Bu özellikler, Docker'ı günümüzün yazılım dünyasında önemli bir teknoloji haline getirmiştir ve birçok organizasyon tarafından benimsenmiştir. Docker'ın başlıca avantajları şunlardır:

  • Taşınabilirlik: Docker konteynerleri, herhangi bir platformda aynı şekilde çalışabilir, bu da geliştiriciler ve operasyon ekipleri arasındaki uyumu artırır.
  • İzolasyon: Konteynerler, uygulamaların ve bağımlılıklarının birbirlerinden ve ana sistemden izole edilmesini sağlar.
  • Verimlilik: Docker, kaynak kullanımını optimize eder ve aynı sunucuda birden fazla uygulamanın verimli bir şekilde çalışmasını sağlar.
  • Hız: Docker konteynerlerinin başlatılması ve durdurulması, geleneksel sanal makinelerden çok daha hızlıdır.

Docker, yazılım geliştirme ve dağıtım süreçlerini hızlandırır, taşınabilirliği artırır ve kaynakları daha verimli bir şekilde kullanmanıza yardımcı olur. Bu nedenle, Docker günümüzün yazılım dünyasında önemli bir teknoloji haline gelmiş ve birçok organizasyon tarafından benimsenmiştir.[3]

Kaynakça

  1. ^ "Docker nedir?". Makale. Oracle. 12 Eylül 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Eylül 2023. 
  2. ^ "Docker Nedir?". Makale. Beyaznet. 20 Ağustos 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Eylül 2023. 
  3. ^ "Docker commands 97.6% market share in OS-level Virtualization (Containers)". enlyft.com (İngilizce). 21 Mart 2023 tarihinde kaynağından arşivlendi. Erişim tarihi: 21 Eylül 2023. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">Linux</span> Bir işletim sistemi çekirdeği

Linux ; Linux çekirdeğine dayalı, açık kaynak kodlu, Unix benzeri bir işletim sistemi ailesidir. GNU Genel Kamu Lisansı versiyon 2 ile sunulan ve Linux Vakfı çatısı altında geliştirilen bir özgür yazılım projesidir. Linux ismi ilk geliştiricisi olan Linus Torvalds tarafından 1991 yılında verilmiştir. Günümüzde süper bilgisayarlarda, akıllı cihazların ve internet altyapısında kullanılan cihazların işletim sistemlerinde yaygın olarak kullanılmaktadır. Bunlardan en popüler olanı Google tarafından geliştirilen Android işletim sistemidir.

<span class="mw-page-title-main">İşletim sistemi</span> bilgisayar donanım kaynaklarını yöneten yazılım

İşletim sistemi ya da işletim dizgesi, bir bilgisayarın donanım kaynaklarını yöneten ve uygulama yazılımlarına hizmet sağlayan yazılımların bir bütünüdür. İşletim sistemleri, bilgisayarın donanımı ile uygulama yazılımları arasında bir köprü görevi görerek kullanıcıların sistemle etkileşim kurmasını sağlar. Öne çıkan örnekler arasında Microsoft Windows, macOS, GNU/Linux dağıtımları, Android ve iOS yer alır.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

<span class="mw-page-title-main">Sunucu (bilişim)</span> bilgisayar ağlarında, diğer ağ bileşenlerinin (kullanıcıların) erişebileceği, kullanımına ve/veya paylaşımına açık kaynakları barındıran bilgisayar birimi

Sunucu, bilişim alanında "istemci" denilen diğer program ve cihazlara çeşitli işlevler sunan bilgisayar donanımları veya yazılımlarıdır. Bu mimariye istemci-sunucu modeli denir. Sunucular, istemciler arasında veri veya kaynak paylaşımı, bir istemci için hesaplama yapma gibi çeşitli işlevleri yerine getirebilirler. Bu işlevlere genellikle "servis" veya "hizmet" denir. Tek bir sunucu çok sayıda istemciye hizmet verebilir, tek bir istemci de çok sayıda sunucudan hizmet alabilir. İstemci ve sunucu aynı cihaz üzerinde çalışabileceği gibi, istemci ağ üzerinden farklı bir cihazdaki sunucuya da bağlanabilir. Tipik sunucular arasında veritabanı sunucuları, dosya sunucuları, e-posta sunucuları, yazdırma sunucuları, web sunucuları, oyun sunucuları ve uygulama sunucuları sayılabilir.

<span class="mw-page-title-main">Yazılım</span> bilgisayarın somut olmayan çalıştırılabilir bileşeni

Yazılım, değişik ve çeşitli görevler yapma amaçlı tasarlanmış elektronik aygıtların birbirleriyle haberleşebilmesini ve uyumunu sağlayarak görevlerini ya da kullanılabilirliklerini geliştirmeye yarayan makine komutlarıdır.

<span class="mw-page-title-main">Oracle Solaris</span>

Solaris, ilk olarak Sun Microsystems tarafından geliştirilmiş, UNIX tabanlı bir işletim sistemidir. 1993 yılında halefi olan SunOS işletim sisteminin yerini almıştır. Ocak 2010'da Oracle firmasının Sun firmasını satın almasıyla Oracle Solaris olarak anılmaya başlanmıştır.

<span class="mw-page-title-main">OpenGL</span> grafik uygulama geliştirme arabirimi

OpenGL, gelişmiş donanım desteğini kullanarak hem iki hem de üç boyutlu grafikleri ekrana çizmek için kullanılan ücretsiz bir grafik uygulama geliştirme arabirimidir. Windows, Linux, MacOS ve Solaris gibi birçok işletim sisteminde yaygın olarak ve Playstation 3 başta olmak üzere bazı oyun konsollarınca desteklenir. Donanım tarafında ise SGI, ATI, Nvidia veya Intel gibi büyük üreticiler her ekran kartında OpenGL desteği sunar.

<span class="mw-page-title-main">Hyper-V</span>

Hyper-V, Microsoft Hyper-V, Viridian kod adındaki ve önceleri Windows Sunucu Sanallaştırma olarak bilinen, x64 bilgisayarlar için hypervisor tabanlı bir sanallaştırma sistemidir. Birden fazla sunucu rolünü tek bir fiziksel ana makinede çalışan ayrı sanal makineler olarak birleştirerek sunucu donanımı yatırımlarını iyileştirmek için bir araç sağlar. Hyper-V ayrıca, Windows haricinde Linux gibi işletim sistemleri de dahil olmak üzere birden fazla işletim sistemini verimli bir şekilde tek bir sunucuda çalıştırmak ve 64-bit bilgi işlemin gücünden faydalanmak için de kullanılabilir.Windows Server 2008'in belirli x64 sürümleriyle birlikte Hyper-V'nin bir betası sevk edilmiş ve kesinleşmiş sürüm 26 Haziran 2008'de piyasaya çıkmıştır. Yeni çıkacak olan Windows Server 2012® Hyper-V® ile de birden fazla işletim sisteminin paralel olarak aynı sunucu üzerinde çalıştırılmasını sağlamaktadır.

<span class="mw-page-title-main">Bulut bilişim</span> internet tabanlı bilişim hizmeti

Bulut bilişim, bilgisayarlar ve diğer cihazlar için, istendiği zaman kullanılabilen ve kullanıcılar arasında paylaşılan bilgisayar kaynakları sağlayan, internet tabanlı bilişim hizmetlerinin genel adıdır. Bulut bilişim bu yönüyle bir ürün değil, hizmettir; temel kaynaktaki yazılım ve bilgilerin paylaşımı sağlanarak, mevcut bilişim hizmetinin; bilgisayarlar ve diğer aygıtlardan elektrik dağıtıcılarına benzer bir biçimde bilişim ağı üzerinden kullanılmasıdır.

<span class="mw-page-title-main">Yazılım yaşam döngüsü</span>

Yazılım yaşam döngüsü, bilgisayar yazılımlarının ilk geliştirme aşamalarından başlayarak; yayındaki mevcut sürümün hatalarının giderilmesi, iyileştirme odaklı yeni ara sürümlerin yayınlarak yazılımın güncellenmesi de dâhil olmak üzere nihai (kararlı) sürüme ulaşana dek geçen geliştirme ve olgunlaştırma aşamalarının tamamını ifade etmek için kullanılan terimdir.

<span class="mw-page-title-main">Microsoft Azure</span>

Microsoft Azure hem açık çevre ortamlarından hem de İnternet'ten tüketilebilen çok çeşitli İnternet hizmetini sağlamakta" olan bir bulut platformu hizmetidir. Microsoft Online Services hizmetinin lansmanından sonra gelen bulut bilgi işlemi içine alınan Microsoft'un ilk adımıdır. Kısaca bir hizmet olarak Microsoft yazılım firmasının altyapısıdır. Azure, Ekim 2008'de açıklandı ve 1 Şubat 2010 tarihinde Windows Azure olarak serbest bırakıldı.

<span class="mw-page-title-main">OS X Yosemite</span> işletim sistemi

OS X Yosemite veya OS X 10.10 Yosemite, OS X işletim sisteminin 11. büyük sürümü olup, kişisel bilgisayar Macintosh bilgisayarlar için Apple'ın masaüstü ve sunucu işletim sistemidir. 14A389 yazılımda yapılmıştır. Bu sürümün temelini Darwin işletim sistemi oluşturur. Sürümün Unamesi Darwin 14.0.0'dır. OS X Yosemite 2 Haziran 2014 tarihinde WWDC 2014 etkinliğinde açıklandı ve geliştiriciler için sunuldu. 24 Temmuz 2014 tarihinde kamu beta test için yayınladı. 17 Ekim 2014 tarihinden Mac App Store'da ücretsiz indirmek için kullanılabilir. Kaliforniya dönüm noktası tabanlı adlandırma şemasının OS X Mavericks ile tanıtılmasının ardından, yeni tanıtılan OS X sürümünün "Yosemite" ismi Milli Park olan Yosemite Ulusal Parkının adını almıştır.

<span class="mw-page-title-main">OS X Mavericks</span>

OS X Mavericks veya OS X 10.9 Mavericks OS X işletim sisteminin 10.büyük sürümü olup, Macintosh bilgisayarlar için Apple Inc.in masaüstü ve sunucu işletim sistemidir. 13A603 (GM2) yazılımda yapılmıştır. Bu sürümün temelini Darwin işletim sistemi oluşturur. Sürümün Unamesi "Darwin 13.0"dir.OS X Mavericks WWDC 2013'te, 10 Haziran 2013 tarihinde ilan edildi ve dünya çapında Mac App Store üzerinden ücretsiz yükseltme olarak, 22 Ekim 2013 tarihinde serbest bırakıldı.

Güvenli kabuk,, ağ hizmetlerinin güvenli olmayan bir ağ üzerinde güvenli şekilde çalıştırılması için kullanılan bir kriptografik ağ protokolüdür. En iyi bilinen örnek uygulaması bilgisayar sistemlerine uzaktan oturum açmak için olandır.

<span class="mw-page-title-main">Windows Server 2022</span> Microsoftun Windows Ailesinin İşletim Sistemi

Windows Server 2022, Microsoft'un Windows Server işletim sistemi ailesinin son sürümüdür. Diğer Windows Server işletim sistemlerinden farkı Microsoft Edge Chromium ile beraber gelmektedir.

PPSSPP, birçok platformda PlayStation Portable (PSP) oyunlarını oynatan öykünücü yazılımdır. Yazılım .iso formatındaki imajları kullanıp PSP oyunlarını oynatır. İlk olarak 1 Kasım 2012'de GNU GPLv2 veya daha sonra lisanslanmış olarak halka sunuldu. PPSSPP projesi, Dolphin öykünücüsünün kurucularından biri olan Henrik Rydgård tarafından oluşturulmuştur.

Kubernetes yazılım dağıtımını, ölçeklendirmeyi ve yönetimini otomatikleştirmek için açık kaynaklı bir yerleştirme düzenleme sistemidir. Google başlangıçta Kubernetes'i tasarladı, ancak artık Cloud Native Computing Foundation projeyi sürdürmektedir.

REMnux, kötü amaçlı yazılımların tersine mühendislik ve analizine yönelik bir Linux araç setidir. REMnux, kötücül yazılım analizi gerçekleştirenlere, topluluk tarafından geliştirilen ücretsiz araçlardan oluşan bir koleksiyon sağlar. Analistler, araçları bulmak, kurmak ve yapılandırmak zorunda kalmadan doğrudan kötü amaçlı yazılımları araştırmak için kullanabilirler. REMnux, 2010 yılından itibaren kurucusu ve birincil sorumlusu olan Lenny Zeltser, 2017'den itibaren dağıtımın mimari ve danışma olarak hizmet veren Erik Kristensen ile 2020'den itibaren dağıtım geliştirme sürecine katılan Corey Forman önderliğinde geliştirilmekte olup, ayrıca açık kaynak kültürü ile topluluğun birçok geliştiricisi ve destekçisi de bulunmaktadır.

<span class="mw-page-title-main">LXC</span>

Linux Containers (LXC), tek bir Linux çekirdeği kullanan bir denetim ana bilgisayarında birden çok yalıtılmış Linux sistemini (kapsayıcısı) çalıştırmak için işletim sistemi düzeyinde bir sanallaştırma yöntemidir.

Konteynerleştirme, yazılım uygulamalarının herhangi bir bulut ortamında ya da bulut dışı ortamda, konteynerler adı verilen izole kullanıcı alanlarında türüne veya satıcısına bakılmaksızın çalışabilmesi için birden çok ağ kaynağı üzerinde uygulama düzeyinde sanallaştırılması veya uygulama düzeyinde sanallaştırılmasıdır.