Docker Nedir? Nasıl Kurulur? Ne İçin Kullanılır?

docker nedir, nasıl kurulur, ne için kullanılır

Genel Bakış

Docker, uygulamaları geliştirmek, göndermek ve çalıştırmak için kullanılan open-source bir platformdur. Docker, yazılımları hızlı bir şekilde teslim edebilmeniz için uygulamalarınızı altyapınızdan ayırmanıza olanak tanır. Docker ile uygulamalarınızı yönettiğiniz şekilde altyapınızı da yönetebilirsiniz. Docker’ın kodu hızlı bir şekilde gönderme, test etme ve dağıtma metodolojilerinden yararlanarak kod yazma ve üretimde çalıştırma arasındaki gecikmeyi önemli ölçüde azaltabilirsiniz.

Docker Platformu

Docker, bir uygulamayı konteynır adı verilen gevşek bir şekilde yalıtılmış bir ortamda paketleme ve çalıştırma yeteneği sağlar. Yalıtım ve güvenlik, belirli bir ana bilgisayarda aynı anda birçok konteynır çalıştırmanıza olanak tanır. Konteynırlar hafiftir ve uygulamayı çalıştırmak için gereken her şeyi içerir, bu nedenle ana bilgisayarda şu anda yüklü olana güvenmeniz gerekmez. Çalışırken konteynırları kolayca paylaşabilir ve paylaştığınız herkesin aynı şekilde çalışan aynı konteynırı aldığından emin olabilirsiniz.

Docker, konteynırlarınızın yaşam döngüsünü yönetmek için araçlar ve bir platform sağlar:

  • Konteynırları kullanarak uygulamanızı ve destekleyici bileşenlerini geliştirin.
  • Konteynırlar, uygulamanızı dağıtmak ve test etmek için birim haline gelir.
  • Hazır olduğunuzda, uygulamanızı bir konteynır veya düzenlenmiş bir hizmet olarak üretim ortamınıza dağıtın. Bu, üretim ortamınız ister yerel bir veri merkezi, ister bir bulut sağlayıcısı veya ikisinin bir karışımı olsun, aynı şekilde çalışır.

Docker Ne İçin Kullanılır?

Uygulamalarınızın hızlı, tutarlı teslimi

Docker, geliştiricilerin uygulamalarınızı ve hizmetlerinizi sağlayan yerel konteynırlar kullanarak standartlaştırılmış ortamlarda çalışmasına izin vererek geliştirme yaşam döngüsünü kolaylaştırır. Konteynırlar, sürekli entegrasyon ve sürekli teslim (CI/CD) iş akışları için mükemmeldir.

Aşağıdaki örnek senaryoyu göz önünde bulundurun:

  • Geliştiricileriniz yerel olarak kod yazar ve çalışmalarını Docker konteynırlarını kullanarak iş arkadaşlarıyla paylaşır.
  • Uygulamalarını bir test ortamına göndermek ve otomatik ve manuel testler yürütmek için Docker’ı kullanırlar.
  • Geliştiriciler hatalar bulduğunda, bunları geliştirme ortamında düzeltebilir ve test ve doğrulama için test ortamına yeniden dağıtabilirler.
  • Test tamamlandığında, düzeltmeyi müşteriye ulaştırmak, güncellenmiş görüntüyü üretim ortamına göndermek kadar basittir.

Duyarlı dağıtım ve ölçeklendirme

Docker’ın konteynır tabanlı platformu, son derece taşınabilir iş yüklerine izin verir. Docker konteynırları, bir geliştiricinin yerel dizüstü bilgisayarında, bir veri merkezindeki fiziksel veya sanal makinelerde, bulut sağlayıcılarında veya ortamların bir karışımında çalışabilir.

Docker’ın taşınabilirliği ve hafif yapısı, iş yüklerini dinamik olarak yönetmeyi, iş ihtiyaçlarının gerektirdiği şekilde uygulamaları ve hizmetleri ölçeklendirmeyi veya parçalara ayırmayı neredeyse gerçek zamanlı olarak kolaylaştırır.

Aynı donanım üzerinde daha fazla iş yükü çalıştırma

Docker hafif ve hızlıdır. Hipervizör tabanlı sanal makinelere uygulanabilir, uygun maliyetli bir alternatif sağlar, böylece iş hedeflerinize ulaşmak için bilgi işlem kapasitenizin daha fazlasını kullanabilirsiniz. Docker, daha az kaynakla daha fazlasını yapmanız gereken yüksek yoğunluklu ortamlar ve küçük ve orta ölçekli dağıtımlar için mükemmeldir.

Docker Mimarisi

Docker, bir client-server (istemci-sunucu) mimarisi kullanır. İstemci, Konteynırlarınızı oluşturmanın, çalıştırmanın ve dağıtmanın ağır işlerini yapan Daemon ile konuşur. İstemci ve daemon aynı sistemde çalışabilir veya bir istemciyi uzak bir daemon a bağlayabilirsiniz. İstemci ve daemon, UNIX yuvaları veya bir ağ arabirimi üzerinden bir REST API kullanarak iletişim kurar. Başka bir istemci, bir dizi kapsayıcıdan oluşan uygulamalarla çalışmanıza olanak tanıyan Docker Compose‘dur.

docker mimarisi
Docker Mimarisi

Docker Daemon

Docker daemon (dockerd), Docker API isteklerini dinler ve görüntüler, kapsayıcılar, ağlar ve birimler gibi Docker nesnelerini yönetir. Daemon, Docker hizmetlerini yönetmek için diğer daemon’larla da iletişim kurabilir.

Docker Client

Docker istemcisi (docker), birçok Docker kullanıcısının Docker ile etkileşim kurmasının birincil yoludur. Docker run gibi komutları kullandığınızda, istemci bu komutları dockerd’a gönderir ve bu komutları gerçekleştirir. Docker komutu, Docker API’sini kullanır. Docker istemcisi birden fazla arka plan programı ile iletişim kurabilir.

Docker Desktop

Docker Desktop, kapsayıcılı uygulamalar ve mikro hizmetler oluşturmanıza ve paylaşmanıza olanak tanıyan Mac, Windows veya Linux ortamınız için kurulumu kolay bir uygulamadır. Docker Desktop, Docker arka plan programını (dockerd), Docker istemcisini (docker), Docker Compose, Docker Content Trust, Kubernetes ve Credential Helper’ı içerir.

Docker Registries

Docker kayıt defteri, Docker görüntülerini depolar. Docker Hub, herkesin kullanabileceği genel bir kayıt defteridir ve Docker, varsayılan olarak Docker Hub’da görüntüleri arayacak şekilde yapılandırılmıştır. Kendi özel kayıt defterinizi bile çalıştırabilirsiniz.

 

Docker pull veya docker run komutlarını kullandığınızda, gerekli görüntüler yapılandırılmış kayıt defterinizden çekilir. Docker push komutunu kullandığınızda, görüntünüz yapılandırılmış kayıt defterinize gönderilir.

Docker Objects

Docker’ı kullandığınızda imajlar, konteynırlar, ağlar, birimler, eklentiler ve diğer nesneler oluşturuyor ve kullanıyorsunuz. Bu bölüm, bu nesnelerin bazılarına kısa bir genel bakıştır.

İmaj (Images)

İmaj, Docker konteynırı oluşturmak için yönergeler içeren salt okunur bir şablondur. Çoğu zaman, bir imaj, bazı ek özelleştirmelerle birlikte başka bir imajı temel alır. Örneğin, ubuntu imajını temel alan bir imaj oluşturabilirsiniz, ancak Apache web sunucusunu ve uygulamanızı ve uygulamanızı çalıştırmak için gereken yapılandırma ayrıntılarını yükleyebilirsiniz.

Kendi imajlarınızı oluşturabilir veya yalnızca başkaları tarafından oluşturulan ve bir kayıt defterinde yayınlananları kullanabilirsiniz. Kendi imajınızı oluşturmak ve çalıştırmak için gereken adımları tanımlamak için basit bir sözdizimine sahip bir Dockerfile oluşturursunuz. Dockerfile içindeki her talimat, imaj da bir katman oluşturur. Dockerfile’ı değiştirdiğinizde ve imajı yeniden oluşturduğunuzda, yalnızca değişen katmanlar yeniden oluşturulur. Bu, diğer sanallaştırma teknolojileriyle karşılaştırıldığında imajları bu kadar hafif, küçük ve hızlı yapan şeyin bir parçasıdır.

Konteynır (Containers)

Konteynır, bir görüntünün çalıştırılabilir bir örneğidir. Docker API veya CLI kullanarak bir Konteynır oluşturabilir, başlatabilir, durdurabilir, taşıyabilir veya silebilirsiniz. Bir konteynırı bir veya daha fazla ağa bağlayabilir, ona depolama ekleyebilir ve hatta mevcut durumuna göre yeni bir görüntü oluşturabilirsiniz.

Varsayılan olarak, bir konteynır, diğer konteynırlardan ve ana makineden nispeten iyi yalıtılmıştır. Bir konteynırın ağının, deposunun veya temel alınan diğer alt sistemlerin diğer konteynırlardan veya ana makineden ne kadar yalıtılmış olduğunu kontrol edebilirsiniz.

 

Bir konteynır, onu oluşturduğunuzda veya başlattığınızda ona sağladığınız tüm yapılandırma seçeneklerinin yanı sıra görüntüsüyle tanımlanır. Bir konteynır kaldırıldığında, kalıcı depolamada depolanmayan durumundaki tüm değişiklikler ortadan kalkar.

Kurulum

Docker’ı birden fazla platforma indirebilir ve kurabilirsiniz. Aşağıdaki bölüme bakın ve sizin için en iyi kurulum yolunu seçin. Kullandığınız işletim sistemine göre talimatları izleyerek kurulumu gerçekleştirebilirsiniz.

Docker Desktop

for MAC
  • MAC için Docker Desktop indirin

Docker Desktop

for Windows
  • Windows için Docker Desktop indirin

Docker Desktop

for Linux
  • Linux için Docker Desktop indirin
Docker Desktop Arayüzü

Eğitimin, Eğlencenin ve Haberin Sitesi TEKNOKODİ

İlgili Yazılar