EN
EN

Docker Nedir?

03 Aralık 2019


Mart 2013’te tanıtımı yapılan docker, dünyada en çok kullanılan yazılım konteynerleştirme platformudur. Docker, konteyner teknolojisi kullanarak uygulama oluşturma, dağıtma ve çalıştırma işlemlerini kolaylaştırmak için tasarlanmış bir araçtır.  Docker, yazılım geliştiriciler ve sistemciler için geliştirilen açık kaynaklı bir sanallaştırma platformudur. Bu platform sayesinde web sistemlerinin kurulumunu, testini ve dağıtımını kolaylıkla gerçekleştirebilirsiniz. Hem geliştiricilere hem de sistem yöneticilerine fayda sağlamak üzere tasarlanmıştır. Docker, genel olarak OS sanallaştırmak için değil, uygulama sanallaştırmak için kullanılır. Güçlü yapısıyla OS sanallaştırma da yapabilir.

Sanallaştırma teknolojileri ortam çeşitliliğinin getirdiği dezavantajları ortadan kaldırmak için geliştirilmiştir. Docker’ın sanallaştırma yapısı, bilinen sanal makinelerden (VirtualBox, Vmware vb.) farklı olarak bir Hypervisor katmanına sahip değildir. Bunun yerine Docker Engine üzerinden, konak işletim sistemine erişmekte ve sistem araçlarını paylaşımlı kullanmaktadır. Böylece klasik sanal makinelere göre daha az sistem kaynağı tüketmektedir.

Docker, LXC sanallaştırma mekanizması üzerine kurulu bir teknolojidir. LXC, işletim sistemi seviyesinde bir sanallaştırma (virtualization) altyapısı sunmaktadır. Docker’lar Uygulamaları aynı imaj üzerinde birbirinden izole edilmiş halde, hızlı ve güvenilir bir şekilde tutan sanal kapsüllerdir. Uygulamalar bu kapsüller içerisinde çalıştırılır. Aynı işletim sistemi içerisinde çalışmalarına rağmen konteynerlar birbirlerinden izole edilmişlerdir ve birbirleri ile istenmediği müddetçe iletişime geçemezler. Docker imajı, konteyner denilen birimlerde çalıştırılmakta ve her bir konteyner bir süreç kullanmaktadır. Her konteyner, konak olarak bulunduğu işletimi sisteminin kernelini kendi kerneliymişçesine kullanarak görevini yerine getirir. Bir makina gücüne bağlı olarak binlerce docker konteynerı birden çalışabilir. Konteyner imajları ortak olan sistem dosyalarını paylaşıyor böylece disk alanından tasarruf edilir. Fakat klasik sanal makinelerde her bir uygulama için ayrı işletim sistemi ve kütüphane dosyaları ayrılmak zorundadır.

Şekil 1. Sanal makine ve docker teknoloji yapısı

Docker’ın Linux Kernel’inden destek alarak ortaya çıkan ve Linux İşletim Sistemi üzerinde çalışan bir sistem olmasına rağmen Linux dışında hem Windows hem de Mac OS X’te kullanılabilmektedir. Günümüzde Google, IBM ve Microsoft gibi şirketlerin de kullanımıyla daha popüler bir hale gelmiştir.