‫Merhaba, yoksa balina gelsin mi demeliyim? Docker ve konteyner araçları ile yazılım
‫yönetiminin geleceğine.
‫Bu video özellikle Docker hakkındadır.
‫Yıllar boyunca pek çok alet edevatı oldu, Ancak bu video, Avrupa'da yeni
‫bir dönemi başlatan üç büyük yenilikle ilgili. Docker 2013 yılında yazılımın tüm evrimini,
‫yani temel olarak üç şeyi gerçekleştirdi.
‫Docker görüntüsü, Docker kayıt defteri, ‫ve ardından Docker konteyneri.
‫Çoğumuz Docker'ı düşündüğümüzde, konteyneri
‫düşünüyoruz, ancak bu üç yenilik bir arada ekmek ve tereyağı gibi
‫ve buna Docker build ship run diyorlar.
‫Bunlar üç adım.
‫Daha önce konteynıra alınmamış yazılımı, bir Docker görüntüsüne dönüştürmek, bir kayıt
‫defterine koymak, almak çalıştırmanız gereken yere götürün.
‫Ve sonra son olarak ‫ondan bir kap.
‫Aslında, CNCF veya Bulut Native Computing Foundation, konuşacağımız
‫birçok araç tüm videolarım boyunca.
‫Bu ürünler ve araçlar ve iş akışları, çoğu durumda, bir iş akışını
‫kullandığınızı varsayar. inşa gemisi çalıştırma konteyner iş akışı.
‫Şimdi bunları inceleyelim ve ‫üçünün tam olarak ne olduğunu.
‫İlk olarak konteyner görüntüsü.
‫Ve ben bunu evrensel olarak düşünmeyi seviyorum. uygulama paketleyicisi, Ve yıllar boyunca pek
‫çok paket yöneticimiz oldu.
‫Aslında, sayısını unuttum, ve bir süredir buralardayım, tüm
‫paket yöneticileri arasında.
‫Ama daha önce hiç böyle bir şey olmamıştı. Hatırladığım kadarıyla, bu çapraz işletim
‫sistemi, çapraz platform ve uygulama dilden bağımsızdır, yani her yerde çalışır ve her şey üzerinde
‫çalışır. Linux veya Windows çalıştığı sürece.
‫Şimdi hızlıca bir göz atalım Dockerfile, bir konteyner yapmak için tarif veya
‫talimatlar kümesidir imajı, Docker imajı ve konteyner imajı aynı şey için kullanılan
‫aynı terimlerdir.
‫Aslında, Docker görüntü spesifikasyonu o kadar popülerdi ki artık OCI görüntü standardı
‫olarak bilinen bir standart haline geldi.
‫Yani bir dizi talimat görüyorsunuz ve her Dockerfile'ın bir FROM'a ihtiyacı var, başlamak için
‫başka birinin imajından başlayabiliriz.
‫Birçok yerden birçok görüntüye sahip olabiliriz FROM'lar, bu yüzden tüm
‫bu karmaşıklığa daha sonra gireceğiz, ancak Python burada ve biz aşağıya doğru ilerliyoruz.
‫Aslında, bunlarla şu şekilde başlıyoruz olarak adlandırılan Docker dosyasındaki
‫bu komutların her birini katmanlar bir kıta, büyük harflerle.
‫dahil olmak üzere, FROM, ve sonra RUN ve aşağıya doğru çalışıyorlar
‫çünkü onları yukarıdan aşağıya, katmanlar oluşturacaktır.
‫Sunucular arasında dolaşan tarballs olarak ve bu katmanların
‫içinde dosyalar, dizinler ve dosya izinleri ve bazen de daha sonra değineceğimiz
‫meta veriler.
‫Bu görüntüyü oluşturmaya başladığımda bu ilk satırı başlatacak ve Docker Hub'dan Python
‫görüntüsünü bulacak veya Görüntüyü nereden almasını söylediysem.
‫ve bu sadece Python'u içerir ‫ikili dosyaları ve kütüphaneleri.
‫Ana bilgisayar sürücüleri içermez veya Linux Çekirdeği ya da Python'un çalışması için
‫gerekenlerin dışında herhangi bir şey.
‫Python'un OpenSSL'e ihtiyacı varsa, o zaman bu ‫görüntünün o katmanına dahil edilmiştir.
‫O zaman şu bölüme geçebiliriz ‫Dockerfile'ın bir sonraki satırı.
‫Bu bir PIP komutu için Python bağımlılık yükleyicisi ve
‫flask yüklüyor.
‫Yani bu yeni bir katman başlatacak normal bir PIP yükleme komutu ile yaptığınız
‫gibi flask ekler.
‫Aslında, ne oluyor arka planda, bunların her biri için hızlı küçük
‫konteynerler çalıştırıyoruz katmanları, komutları çalıştırmak veya içeride
‫yapmanız gereken her şeyi yapmak ve ardından bu katmanları kendi
‫ayrı konumları olarak depolamak.
‫Linux ana bilgisayarında bunu oluşturuyor.
‫Yani burada katmanları üst üste yığıyoruz.
‫Ve sonra bir sonraki ‫satırı, COPY komutu.
‫Oradaki WORKDIR sadece bir meta veri değişikliği, sadece dosya sistemindeki
‫konumları değiştirir.
‫Önemli bir şey değil.
‫COPY komutu kaynak kodumuzu kopyalar üzerinde inşa ettiğimiz ana bilgisayardan diğerlerinin
‫üzerine yığılmış kendi katmanına.
‫Bunlar birlikte bir görüntü oluşturur ‫Docker build komutunu kullanarak.
‫Bu Docker ile ilgili şeylerden biri kullanımı çok kolay hale geldi
‫çünkü sadece bu basit Docker derlemesine ihtiyacımız vardı komutu, Dockerfile'da devam
‫eden bir grup karmaşık şeyi alıp sadece uygulamamızı ve sadece bağımlılıkları
‫içeren tek bir imaja başka bir şeye ihtiyacı yoktur.
‫Bu ilk bölüm. ‫inşa gemisinin çalıştırılması.
‫Docker derlemesi olmak.
‫Sırada, kayıt defteri hakkında konuşalım.
‫Docker kayıt defteri şunlar içindir ‫uygulama dağılımı.
‫Her uygulama paketleme sisteminde ve Docker kayıt defteri de bundan farklı
‫değildir.
‫Şimdi sadece OCI dağıtım spesifikasyonu veya OCI
‫kayıt spesifikasyonu.
‫Yani yine bir standart konteyner imajlarının nasıl taşınacağı konusunda
‫tüm endüstriye öncülük ediyor.
‫ve her yerde.
‫Her bulutta bir tane vardır.
‫Docker Hub varsayılandır ve ‫muhtemelen en popüler olanı.
‫GitHub'da bir tane var.
‫Bitbucket, GitLab, hepsi kendi imaj kayıtları vardır ve siz de kendi kayıtlarınızı çalıştırabilirsiniz.
‫Muhtemelen en az bir düzine ücretsiz açık kaynak kodlu ve ücretli yazılım
‫projeleri Docker görüntülerinizi içlerinde saklayın.
‫Şimdi bunun nasıl işlediğine bakalım.
‫Birincisi.
‫Yeni oluşturduğumuz imajımız var ve bu görüntünün tüm bu katmanları tanımlayan benzersiz bir SHA
‫karması vardır garanti edebileceğimiz bir şekilde bir araya getirirsek,
‫eğer iki farklı sistemlerde, aynı dosyalar olduğundan emin
‫olabiliriz. Az önce oluşturduğumuz meta verilerin aynısı.
‫Bu görüntü katmanları birlikte gider ‫ve kendilerini dağıtırlar.
‫Docker gibi bir şey kullanabiliriz bu görüntü katmanlarını almak ve bir kayıt
‫defterine itmek için itin.
‫Aşağıdaki gibi birçok kayıt defterinden birini kullanabilirsiniz Bahsetmiştim,
‫Ama bir kez oraya girdikten sonra, başka bir makineye gidebilir ve Docker pull, bu görüntünün özdeş
‫bir kopyasını o makineye çekecektir.
‫Tıpkı inşa ettiğimiz gibi ‫ilk makinede.
‫Bu da temel ilkelerden biridir Docker'ın en önemli özelliği, bir
‫makinede yaptığımız yazılımı tüm bağımlılıkları ile birlikte ve başka
‫bir sistemde aynı şekilde çalıştırın Linux veya Windows'un tamamen farklı
‫dağıtımları olabilir.
‫Linux kullanıyorsanız ve bir Linux ikili dosyalarını çalıştırdığı için Linux
‫üzerinde çalışması gereken Linux görüntüsü, eğer CentOS üzerinde kurdunuz ve Ubuntu
‫üzerinde çalıştırdınız, tam olarak Bu dağıtımdan bağımsız olarak aynı uygulama
‫ve bağımlılıklar.
‫Son olarak, Docker'a ulaşıyoruz ‫konteynerin kendisi . Tüm bu adımları tamamladıktan
‫sonra görüntü, bir yere koyarak, sunucularımızdan
‫erişebiliriz ve sonra sunucularımıza indiriyoruz.
‫Çalıştırabiliriz.
‫Elimizde şunlar olduğunu düşünelim ‫Linux çalıştıran bir sunucu.
‫Windows çalıştırıyor olabilir, ama ‫Bu durumda, sadece Linux'a odaklanacağız.
‫Docker'a sahip olacak ‫arka planda çalışıyor.
‫Bu Docker Motoru olarak bilinir ve Bu tek makinedeki motor, tüm farklı makineleri
‫düzenleyecek veya yönetecektir. Görüntüleri indirmek için yapılması gerekenler,
‫görüntülerin tam olarak indirilmesi gereken şeyi indirin ve sonunda
‫bunları çalıştırın.
‫Sonra görüntüyü aldık, sadece Docker pull ile indirdikten sonra bir
‫komut çalıştıracağız.
‫Bu gerçekten önemli değil komutunu henüz öğrenmediniz,
‫ancak bu bir Docker çalıştırma komutudur.
‫Bu, gemi yapımının çalıştırma kısmıdır.
‫Ve bu durumda, bunu çalıştırıyoruz ‫Python uygulaması kendi konteynerinde.
‫Bu kapsayıcı bir ad alanı olarak bilinir.
‫Bu Linux özelliği bu konteynerde çalışan uygulamanın aşağıdakileri
‫görmesini engeller işletim sisteminin geri kalanı.
‫Kendi boş dosya sistemine sahip olur, ve yalnızca yeni oluşturduğumuz görüntüdeki
‫dosyaları içerecektir.
‫Kendi IP adresini ve kendi ‫sanal NIC ve kendi işlem listesi.
‫Ve temelde şöyle görünüyor ‫İçeride kendi sistemi var.
‫Sonra, bu Docker'ı çalıştırırsak komutunu görüntü adımız veya
‫görüntü karmamızla tekrar çalıştırırsak, aynı konteyner yan yana çalışıyor.
‫Şimdi bu iki süreç ‫birbirlerinden izole edilmişlerdir.
‫Bu yüzden birinci konteynerdeki Python uygulaması ‫ikinci kapsayıcıdaki Python uygulamasına bakın.
‫Ve eğer bir dosyayı değiştirirseniz konteyner iki, konteyner bir varsayılan
‫olarak bu dosyayı görmeyecektir.
‫ile ikinci bir sunucu eklersek Docker Engine'in ikinci örneğini çalıştırdık ve
‫aynı şeyi yaptık. uygulamamızın birçok kez çalıştığı yüksek düzeyde kullanılabilir
‫bir kuruluma sahip olabilir yedeklilik veya daha iyi performans için ya da nedenimiz
‫ne olursa olsun birden fazlasını çalıştırmak için.
‫Aynı olacaklar Dosya sistemi, izinler
‫ve meta veriler açısından.
‫Şimdi yapabileceğimiz bir ton daha var Bu konuları öğrenmek,
‫işte bu yüzden kursum bu kadar uzun.
‫Ama bunlar hala üç Docker'ın ilk kavramsallaştırmasından bu yana
‫değişmeyen şeyler.
‫Gemi inşa etme fikri Konteyner ve Kubernetes'in
‫temel ilkelerinden biri olan Helm.
‫Projeyi yerel bulutta adlandırırsınız ekosistemi için tipik bir iş akışına
‫sahip olduğunuzu varsayar. Uygulamalarınızı geliştiricilerinizin elinden
‫alıp test sistemlerine ve ve son olarak üretim sunucularına.
‫Aynı üç adım.
‫Yani, umuyoruz ki bunların neden üç anahtar olduğunu
‫biraz olsun anlayacaksınız. bileşenleri, bugün bile, tüm bunların icadından
‫çok uzun yıllar sonra.
‫Sırada ne varmış öğrenelim.