‫Bu bölüm, yalnızca, bir komut satırı aracı ve bir yapılandırma
‫dosyası bir araya getiren Docker Oluşturmaya odaklanacaktır. Bu bölüm için şartlar, resimlerin
‫ve konteynerlerin etrafındaki son birkaç bölümdeki esasları birçoğu bilmenizdir.
‫Bu dersten geçerken, işler daha da gelişmeye devam edeceğinden
‫beni daha da heyecanlandıracağımı duymaya başlayacaksınız.
‫Sağ?
‫Bir bileşen öğrenirken, 'adamım bağlar ve ciltler gerçekten harika, diye düşünüyorsun. Bu beni biraz
‫kurtaracak. Bunu nasıl kullanacağımı tahmin edebiliyorum. Filan filan.
‫Sonra, öğrendiklerinizden daha iyi olacak sonraki şeyle birlikte geleceğim.
‫Bu durumda, daha doğru olamazdı.
‫Donanma Oluştur. Ne var peki? Ve neden önemsiyoruz? Pek az yazılım servisi gerçekten bağımsız.
‫Kaplarınızı düşündüğünüzde, tek bir işlem çözümüdür ve bir sorunu çözmek veya müşterilerimize
‫bir hizmet sunmak için nadiren sadece tek bir kap kullanırız.
‫Kaplarımız genellikle SQL veya önemli bir değer gibi başka kaplar gerektirir. Ve proxy'ler veya web ön uçları
‫veya arka uç işçileri gibi konteynerlerde çalışmamız gereken diğer uygulamalar.
‫bağlayın ve ardından hepsini döndürün ve tek bir komutla onları parçalayın.
‫Çözümümüzün tüm parçalarını birbirine bağlamanın bir yolu varsa, tüm liman işletmeciliği seçeneklerimizi hatırlamaya ihtiyaç duymadığımız
‫ve daha sonra onları aralarındaki ilişkileri olan gizli, sanal ağlara sokacak ve yalnızca halkı açığa vuracak
‫olursak limanlara
‫İşte Docker Compose.
‫İçeri girmeden önce, Docker Compose'a iki
‫bölüm olduğunu açıklığa kavuşturmamız gerekiyor. İlk bölüm YAML dosyasıdır ve anlamak son derece basittir.
‫YAML'de yazılmıştır ve YAML ile hiç uğraşmadıysanız, bu çok kolay bir yapılandırma dili.
‫Bir INI dosyası neredeyse aynı derecede kolay.
‫Aslında bunun daha kolay olduğunu düşünüyorum çünkü hiyerarşi gösteriliyor.
‫Buna dalacağız. Bu dosya, çalıştırmanız gereken tüm kapsayıcıları, ihtiyacınız
‫olan ağları, ihtiyacınız olan tüm ciltleri, ortam değişkenlerini, resimleri ve her türlü diğer yapılandırma seçeneğini belirttiğiniz
‫yerdir.
‫Ardından, Docker Oluşturmanın ikinci kısmı, Docker komutlarını basitleştirmek için oluşturduğumuz YAML
‫dosyasını kullanarak normalde yalnızca yerel dev ve test için kullandığımız liman işleyicisi olan bir CLI aracıdır.
‫Docker Oluşturma dosyasından bahsedeceğim.
‫Oluşturma dosyasına koyabileceğiniz şeylerin gerçek versiyonları var. olarak adlandırıldı ve sadece sürüm 1 olduğu kabul edildi.
‫Dolayısıyla, Docker Oluşturuldu yıllar önce, aslında "Fig" Aslında dosyada bir
‫sürümü listelemedi bile. Olgunlaştıkça ve dosyanın içerdiği ağlara
‫ve birimler gibi yeni özellikler ekledikçe, aslında dosyadaki ilk satır
‫olan sürüm bildirimini oluşturmuşlardır. Bu dosya, aslında bir dakika içinde bahsedeceğimiz bir Docker Oluştur CLI
‫ile kullanılabilir.
‫Bu, yine yerel kalkınma yönetimi için ve yalnızca yerel makinenizdeki ortamlarınızda daha
‫kolay dolaşmanızı sağlamak için.
‫Şimdi, 2017 yılının başından itibaren sürüm 1'e sahibiz. dosyalar doğrudan sürü şeridi ile üretimde docker komut satırı ile doğrudan kullanılabilir.
‫13 ve bunun ötesinde herhangi bir şey olduğunda, bu Tabii ki, --help komut
‫satırında büyük yardım var.
‫Bazı örneklere baktığımızda, Bağlantı Oluşturucu Oluşturma dosyasının varsayılan bir ad olduğunu biliyorsunuz, ancak uygun
‫YAML olduğu ve siz hangi dosyayı hangi dosyaya eklediğinizi belirtmek için -f'yi kullandığınız sürece istediğiniz herhangi bir dosya
‫adını kullanabilirsiniz. kullanmaya çalışıyorum
‫Editörümü açıp şablona bakarsam, bunun nasıl olması gerektiği ana hatlarının bir
‫kısmını göstermek isterim.
‫Başlangıçta sürüm değerimiz var.
‫2017 yılının ilk çeyreğindeki en yeni sürümü 3'tür. 1.
‫Ancak her zaman en azından sürüm 2 yapıyorum. O satırı oraya eklemezseniz, her zaman sürüm 1 olduğu
‫varsayılır.
‫Fakat ben bunu önermiyoruz çünkü birçok özelliği kaybedersiniz.
‫Dolayısıyla tipik olarak sürüm 2 ile başlarım. Sonra sürüm 3 ve 3'ün belirli özelliklerine ihtiyacım olursa. 1, orada
‫sürüm numarasını yazarak biter. Diğer üç ana bölümün hizmetler, hacimler
‫ve ağlar olduğunu göreceksiniz, değil mi?
‫Yani, bu hiyerarşik.
‫Hizmetler altında, her şey iki veya dört boşluk olabilir, ancak tutarlı olması gerekir.
‫İnternette YAML'ye bakarsanız, bu dosyayı nasıl biçimlendireceğinizin ayrıntılarıyla size rehberlik edecek
‫bazı siteler bulacaksınız.
‫Modern bir düzenleyici kullanıyorsanız, aslında YAML dilini konuşacak ve bu dosyalarla nasıl başa çıkacaklarını
‫ve biçimlendirmelerini biliyor olacaksınız.
‫Genellikle, burada, asgari olarak, sadece konteyner olan hizmetleriniz var.
‫Aslında onlara hizmetler derlerken nedeni, burada oluşturduğunuz her konteynırdan, aslında bu konteynırların
‫fazladan bir kısmına birden sahip olabilmenizdir. farklı bir kelime bulmaları gerekiyordu.
‫Dolayısıyla
‫Bence hizmetler harika çünkü temelde bunu yapıyorsunuz. Sağ?
‫Eşdeğer olan, kullandığınız her konteynır veya konteynırlar genellikle bir şeye hizmet
‫verir.
‫Hizmet adının altında ve tekrar istediğiniz her şeyi arayabilirsiniz.
‫Görüntünün adı olmak zorunda değildir veya hiç bir şeyle alakalı olması gerekmez.
‫Hizmet adı için Barney olabilir, ancak daha sonra öğreneceğimiz DNS adı
‫Docker ağlarınızın içinde kullanılır.
‫------------------------------------ ------------------------------- Bir liman işletmecisine komut --adı verinceye benzer.
‫Burada, isteğe bağlı olarak resmi belirleyebildiğimizi gösterdim. Çalıştırılacak alternatif
‫komutu belirleyebiliriz. Çalıştırdığımızda resimde belirtilen gerçek komutun üzerine yazmak
‫istersek, bunu burada yapabiliriz.
‫Temelde, liman işletmeciliğinden aldığımız her şey, onları burada kurtarabiliriz. Gerçekten bunun nedeni, sürekli
‫olarak koşu yaptığınız şeylerin liman işletmeciliği komutundaki tüm farklı
‫şeyleri hatırlamaktan tüm işi almak.
‫kendi araçlarınız varsa, muhtemelen bu komutları tekrar tekrar yazmak istemezsiniz.
‫Kendi geliştirme ortamlarınız veya Ve kabuk betiği ancak çok şey yapabilir.
‫Sağ?
‫Yani, bu dosya aslında docker çalıştırma komutlarınızı otomatikleştiren bir kabuk komut dosyasının yerini alacaktı.
‫Bunu yapmak çok daha iyi bir yoldur.
‫Okumak daha kolaydır ve daha iyi belgelenmiştir.
‫Burada boşlukların olduğunu fark edeceksiniz.
‫İstediğiniz yerde yorumlarda boşluk olabilir.
‫Birden fazla hizmetiniz olsaydı, yalnızca benzersiz olduklarından emin olmalısınız.
‫Ardından, belirttiğimiz diğer bölümler hacimler ve ağlar. Ve yine, bunlar isteğe bağlıdır.
‫Temelde komut satırından koşarken olduğu gibi aynı kurallardır.
‫Geçici olarak liman rıhtımını kullanmak zorunda kaldıysanız create veya rıhtım şebekesi komutlar oluşturun
‫ve tekrar yapmanız gerekmez.
‫Durumunuza bağlı.
‫Onları da buraya koyabilirsiniz.
‫Şimdi gerçek dünyaya, basit bir örneğe göz atalım.
‫Jekyll'ı sadece bağlama örneği yapmak için hızlı bir şekilde kullandığımız bir konferans verdik.
‫Son bölümde,
‫Dolayısıyla, bu liman işletmeciliği komutu için oluşturma dosyası nasıl görünecek ve burada
‫resmi belirttiğimi göreceksiniz.
‫Ben Jekyll ismini koydum.
‫Ona bir miktar verdim. Pwd'yi kullanmanın yerine fark edeceksiniz, Compose aslında noktayı
‫anlıyor, yani şu an bulunduğum çalışma dizini.
‫Oluşturma dosyasını çalıştırdığım dizini kullanın. Ardından bağlantı noktaları veya -p seçeneği.
‫gibi bir seçeneğe sahipken genelde bunun gibi bir anahtar ve değer biçimi olacaktır.
‫YAML ile ilgili bazı küçük şeyleri farkedeceksiniz; burada her şey için yalnızca bir resim olacak
‫Birimlerin hacim ve limanlar gibi birden çok parçaya sahip olabileceği gibi bir öğe listesi
‫olacaksa, oluşturma dosyasının genellikle çoğul olduğunu farkedeceksiniz. Hacim yerine hacimler. Ve liman yerine, limanlar.
‫Ve sonra bir - ile bir liste biçimi olacak.
‫Başka bir örnekle hızlıca atlarsak.
‫Burada bir veritabanı
‫kutusu çalıştıran veritabanı hizmetine sahip olduğunuz örnek bir WordPress
‫kurulumunu göreceksiniz.
‫Sonra WordPress web sunucusu konteynerinin üst kısmı.
‫Bununla ilgili küçük bir şey farkedeceksiniz ki, çevre değişkenlerini kullanıyoruz, bu
‫da komut satırında bir -e ile aynı olacaktır. Fakat bir - var bir liste
‫biçimi yerine, yine,
‫başka bir anahtar ve değer ifadesi.
‫Bu biçimde, - işaretini kullanmıyoruz, sadece anahtarı ve değeri listeliyoruz.
‫Bir tane daha eklemek zorunda kaldım, bunu sadece burada yapardım. Bunların hepsi, oluşturduğu komut
‫satırını kullanarak konteynerin içerisine aktarılır.
‫Son olarak, bir örnek daha verdik. Bu biraz daha karışık. Aslında, son zamanlarda
‫bir Ghost web sunucusunun arkasında üç veritabanı sunucusu kümesi kurmak üzere çalışıyordum.
‫Hayalet aslında WordPress'e benzer bir blog sistemidir. Bu konteynerlerin her biri için
‫birden fazla ortam değişkeni bulunduğunu göreceksiniz.
‫Hayalet kabını en üstte tuttum. Sonra aslında MySQL Proxy olarak bilinen bir şey
‫var, hangi MySQL sunucuları önünde oturur ve bir yük dengeleyici ve yerine çalışma çözümü gibi davranır.
‫Sonra iki tane MySQL sunucumun her birine sahibim. Aşağıda, 'bağlı' yazan başka bir seçenek göreceksiniz
‫ve bağlı olduğu oldukça yaygın bir seçenek.
‫Temel olarak, bu hizmetler arasındaki ilişkiyi anlamaya yardımcı olur. Hayaletim'e başlamam gerekiyorsa,
‫diğerlerini de başlatmam gerektiğini biliyor.
‫Buraya göre, benim Hayaletim'in aslında bunlara bağımlı olduğunu görebilirsiniz. Bunun daha sonraki derslerde
‫nasıl işlediğinin ayrıntılarına gireceğiz.
‫Şimdilik, bu muhtemelen sindirmek için çok şey, ve tüm bu farklı komutları ve önemsiz, ancak
‫Docker kendi Web sitesinde gerçekten harika belgelerine sahip olduğuna güveniyor. Google'da Docker Oluşturma dosyasını arıyorsanız, muhtemelen
‫ilk birkaç arama sonucunda bunu bulacaksınız.
‫Dokümanlar altında olacak. liman işçisi. seçeneği ile ilgili dokümantasyon olacak.
‫com web sitesinde, her zamanki gibi, sahip olduğunuz her küçük küçük anahtar ve değer
‫Bahsettiğim şeyin bağımlılarını göreceksin. Ortam değişkenlerini koymanın farklı yollarını gösteren
‫ortamı burada göreceksiniz. Bu dokümantasyonla ilgili harika olan şey size
‫bol miktarda örnek verir.
‫Şahsen, bu sitede her gün sanki liman işletmeciliği komut seçenekleri sayfasında olduğum veya komut seçenekleri oluşturma
‫sayfasında olduğum gibi.
‫Sürekli olarak bunlara referans veriyorum çünkü bugünlerde günümüzde hepsini hatırlamadığım pek çok
‫özellik var.
‫Bu yüzden onları yer işaretlerimde tutuyorum.
‫Şimdi, oluşturma dosyası biçiminin neye benzediğine dair genel bir fikrimiz olduğu için, komut
‫satırına geçelim ve Docker Compose CLI aracını öğrenelim.