dorukmakto
Yeni Üye
İçindekiler Hide
Docker Nedir?
Docker, kapsayıcılar (containers) adı verilen paketlerde yazılım sağlamak için işletim sistemi düzeyinde sanallaştırmayı kullanan bir hizmet ürünü olarak platformlar kümesidir. Kapsayıcılar birbirinden yalıtılmıştır ve kendi yazılımlarını, kitaplıklarını ve yapılandırma dosyalarını bir araya getirir; birbirleriyle iyi tanımlanmış kanallar aracılığıyla iletişim kurabilir.Docker’ın başlıca özellikleri şunlardır:
- Docker komut satırı arabirimi (CLI)
- Docker Engine
Docker Neden Bu Kadar Popüler?
Docker, yazılım teslimi ve dağıtımı için sunduğu olanaklar nedeniyle popülerdir. Docker’ın popülaritesinin en önemli nedenleri aşağıdaki şekildedir:1. Kullanım kolaylığı
Docker’ın popülaritesinin büyük bir kısmı kullanım kolaylığından gelir. Docker, kapsayıcıların nasıl oluşturulacağını ve yönetileceğini öğrenmek için mevcut birçok kaynak nedeniyle hızlı bir şekilde öğrenilebilir. Docker açık kaynaklıdır, bu nedenle başlamak için ihtiyacınız olan tek şey Virtualbox, Mac/Windows için Docker’ı veya Linux gibi yerel olarak kapsayıcıları destekleyen bir işletim sistemine sahip bir bilgisayardır.2. Sistemlerin daha hızlı ölçeklendirilmesi
Kapsayıcılar, çok daha az bilgi işlem donanımıyla çok daha fazla iş yapılmasına izin verir. İnternetin ilk günlerinde, bir web sitesini ölçeklendirmenin tek yolu daha fazla sunucu satın almak veya kiralamaktı. Maliyet, doğrusal olarak ölçek büyütmenin maliyetine bağlıydı. Bu noktada kapsayıcılar, veri merkezi operatörlerinin çok daha fazla iş yükünü daha az donanıma sıkıştırmasına olanak tanır. Paylaşılan donanım, daha düşük maliyetler anlamına gelir.3. Daha iyi yazılım teslimi
Kapsayıcılar kullanarak yazılım teslimi de daha verimli olabilir. Konteynerler taşınabilirdir ve tamamen bağımsızdır. Kapsayıcılar, yalıtılmış bir disk birimi içerir. Bu birim, geliştirildiği ve çeşitli ortamlara dağıtıldığı için kapsayıcıyla birlikte gelir. Yazılım bağımlılıkları (kütüphaneler, çalışma zamanları vb.) kapsayıcıyla birlikte gönderilir. Makinenizde bir kapsayıcı çalışıyorsa, geliştirme, hazırlama ve üretim ortamında aynı şekilde çalışır. Kapsayıcılar, ikili dosyaları veya ham kodu dağıtırken yaygın olan yapılandırma farkı sorunlarını ortadan kaldırabilir.4. Esneklik
Kapsayıcılı uygulamaları çalıştırmak, kapsayıcı olmayan uygulamalara göre daha esnek ve dayanıklıdır. Konteyner düzenleyicileri, yüzlerce veya binlerce konteynerin çalıştırılmasını ve izlenmesini yönetir.Konteyner düzenleyiciler, büyük dağıtımları ve karmaşık sistemleri yönetmek için çok güçlü araçlardır. Belki de şu anda Docker’dan daha popüler olan tek şey, şu anda en popüler konteyner düzenleyicisi olan Kubernetes‘tir.
5. Yazılım tanımlı ağ iletişimi
Docker, yazılım tanımlı ağı destekler. Docker CLI ve Engine, operatörlerin tek bir yönlendiriciye dokunmak zorunda kalmadan kapsayıcılar için yalıtılmış ağlar tanımlamasına olanak tanır. Geliştiriciler ve operatörler, karmaşık ağ topolojilerine sahip sistemler tasarlayabilir ve ağları yapılandırma dosyalarında tanımlayabilir. Bu aynı zamanda bir güvenlik avantajıdır. Bir uygulamanın kapsayıcıları, sıkı bir şekilde kontrol edilen giriş ve çıkış yollarıyla yalıtılmış bir sanal ağda çalışabilir.6. Mikro hizmet mimarisinin yükselişi
Mikro hizmetlerin yükselişi de Docker’ın popülaritesine katkıda bulunur. Mikro hizmetler, genellikle HTTP/HTTPS aracılığıyla erişilen, tek bir şey yapan ve onu iyi yapan basit işlevlerdir.Yazılım sistemleri tipik olarak, tek bir ikili sistemin birçok farklı sistem işlevini desteklediği “monolit” olarak başlar. Büyüdükçe, monolitlerin bakımı ve yerleştirilmesi zorlaşabilir. Mikro hizmetler, bir sistemi bağımsız olarak dağıtılabilen daha basit işlevlere ayırır. Kapsayıcılar, mikro hizmetler için harika ana bilgisayarlardır. Bağımsızdırlar, kolayca dağıtılırlar ve verimlidirler.
Docker Nasıl Çalışır?
Docker aşağıdaki şekilde çalışır:
Kullanıcı, Docker istemcisi aracılığıyla Docker sunucusuna bir CLI komutu gönderir. Örneğin, kullanıcının projesinde kullanmak istediği önceden yüklenmiş yazılım araçlarıyla yeni bir kapsayıcı oluşturan veya bir işletim sisteminin görüntüsünü çeken bir komut.
Ardından Docker sunucusu, Dockerfile’de (Docker ayarlarından oluşan bir tür belge) yazılan komut ve yapılandırma verilerini analiz eder ve kullanıcının komutunun dikte ettiği eylemleri gerçekleştirir.
Komut yürütüldükten sonra Docker kapsayıcı etkinleştirilir.
Docker’ın Avantajları Nelerdir?
Standart sanal makineler yerine Docker kullanmanın 6 ana avantajı aşağıdaki şekildedir:- Docker, bilgisayar kaynaklarından tasarruf sağlar. İşletim sistemini taklit etmek yerine, bir sunucuda kurulu Linux dağıtımının temel bileşenlerini kullanır ve veri tabanı, arayüz vb. uygulamalar için kapsayıcılar oluşturur.
- Docker size zaman kazandırır. Her sanal makineyi kurmak zorunda kalmazsınız. Bir tane ayarladığınızda, Docker, uygulamanın içinde çalıştığı kapsayıcılar oluşturmak için bunun temel öğelerini kullanır.
- Sizi kötü amaçlı yazılımlardan korur. Docker kapsayıcıları, çekirdek işletim sisteminden yalıtılmıştır. Böylece, sunucunuzu bozan kötü amaçlı yazılımlardan endişe etmeden sanal blok içinde herhangi bir kodu çalıştırabilirsiniz.
- Projenizi ölçeklendirmek için yapmanız gereken tek şey yeni kapsayıcılar eklemektir. Projenin kapsamı, sadece kullanılan sanal blokların sayısına bağlıdır.
- Docker, uygulamaları uyumlu herhangi bir ana bilgisayarda başlatabilir. Böylece kapsayıcılı yazılıma başlamadan önce her şeyi ayarlamak için zaman harcamanıza gerek kalmaz.
- Docker, çoğu sanallaştırma teknolojisinden daha sorunsuz çalışır. Verimli bir dosya sistemi olarak “entegre katman sistemi” teknolojisini kullanır.