Docker, aşağıdakilere dayalı uygulamalar oluşturmak için bir yazılım platformudur. konteynerler—işletim sistemi çekirdeğini ortak kullanan, ancak aksi halde birbirinden ayrı olarak çalışan küçük ve hafif yürütme ortamları. Konteynerler bir süredir Linux ve Unix sistemlerinde kullanılıyor olsa da, 2013’te başlatılan açık kaynaklı bir proje olan Docker, geliştiricilerin yazılımlarını “bir kez oluşturup her yerde çalıştıracak” şekilde paketlemelerini her zamankinden daha kolay hale getirerek teknolojinin popülerleşmesine yardımcı oldu.

Docker’ın kısa bir tarihi

2008 yılında Paris’te Solomon Hykes tarafından DotCloud olarak kurulan Docker olarak bildiğimiz şey, platformunun üzerinde çalıştığı temel yazılım kapsayıcılarını demokratikleştirmeye odaklanmak için 2013’te dönmeden önce bir hizmet olarak platform (PaaS) olarak başladı.

Hykes, Docker’ın ilk kez Mart 2013’te PyCon’da demosunu yaptı ve burada Docker’ın, geliştiricilerin DotCloud platformunu destekleyen temel teknolojiyi istemeye devam etmesi nedeniyle oluşturulduğunu açıkladı. “Her zaman ‘Evet, işte düşük seviyeli parçamız’ diyebilmenin harika olacağını düşündük. Artık bizimle Linux kapsayıcıları yapabilir ve istediğinizi yapın, platformunuzu oluşturun.’ Yani yaptığımız şey bu.”

Ve böylece, açık kaynak projesinin geliştiriciler arasında hızla ilgi toplaması ve Microsoft, IBM ve Red Hat gibi yüksek profilli teknoloji sağlayıcılarının yanı sıra yenilikçi teknolojilere milyonlarca dolar pompalamaya istekli risk sermayedarlarının dikkatini çekmesiyle Docker doğdu. başlamak. Konteyner devrimi başlamıştı.

Konteynerler nelerdir?

Hykes’ın PyCon konuşmasında tanımladığı gibi, kapsayıcılar “oradaki bir sunucudan oradaki bir sunucuya, dizüstü bilgisayarınızdan EC2’ye çıplak metal dev bir sunucuya teslim edebileceğiniz bağımsız yazılım birimleridir ve içinde çalışacaktır. aynı şekilde, çünkü süreç düzeyinde izole edilmiş ve kendi dosya sistemine sahip.”

Bu süreci basitleştirerek Docker, konteynerler için fiili bir endüstri standardına hızla yaklaştı. Docker, iş yüklerini izin verilen önceki yöntemlerden daha taşınabilir ve esnek hale getirmek için bir dizi yeniden kullanılabilir görüntü kullanarak geliştiricilerin bir iş yükünü tek bir akıcı şekilde dağıtmasına, çoğaltmasına, taşımasına ve yedeklemesine olanak tanır.

Sanal makine (VM) dünyasında bu, aynı donanım üzerinde çalışırken uygulamaları ayrı tutarak yapılabilir, ancak bu dünyada her VM’nin kendi işletim sistemine ihtiyacı vardır, yani bunlar genellikle büyüktür, başlatılması yavaştır, taşınması zordur. etrafında ve bakımı ve yükseltmesi hantal. Konteynerlerin, VM döneminden tanımlanmış bir kaymaya işaret ettiği yer, temeldeki işletim sistemi çekirdeğini paylaşırken yürütme ortamlarını yalıtmak ve geliştiriciler için hafif ve hızlı bir seçenek sunmaktı.

sanal makineler vs konteynerler Liman işçisi

Sanallaştırma ve kapsayıcı altyapısının yığınlanma şekli.

Docker: bileşen parçaları

Docker, bir kapsayıcıyı oluşturmak ve başlatmak için gereken araçları daha önce mümkün olandan daha akıcı ve basitleştirilmiş bir şekilde paketlemenin yeni bir yolunu bulduğu için yazılım geliştiricilerle yola çıktı. Bileşen parçalarına ayrılan Docker, Dockerfile, kapsayıcı görüntüleri, Docker çalıştırma yardımcı programı, Docker Hub, Docker Engine, Docker Compose ve Docker Desktop’tan oluşur.

Docker dosyası. Her Docker kapsayıcısı bir Dockerfile ile başlar. Bu metin dosyası, işletim sistemi, diller, çevresel değişkenler, dosya konumları, ağ bağlantı noktaları ve çalıştırması gereken diğer bileşenler dahil olmak üzere bir Docker görüntüsü oluşturmak için bir dizi talimat sağlar.

Liman işçisi görüntüsü. VM dünyasındaki anlık görüntüye benzer şekilde, Docker görüntüsü, bir kapsayıcı oluşturma talimatlarını ve kapsayıcının hangi yazılım bileşenlerinin nasıl çalışacağına ilişkin belirtimleri içeren taşınabilir, salt okunur, yürütülebilir bir dosyadır.

Docker çalıştırma yardımcı programı. Docker’ın çalıştırma yardımcı programı, bir kapsayıcıyı başlatan komuttur. Her kap, bir görüntünün bir örneğidir ve aynı görüntünün birden çok örneği aynı anda çalıştırılabilir.

Docker Merkezi. Docker Hub, kapsayıcı görüntülerinin depolanabileceği, paylaşılabileceği ve yönetilebileceği bir havuzdur. Bunu Docker’ın kendi GitHub sürümü olarak düşünün, ancak özellikle kapsayıcılar için.

Docker Motoru. Docker Engine, Docker’ın çekirdeğidir. Kapsayıcıları oluşturan ve çalıştıran temeldeki istemci-sunucu teknolojisidir. Docker Engine, kapsayıcıları yönetmek için dockerd adlı uzun süredir devam eden bir arka plan programı işlemi, programların Docker arka plan programı ile iletişim kurmasına olanak tanıyan API’ler ve bir komut satırı arabirimi içerir.

Docker Oluştur. Docker Compose, çok kapsayıcılı Docker uygulamalarını tanımlamak ve çalıştırmak için YAML dosyalarını kullanan bir komut satırı aracıdır. Yapılandırmanızdan tüm hizmetleri oluşturmanıza, başlatmanıza, durdurmanıza ve yeniden oluşturmanıza ve çalışan tüm hizmetlerin durumunu ve günlük çıktısını görüntülemenize olanak tanır.

Docker Masaüstü. Tüm bu bileşen parçaları, konteynerli uygulamalar ve mikro hizmetler oluşturmak ve paylaşmak için kullanıcı dostu bir yol sağlayan Docker’ın Masaüstü uygulamasına sarılır.

Docker avantajları

Docker kapsayıcıları, daha önce izin verilen yöntemlere göre birleştirilmesi, bakımı ve taşınması daha kolay uygulamalar oluşturmak için bir yol sağlar. Bu, yazılım geliştiricilere çeşitli avantajlar sağlar.

Docker kapsayıcıları minimalisttir ve taşınabilirliği sağlar. Docker, uygulamaları ve ortamlarını yalıtarak temiz ve minimum düzeyde tutulmasını sağlar, bu da daha ayrıntılı kontrol ve daha fazla taşınabilirlik sağlar.

Docker kapsayıcıları, birleştirilebilirlik sağlar. Kapsayıcılar, geliştiricilerin bir uygulamanın yapı taşlarını, geliştirme döngülerini, özellik sürümlerini ve hata düzeltmelerini hızlandırabilen, kolayca değiştirilebilen parçalarla modüler bir birim halinde oluşturmasını kolaylaştırır.

Docker kapsayıcıları düzenlemeyi ve ölçeklendirmeyi kolaylaştırır. Kapsayıcılar hafif olduğu için geliştiriciler, hizmetlerin daha iyi ölçeklendirilmesi için birçoğunu başlatabilir. Bu kap kümelerinin daha sonra düzenlenmesi gerekir, bu da Kubernetes’in tipik olarak devreye girdiği yerdir.

liman işçisi dezavantajları

Kapsayıcılar pek çok sorunu çözer, ancak tüm geliştirici sorunlarını çözmez.

Docker kapsayıcıları sanal makineler değildir. Sanal makinelerin aksine, kapsayıcılar, ana bilgisayar işletim sisteminin kaynaklarının kontrollü bölümlerini kullanır; bu, öğelerin bir VM’de olduğu kadar katı bir şekilde izole edilmediği anlamına gelir.

Docker kapsayıcıları çıplak metal hızı sağlamaz. Konteynerler, sanal makinelerden önemli ölçüde daha hafiftir ve metale daha yakındır, ancak bir miktar performans yüküne maruz kalırlar. İş yükünüz çıplak metal hızı gerektiriyorsa, bir kapsayıcı sizi oraya kadar yaklaştırmaz, ancak oraya kadar götürmez.

Docker kapsayıcıları durumsuz ve değişmezdir. Kapsayıcılar, içeriklerini açıklayan bir görüntüden önyüklenir ve çalıştırılır. Bu görüntü varsayılan olarak değişmezdir; oluşturulduktan sonra değişmez. Ancak bir kapsayıcı örneği geçicidir. Sistem belleğinden kaldırıldığında sonsuza kadar gider. Kapsayıcılarınızın sanal bir makine gibi oturumlar arasında durumunu sürdürmesini istiyorsanız, bu kalıcılık için tasarlamanız gerekir.

Bugün Docker nedir?

Bulutta yerel geliştirme teknikleri, yazılım oluşturmak ve çalıştırmak için ana model haline geldikçe, kapsayıcı kullanımı artmaya devam ediyor, ancak Docker artık bu bulmacanın yalnızca bir parçası.

Docker, bir uygulamanın kodunu ve tüm bağımlılıklarını geliştiricinin dizüstü bilgisayarından bir sunucuya taşımayı kolaylaştırarak ana akım haline geldi. Ancak kapsayıcıların yükselişi, monolitik yığınlardan mikro hizmet ağlarına kadar uygulamaların oluşturulma biçiminde bir kaymaya yol açtı. Yakında birçok kullanıcının kapsayıcı gruplarını uygun ölçekte düzenleme ve yönetme yöntemine ihtiyacı vardı.

Google’dan doğan Kubernetes açık kaynak projesi, Docker’ın Swarm düzenleyicisi (RIP) ile bu sorunu çözmeye yönelik kendi girişimlerinin yerini alarak bunu yapmanın en iyi yolu olarak hızla ortaya çıktı. Artan finansman sıkıntısının ortasında, Docker sonunda kurumsal işini 2019’da Mirantis’e sattı ve o zamandan beri Docker Enterprise’ı Mirantis Kubernetes Engine’e dahil etti.

Orijinal açık kaynak Docker Engine kapsayıcı çalışma zamanını, Docker Hub görüntü deposunu ve Docker Desktop uygulamasını içeren Docker’dan geriye kalanlar, işi temel müşteri tabanı etrafında yeniden yönlendirmek isteyen kıdemli şirket uzmanı Scott Johnston’ın liderliğinde yaşıyor. Yazılım geliştiricileri.

Telif Hakkı © 2021 IDG Communications, Inc.



#Docker #nedir #Konteyner #devrimi #için #kıvılcım