Docker nedir?

Docker, uygulamaların build ve deploy edilmesini kolaylaştıran açık kaynak kodlu bir araçtır. Mart 2013 tarihinde ilk versiyonu yayınlanan docker, cloud teknolojilerinin yaygınlaşmasıyla, günümüzde popülerliğini gittikçe arttırmaktadır.

Docker sayesinde geliştiriciler uygulmalarının çalışması için gerekli tüm parçaları belirleyerek bunlarla bağımsız bir container oluşturabilirler. Bu container ile uygulama, ortamdan bağımsız olarak istenilen yere deploy edilerek, çalıştırılabilir hale getirilir.

Ben Docker’a daha çok sistem yöneticisi gözüyle yaklaşacağım. Uygulamalar, docker sayesinde, artık geliştirildiği linux kernel den bağımsız olarak, deploy edildiği ortamın kerneli ile uyumlu çalışabiliyorlar. Tüm gerekli parçalar container’a eklebiliyor ve tüm manuel configürasyonlar container’da yapılabiliyor. Bu sayede docker, deployment esnasında yapılan birçok manuel ayarlamadan(paket kurulumları, yetkilendirme vs. ) sistem yöneticilerini kurtarıyor.

Bu sayede test ve production ortamlarda configürasyon farklılıkları artık bir sorun olmaktan çıkıyor. Geliştiriciler için de artık uygulamayı farklı ortamlara göre yazma derdi ortadan kalkıyor. Ayrıca çözümleri için kullandıkları farklı uygulamaları da docker container olarak kurarak, development adımına hızlıca geçebiliyorlar. Artık birçok bilinen uygulama, docker için hazırlanmış verified containerları, normal kurulum seçenekleri yanında indirmeye sunuyor. Geliştirici ve sistem yöneticilerine sağladığı faydalar yanında cloud ortamlarında PaaS ve SaaS uygulamaları için de çok büyük kolaylıklar sağlıyor.

Docker, linux çekirdeğinin, cgroups gibi kaynak izolasyonu özelliklerini kullanarak, sadece ihtiyaç duyduğu parçalar ile, işletim sistemi ve sunucu konfigürasyonundan bağımsız uygulama container’ları oluşturmanızı sağlıyor. Bu sayede her uygulama için arka planda kurulan ve kullanılmadığı halde birsürü kaynak tüketen işletim sistemi yükünden kurtulmanızı sağlıyor. Minimum paket ile kurulan bir linux işletim sitemi üzerinde çalışan docker engine bir Hypervisor katmanın sahip olmadığından, klasik sanal makinalara göre daha az kaynak tüketmektedir. Bir docker engine üzerinde, farklı uygulama container’lar ile sanki hepsi ayrı bir sanal makinada çalışıyormuş gibi birçok uygulama kurabiliyorsunuz. Ancak bu özellik Docker Engine üzerinde çalışan uygulamaların konak linux sistemin kütüphanelerini, paylaşımlı olarak kullandıklarından izolasyonu bir miktar düşürmektedir.

Windows Server 2016 için de desteklenecek olan docker .net uygulama geliştiricilerinin de işlerini artık çok kolay bir hale getirecek.

İlerleyen günlerde docker containerlar ile kendi sunucunuza mysql ve wordpres kurulumunun nasıl yapıldığını anlatacağım. Bu sayede kendi sunucunuzda, ya da satın aldığını uygun fiyatlı bir wps üzerinde, kendi websitenizi, minimum sistem yöneticisi bilgisi ile hayata geçirebileceksiniz.