Son konular

Docker Nedir, Ne İşe Yarar?

Konuyu Yükselt

SoruCevap

Yeni Üye
Katılım
17 Ocak 2024
Mesajlar
1
Çözümler
1
Tepkime
41
Puanları
318
Yaş
35
Coin
256,935
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.
Docker İle İlgili En Çok Sorulan Sorular
1. Docker hangi işletim sistemlerinde çalışır?
Bir Docker kapsayıcısı, Docker Engine ile doğrudan Linux altında ve “Docker Desktop” (Macintosh ve Windows) kapsayıcı çalışma zamanı ortamını destekleyen herhangi bir ana bilgisayarda çalışır. Uygulamaları ana bilgisayar işletim sistemine uyarlamanız gerekmez. Bu, hem uygulama ortamının hem de temel işletim sistemi ortamının temiz ve minimum düzeyde tutulmasını sağlar. Böylece, hedef sistem Docker’ı ve onunla kullanılan tüm üçüncü taraf araçlarını destekliyorsa, kapsayıcı tabanlı uygulamalar bulut ortamlarındaki sistemlerden veya geliştirici dizüstü bilgisayarlarından sunuculara kolayca taşınabilir.

2. Docker’ın temel özellikler nelerdir?
Docker’ın temel özelliği, uygulamaların Docker kapsayıcılarında kapsüllenmesidir. Böylece Linux, Macintosh veya Windows işletim sistemi çalıştıran herhangi bir sistem için kullanılabilirler. Diğer konteyner sistemleri bir süredir varken, Docker bu teknoloji için daha erişilebilir ve kapsamlı bir arayüz sağladığı için popülerdir. Ayrıca, kullanıcıların uygulamalarını çalıştırmak için kapsayıcı ortamlar oluştururken üzerinde oluşturabilecekleri temel kapsayıcı görüntülerinden oluşan bir genel yazılım deposuna sahiptir.

3. Docker’ın ana avantajı nedir?
Docker ile uygulamalarınızın işlevselliğinin her ortamda yürütülebilmesini sağlayabilirsiniz. Bu avantaj, tüm uygulamaların ve bağımlılıklarının bir Docker yürütme kapsayıcısında bir araya getirilmesinden kaynaklanır.

4. Konteynerlerin avantajları nelerdir?
Docker kapsayıcıları, sanal makinelere (VM’ler) göre birçok avantaj sundukları için popülerdir. VM’ler temel olarak güçlü bir işletim sisteminin tam kopyalarını, uygulamanın kendisini, gerekli tüm ikili dosyaları ve kitaplıkları içerir. Bu genellikle düzinelerce gigabayt depolama kapasitesi anlamına gelir. Docker kapsayıcılarından farklı olarak VM’ler yavaş önyükleme yapabilir. Docker kapsayıcıları ise daha az depolama alanı gerektirir çünkü görüntüleri genellikle onlarca megabayt boyutundadır. Böylece Docker kullanıldığında daha fazla uygulama işlenebilir ve daha az VM ve işletim sistemi kullanılabilir.

5. Docker-Images ve Docker-Registry nedir?
Docker image, temel olarak bir kapsayıcının anlık görüntüsü olan değişmez bir dosyadır. Görüntüler “build” komutuyla oluşturulur ve “run” ile başlatıldığında bir kapsayıcı oluşturur. Görüntüler, “registry.hub.docker.com” gibi bir Docker kayıt defterinde saklanır. Görüntüler ağ üzerinden gönderildiğinde sadece küçük bir miktar verinin aktarılmasının gerekeceği şekilde, diğer görüntülerin birkaç katmanından oluşabilecek şekilde tasarlanmıştır.
 
Üst Alt