Docker
Uygulamaları tüm bağımlılıklarıyla birlikte konteynerlere paketleyip her sunucuda aynı şekilde çalıştıran platform.
Docker, yazılımları çalışması için gereken her şeyle birlikte "konteyner" adı verilen izole paketlerde çalıştıran açık kaynaklı bir platformdur. 2013 yılında Docker, Inc. tarafından yayınlandı ve bugün sunucularda uygulama dağıtmanın standart yöntemlerinden biri haline geldi.
Docker'ı anlamanın en iyi yolu gemi konteyneri benzetmesidir. Standart konteynerler icat edilmeden önce her yük gemiye kendi ambalajıyla yükleniyordu; yavaş ve sorunluydu. Standart konteyner ise içinde ne olursa olsun her gemiye, trene veya kamyona aynı şekilde yüklenir. Docker da yazılım için aynısını yapar: bir site veya uygulama, tüm bağımlılıklarıyla (çalışması için gereken kütüphaneler ve ayarlar) birlikte bir konteynere paketlenir ve bu konteyner her sunucuda aynı şekilde çalışır.
Bu yaklaşım, yazılım dünyasının meşhur "benim bilgisayarımda çalışıyordu" sorununu çözer. Yazılım genellikle geliştiricinin bilgisayarında çalışır ama sunucuda sürümler ve ayarlar farklı olduğu için hata verir. Docker konteynerinin içinde ortam her yerde aynıdır: dizüstünde test edilen konteyner, canlı sunucuda da değişiklik olmadan çalışır. Böylece sitenin yeni sürümünün yayına alınması (deploy) daha hızlı ve çok daha az riskli hale gelir.
Docker sık sık sanal makineyle karıştırılır ama aradaki fark büyüktür. Sanal makine her uygulama için ayrı ve eksiksiz bir işletim sistemi çalıştırır; bu da gigabaytlarca bellek ve disk demektir. Konteyner ise sunucunun mevcut işletim sistemi çekirdeğini paylaşır ve yalnızca uygulamayı ve bağımlılıklarını taşır. Bu yüzden konteynerler saniyeler içinde başlar ve tek bir sunucuda onlarcası rahatça çalışabilir.
Gerçek projeler genellikle birden fazla parçadan oluşur: web uygulaması, veritabanı, önbellek sunucusu vb. Docker Compose adlı araç, bu parçaların tamamını tek bir yapılandırma dosyasında tanımlayıp tek komutla başlatmayı sağlar. Docker'ın çekirdeği olan Docker Engine, Apache-2.0 lisansıyla açık kaynaklıdır; yani kendi sunucularınızda konteyner çalıştırmak için lisans ücreti ödenmez.
Sık sorulan sorular
Docker, yazılımları "konteyner" denen standart paketlerde çalıştıran bir platformdur. Gemi konteyneri gibi düşünün: içinde ne olursa olsun her gemiye aynı şekilde yüklenir. Docker konteyneri de siteyi gereken her şeyle birlikte paketler ve site her sunucuda aynı şekilde çalışır.



