Docker Nedir?

resim30328087
resim30328087

Yazılım, günümüzün teknoloji için en kıymetli alanlarından birisi olarak karşımıza çıkıyor. Teknoloji dünyasındaki ilerlemelere paralel olarak program da gün geçtikçe kendini hızla geliştiriyor. Bu vaziyet bir çok noktada değişimi de bununla beraber getiriyor. Bu değişimlerden bir tanesi de Docker olarak karşımıza çıkıyor. Uygulama geliştirme alanında büyük bir değişiklik elde eden Docker, teknoloji geliştiricilerinin ilgisini çekiyor. Bundan kaynaklı Docker nelerdir sorusunun yanıtı fazlasıyla merak ediliyor.

Bu içeriğimizde sizler için hem yazılımcılar hem de firmalar tarafınca dört gözle beklenen Docker nelerdir sorusuna cevap vermeye çalışacağız. Bunun yanı sıra rehberimizin devamında Docker’ın özellikleri, temel bileşenleri ve üstünlükleri gibi dört gözle beklenen öbür mevzular ile alakalı da malumat bulabileceksiniz. Sizler için hazırladığımız bu rehberde Docker ile alakalı bütün merak edilenlere değinmeye çalışacağız. Şimdi sözü daha çok uzatmadan Docker nelerdir sorusuna cevap vermeye çalışalım.

İçindekiler

Docker Nedir?

Docker, tatbik geliştirme sürecinde büyük kolaylıklar elde eden bir program platformudur. Bu platform tatbik oluşturma, çalıştırma, idare etme ve dağıtma süreçlerinin basitleştirilmesini amaçlamaktadır. Buna bağlı olarak Docker kullanarak geliştirdiğiniz programları süratli ve kolay bir halde derleyebilir ve test edebilirsiniz. Bunun yanı sıra Docker, değişik ortamlara tatbik dağıtmanıza, bu programları ölçeklendirmenize de imkân tanımaktadır.

Açık kaynaklı bir program platformu olan Docker hem sistemciler hem de program geliştiriciler tarafınca kolaylıkla kullanılabilir. İlk versiyonu Mart 2013’te PyCon’da tanıtılan Docker aslında 2008 senesinde DotCloud adlı bir çözüm platformu olarak karşımıza çıkmıştı. Bu teşebbüs kapsayıcılara odaklanmıyordu. Ancak buna karşın bir çok geliştiricinin yoğun ilgisi ile karşılaştı. Bu ilginin program kapsayıcılarına yönelmesi Docker’ın günümüzdeki haline gelmesini sağladı.

Docker’ın günümüze kadar minimum 7 milyon tatbik için kullanıldığı biliniyor. Günümüzde de Docker fonksiyonel olmasının yanı sıra performansı ve güvenilirliği ile ön plana çıkıyor. Bu durum, platformun dikkat çekmesini sağlamaktadır. Öyle ki son yıllarda Docker, geliştiricilerin maksimum tercih etmiş olduğu container tabanlı platformlar içinde yer alıyor.

Docker Nasıl Çalışır?

Elbette Docker nelerdir sorusunun yanı sıra dört gözle beklenen öbür sorulara da rastlıyoruz. Bunlardan biri ise Docker’ın iyi mi çalmış olduğu olarak karşımıza çıkıyor. Docker, Linux Container olarak isimlendirilen bir teknoloji üstüne kuruludur. Açık kaynaklı bir platform olan Docker, bilgisayarın işletim sistemini sanallaştırır. Böylece tatbik katmanı üstünde bir tecrit oluşturarak altyapı ile uygulamaların ayrılmasına imkân tanır. Aynı zamanda Docker program sistemini de bilinmezlikten kurtarmaktadır. Böylece ortaya çıkma ihtimali olan ahenk problemleri çözülmüş olmaktadır.

Docker’ın çabalama prensibi temel olarak işletim sisteminde containerlar oluşturmaya dayalıdır. Bu containerlar birbirinden izole bir biçimde çalışır. Her container değişik bir process kullanmaktadır. Buna bağlı olarak kolay bir halde çoğaltılabilmeleri mümkündür. Aynı zamanda açılan containerlar değişik işletim sistemlerinde de çalışır.

Container Teknolojisi Ne Demek?

Temel olarak container teknolojisi bulut bilişiminde kullanılmaktadır. En temel açıklaması ile bu teknoloji bir sanallaştırma platformudur. Bu platform değişik işletim sistemleri üstünde tasarlanan programları problemsiz çalıştırabilmek için kullanılır. Aynı zamanda bunu yaparken VM ihtiyaçlarına de gereksinim duyulmamaktadır. Container teknolojisi temel olarak program geliştirme aşamalarını kolaylaştırmak amacı ile hizmete sunulur. Özellikle test aşamasında ortaya çıkacak sorunların önüne bu teknoloji ile geçmek mümkündür.

Containerlar uygulamalara soyutlanmış ve yalıtılmış bir ortam sunar. Böylece tatbik geliştirirken tek tip dağıtım da olası hale gelir. Containerler taşınma özelliğine sahiptirler. Buna bağlı olarak değişik işletim sistemlerinde de rahatlıkla çalışırlar. Geliştiriciler programları için container programları asli bileşenlerine ayırma özellikleri ile ön plana çıkar. Bu bileşenler ise birbirinden tamamiyle bağımsızdır. Dolayısıyla tatbik bileşenlerini tek tek geliştirmek ve dağıtmak olası olmaktadır.

Docker Nasıl Çalışır

Docker containerları çalışmış oldukları ortamlardan bağımsızdır. Buna bağlı olarak containerlar değişik ortamlarda da problemsiz çalışır. Genellikle Windows ya da Linux işletim sistemlerine oturan containerlar işletim sistem çekirdeğini paylaşmaktadır. Aynı zamanda kitaplıkları ve çift dosyaları paylaşırlar. Böylece bir server çok sayıda iş yükünü çalıştırabilir hale gelmektedir. Çünkü containerlar tekrar işletim sistemi kodu oluşturma ihtiyacını azaltmaktadır.

Containerlar kendilerine ait bir işletim sistemine gereksinim duymazlar. Ana bilgisayarın işletim sistemini paylaşırlar. Buna bağlı olarak VM’lere göre farklılık gösterirler. Bir sanallaştırma mevzubahis olsa da bu VM’lerdeki gibi temel bilgisayar üstünde değil işletim sistemindedir. Aynı zamanda containerlar VM’lere kıyasla olabildiğince hafiftir.

Docker’ın depolama amacı ile oluşturduğu kapsayıcılar sanallaştırmayı kullanmaktadır. Bu özelliği onun sanal makinelere benzetilmesine yol açabilmektedir. Ancak temel olarak kapsayıcı ile VM içinde bariz farklılıklar vardır. Son zamanların tanınmış platformlarından birisi olan Docker ile alakalı ayrıntılı bilgili olmak için container teknolojisi ile alakalı da düşünce sahibi olmalısınız.

Docker Ne için Kullanılır?

Docker nelerdir sorusunun yanı sıra ne işe fayda sorusu da merak edilenler arasındadır. Bu nedenle platformun ne için kullanıldığı sorusunun yanıtına da değinmek gerekmektedir. Docker’ın temel kullanım alanı program geliştirme aşamalarını kolaylaştırmaktır. Bu platform, bunun yanı sıra uygulamaların değişik ortamlarda tutarlı bir halde çalışmasını sağlamaktadır. Farklı hizmet alanları için meydana getirilen program geliştirme süreçlerinde Docker kullanmak mümkündür. Container teknolojisi kullanan Docker’ın 2013 senesinde faaliyete başlaması ile beraber bu teknoloji sanayi standardına yükselmiştir.

Docker’ın asli kullanım alanlarını ise aşağıdaki gibi açıklamak mümkündür:

  • Docker’ın kullanım alanlarından ilki yüksek taşınabilir özellikte iş yükleri geliştirmektir. Docker’ın kullandığı teknoloji ile rastgele bir ortamda tasarlanan iş yükü kolayca taşınır. Farklı ortamlar için değişik kurulumlar hazırlamaya gerek olmaz.
  • Platform ile hem otomatik hem manuel testleri problemsiz yürütmek mümkündür. Docker, tasarlanan kodların kolay ve otomatik bir halde test edilmesini sağlamaktadır.
  • Bir iş komplike olduğunda bütünü denetlemek zorlaşır. Docker ile bir uygulamayı değişik bileşenlere ayırmak mümkündür. Böylece Dokcer geliştiricilerin ayrı bileşenler üstünde prosedür yapmasına imkân tanır.
  • Birden fazla iş yükünü Docker ile çalıştırmak mümkündür.
  • Geliştiriciler Docker kullanarak programları anlık bir halde boyutlandırabilirler.

Docker’ın Temel Özellikleri Nelerdir?

2013 senesinde ilk versiyonu piyasaya çıkan Docker, tatbik geliştirme süreçlerini mühim seviyede basitleştirmektedir. Platform bunun yanı sıra birtakım özellikleriyle de ön plana çıkmaktadır. Sizler için bu özellikleri aşağıda sıraladık:

  • Docker ile programları geliştirmek, dağıtmak ve test etmek olabildiğince kolaydır. Böylece geliştirme sürecini huzurlu şekilde tedvir etmek olası olmaktadır.
  • Docker kodların taşınması esnasında meydana gelecek hataları ortadan kaldırır. Buna bağlı olarak değişik bir ortamda tasarlanan kodlar kolaylıkla taşınır.
  • Kullanımı olabildiğince basittir.
  • Container teknolojisi ile çalışmaktadır. Bu containerler ile olabildiğince hızlıca çalışırlar.
  • Docker containerlarını değişik ortamlarda çalıştırmak mümkündür.
  • Yazılan kodları hızlıca test etme olanağı vardır.

Docker Temel Bileşenleri

Açık kaynak kodlu bir platform olan Docker, değişik bileşenlerin bir bütününden oluşmaktadır. Platformu oluşturan ve kullanmak olası hale getiren bu bileşenler platformun doğru şekilde çalışmasında mühim rol oynamaktadır. Dolayısıyla Docker nelerdir sorusunun doğru şekilde anlaşılması için bu temel bileşenlerin ne olmasından da özetlemek gerekirse anlatmak gereklidir.

Docker Temel Bileşenleri
  • Docker Image (Docker Görüntüleri): Image, containerlar kurmayı sağlar. Temelde Docker Image’i salt okunması olası bir şablon olarak düşünmek mümkündür. Burada her Image bir Docker dosyası ile oluşur. Bu dosyalar hususi yönergeler içermektedir. Geliştiriciler, her biri değişik bir görüntüyü temel alan bu sahneler ile bir kapsayıcı oluşturur. İlk süreçte bu görüntüleri kurmayı öğrenmek gereklidir. Ancak bu aşamadan sonra süratli ve kolay şekilde Docker Image’lar oluşturabilirsiniz. Docker görüntülerinin malum en kullanımı kolay özelliği disk kullanımını azaltmaktır. Bunun yanı sıra bu sahneler tekrar kullanılabilirliği de artırmaktadır. Bir geliştirici kapsayıcılarını hafifçe tutmak istiyorsa oluşturduğu ufak görüntüleri koruması ehemmiyet taşımaktadır.
  • Docker Container: Platformda container, Docker Image’in bir örneği olarak karşımıza çıkar. Docker CLI geliştiricilerin bir container oluşturmasına, çalıştırmasına, durdurmasına ya da silmesine imkân tanır. Yalıtılmış olan containerlar ile yeni bir imaj kurmak da mümkündür.
  • Dockerfile: Temel olarak Dockerfile, bir görüntünün iyi mi oluşturulacağına dair talimatlar içeren bir komut dosyasıdır. Bu talimatlar muhtelif bileşenleri belirtir. Aynı zamanda komutlar otomatik bir halde yürütülmekte ve gruplandırılmaktadır. Unutulmamalıdır ki her Image bir Dockerfile ile başlamaktadır.
  • Docker Hub: En kolay izahat ile Docker Hub bulut tabanlı bir imaj deposudur. Bu depo üstünden container görüntülerini paylaşmak, tedvir etmek ya da depolamak olası olmaktadır.

Docker Kullanmanın Avantajları

Yazılım geliştirme sürecinde Docker kullanmanın birtakım üstünlükleri mevcuttur. Bundan kaynaklı program geliştiricileri, son zaman Docker’ı gayet fazla kullanmaya başladılar. Popüler bir platform haline gelen Docker tarafınca kullanıcılarına sunulan üstünlükleri şöyle listeleyebiliriz:

  • Dağıtım Hızı: Docker, işletim sistemini sanallaştırır. Bu nedenle kapsayıcılar için önyükleme süresi yoktur. Böylece dağıtımlar süratli şekilde yapılır.
  • Otomasyon: Docker, sıkıcı olarak malum birtakım işleri manuel olarak yapmadan gerçekleştirmenize imkân tanır. Böylece platform ile birtakım görevleri otomatik şekilde yapabilirsiniz.
  • CI/CD Desteği: Docker, CI/CD programları ile olabildiğince iyi çalışmaktadır. Dağıtımlar süratli ve güncellemeler kolay haldedir.
  • Tutarlılık: Geliştirdiğiniz programlar Docker ile değişik ortamlarda tutarlı hale gelmektedir. Uygulamalar değişik ortamlarda problemsiz çalışır.
  • Modülerlik: Docker, container teknolojisi ile beraber çalışır. Containerlar ise yalıtılmış ve bağımsız ortamlardır. Buna bağlı olarak Docker uygulamanın değişik parçaları üstünde prosedür hazırlamaya imkân tanır.
  • Görüntü Sürüm Kontrolü: Docker üstündeki bir kapsayıcı muhtelif katmanlardan oluşan bir görüntüye dayanmaktadır. Bu hususiyet Docker’ın versiyon üstünde denetim sağlamaya imkân tanımasına destek olmaktadır.

Docker Nedir: Genel Değerlendirme

Docker, tatbik geliştirme süreçlerinde muhtelif kolaylıklar elde eden bir program platformudur. Geliştiricilerin bu platformu kullanarak programları geliştirmesi, çalıştırması, dağıtması ve yönetmesi mümkündür. Tüm bu aşamalarda Docker, program geliştirme sürecini basitleştirici özellikler sunmaktadır. Aynı zamanda Docker kullanarak geliştirdiğiniz programları ölçeklendirmeniz ve çabucak test edebilmeniz de mümkündür. Böylece yazdığınız kodun çalışıp çalışmayacağı mevzusu ile alakalı rastgele bir kaygı yaşamazsınız.

Docker’ın çabalama prensibi container teknolojisine dayanır. Bu teknoloji tatbik bileşenlerinin yalıtılmış ortamlarda kullanılmasına imkân tanır. Böylece bu bileşenler üstünde tek tek prosedür yapmak da olası hale gelmektedir. Aynı zamanda containerlar değişik ortamlarda problemsiz çabalama özelliğine de sahiptir. Dolayısıyla taşınma özellikleri bulunmaktadır. Buna bağlı olarak değişik ortamlarda geliştirdiğiniz programları öbür ortamlarda ve işletim sistemlerinde hata almadan çalıştırabilirsiniz.

2013 senesinde kullanıcılar ile buluşan Docker, container teknolojisinin sanayi standartlarına ulaşmasını sağlamıştır. Hizmet sunmaya başladığı ilk günden itibaren de yazılımcı, geliştirici ve şirketlerin yoğun ilgisi ile karşılaşmıştır. Günümüzde geliştiricilerin maksimum tercih etmiş olduğu container tabanlı platformlar içinde da Docker ilk sıralardır. Özellikle son yıllarda firmalar ve yazılımcılar tarafınca daha çok kullanılmaya başlamıştır. Şu ana kadar 7-8 milyondan fazla tatbik için Docker kullanıldığı bilinmektedir.

Sizler için hazırladığımız bu içerikte Docker ile alakalı merak edilenleri açıklamaya çalıştık. İçeriğimizde Docker nelerdir sorusunun yanı sıra platformun avantajları, özellikleri ve temel bileşenleri ile alakalı da malumat bulabilirsiniz. Hazırlamış olduğumuz Docker rehberimiz burada sona eriyor. Sizler de Docker ile alakalı soru ve düşüncelerinizi yorumlar kısmını kullanarak bizlerle paylaşabilirsiniz.