‫İlk olarak, Docker dosya alanını yayınlayan Charles
‫vardı ve yeşil
‫ekranı açmama izin verin, böylece bu Docker dosyasına
‫bakalım mı?
‫Ve tabii ki buradaki gerçek şu ki, gerçek dünya dosyalarına ulaştığınızda her şey daha karmaşık hale geliyor.
‫Doğru.
‫Hepimiz sahip olduğum gibi kurslarda öğreniyoruz ve blog makalelerinden ve belgelerden öğreniyoruz ve sonra gerçek dünyaya
‫geldiğimizde her zaman bundan daha zor görünüyor.
‫Bu yüzden kurslara her zaman daha fazla karmaşıklık katmaya çalışıyorum ama bunu kurslara dahil etmek çok emek gerektiriyor
‫çünkü çok bağlamsal olması gerekiyor.
‫Bu daha çok sizin ortamınız, kurulumunuz ve uygulamanızla ilgili.
‫Dün gece düşündüm ki, neden yarınki programda bu konu hakkında konuşmuyoruz?
‫Eğer gerçekten hoşunuza gittiyse, buna tam puan verin.
‫Bana sohbet sırasında veya yorumlarda bunlardan daha fazlasını istediğinizi söyleyin ve bunu düzenli bir şey haline
‫getirelim, aslında daha fazla Docker dosyasını inceleyeceğiz ve dosyaları oluşturacağız ve oradaki bazı iyi cevherleri çıkaracağız.
‫Tamam.
‫İlk olarak Charles geliyor ve görünüşe göre kendi hesabından P HP Apache görüntüsüne sahip.
‫Bu isme dayanarak bunun bu olduğunu varsayacağım.
‫Ve bir tarihi var ve oradaki isimde bir sürüm ve tarih olduğunu biliyor.
‫Görüntülerden kendinize özel bir şeyler elde etmeye başladığınızda, onları versiyonlamak, tarihlemek ya da içlerinde
‫işlenmiş fikirler kullanmak gibi şeyler yapmaya başlamanız oldukça yaygındır.
‫Bu da aynı görüntüyü doğru kullandığınızı garanti etmenin bir yoludur.
‫Burada da gerçek bir üretim kurulumunda yalnızca en son sürümü kullanmazsınız, her zaman en son sürümü oyun oynamak ve test etmek için
‫kullanabilirsiniz.
‫Ancak gerçek şeylere geçtiğinizde her zaman bu gerçek versiyonları kullanmak isteyeceksiniz.
‫Charles'ın söylediği Azure HP görüntüsü.
‫Tamam, güzel.
‫Ve burada daha önce görmediğim ilginç bir düzeneği var ve sanırım bunu neden yaptığını
‫biliyorum.
‫Yani buradaki çalıştırma satırında güncelleme almak için bir uygulama yapıyorsunuz ve sonra eğer bu olmazsa bash'ta
‫bir OR veriyorsunuz, yani bu başarılı olmazsa bunu yapın diyorsunuz.
‫Ve siz de bunu tekrarlıyorsunuz.
‫Tahminimce ya bir ağ üzerindesiniz ya da güncelleme sorunları yaşamanın yaygın bir sorun olduğu bir
‫yerdesiniz ya da geçmişte rastgele başarısız olduğu ve ikinci kez yaptığınızda çalıştığı
‫bazı tuhaflıklar yaşamış olabilirsiniz.
‫Orada yaptığınızı tahmin ettiğim şey bu.
‫Ve bu sorun için etkili bir çözümdür, eğer bunun içinse.
‫Aksi takdirde normalde bu tür bir kurulum görmem, bu normalde orada göreceğim şey değil.
‫Tamam.
‫Sırada dışa aktarma var ve bu sadece küçük bir meta veri değişikliği.
‫Bu yüzden çok fazla zaman almayacak. Charles'ın söylediğine bakın,
‫evet, bunun mutlu bir HP görüntüsü olduğunu söylüyor.
‫Ve Azure desteğini bozmak için konuştu ve bir hatayı düzeltti.
‫Çok havalı,
‫bunu değiştireceğim bakın bunu yapalım buradaki yazı tiplerini
‫değiştirelim böylece biraz daha kolay görünüyor evet.
‫Daha iyi bir bakış.
‫Evet.
‫Tamam.
‫İşte ilginç bir şey.
‫Yani bazı indirmeler yapıyorsunuz ve bir paket yüklüyorsunuz ki bu normaldir.
‫Ayrıca burada bir sürü APP get yüklemesi yapıyorsunuz.
‫Dolayısıyla, bu test ettiğiniz bir şey değilse ve sadece bu iş akışının nasıl çalıştığını anlamaya çalışmıyorsanız,
‫özellikle boyut söz konusu olduğunda optimizasyon için birçok fırsat vardır.
‫Ayrıca burada başınızı biraz belaya sokabileceğimiz bir durum var.
‫Burada, güncelleme almak için uygulamayı yapan ayrı bir çalışma hattımız olduğuna dikkat edin.
‫Yani burada tüm kurulumu yaptığınız o hat yok.
‫Yani tüm bu adımları ayırdınız.
‫Şimdi gidip resmi görüntülere bakarsanız, bunu asla yapmadıklarını fark edeceksiniz.
‫Her zaman hepsini büyük bir koşu çizgisine koyarlar ve bunun birkaç nedeni vardır.
‫Bunun en büyük nedeni nakit sıkıntısıdır.
‫Yani bir imaj oluşturduğunuzda bunun arkasında bir para olduğunu düşünürsünüz.
‫Jenkins veya CCD runner gibi bir şey kullanıyorsanız ve önbelleklemeyi devre dışı bıraktıysanız,
‫önbellekleme olmadan her zaman sıfırdan derleme yapacaksa, bu tür bir sorun olmayabilir, ancak yerel olarak derleme yapıyorsanız veya herhangi
‫bir sistemde birden fazla kez derleme yapıyorsanız kesinlikle bir sorun
‫olacaktır.
‫Ve bu da koşu çizgisinde olacak olan şey.
‫Diyelim ki orada.
‫TAMAM.
‫Ve bu hiç değişmez.
‫Doğru.
‫Yani bu görüntüyü ilk kez oluşturduğunuzda her şey yolunda.
‫Diyelim ki üç gün sonra inşa ettiniz.
‫Bu satırı önbelleğe almayacak çünkü bu satır değişmedi ve standart docker
‫build komutunda bir satırı değiştirdiğinizde önbelleği kırıyor.
‫Ve bu satırı değiştirdiğinizde, o satırdaki her şey ve ondan sonraki her satır yeniden çalıştırılır.
‫Ve burada olan şey, bu çalıştırma satırına sahipseniz ve hiç değişmezse, ancak daha sonra çalıştırma satırına
‫diyelim ki başka bir paket eklerseniz veya belki sürümleri değiştirirseniz ve sürümlerinizi sabit kodlarsanız,
‫ki bunu da yapmalısınız, tüm bu araçların sürümlerini sabit kodlamalısınız ve belki zip
‫ve unzip ve curl değil.
‫Ancak güvenlik ekibiniz katı ise güvenilir sürümlere sahip olmanızı bekleyeceklerdir ve bu da burada yapmak isteyeceğiniz
‫başka bir şeydir.
‫Ama bu noktaya geri dönelim.
‫Yani bu yüklemeleri yapacaksanız ve bir aracı değiştirip buraya ekleyecekseniz.
‫Bunu düşünün ve get update'in tüm bu paketlerle ilgili meta verilerin bir önbelleğini indirmesi gerektiğini
‫ve daha sonra bu paketleri yükleyeceğinizi ve buradaki ikinci satır değişerek
‫bozulursa yeniden çalışacağını düşünün.
‫Ancak güncelleme almak için uygulamanızın eski önbelleğine dayalı olarak çalışacaktır.
‫Böylece zamanla sorun yaşamaya başlayacaksınız çünkü paketleriniz her zaman bu eski sürümleri
‫yüklüyor olacak. Bunu yapmanın çok daha iyi bir yolu, tüm uygulamanızı doğru bir şekilde almaktır.
‫Ve bunun bu paketi buradan indirmekle bir ilgisi olması gerekmiyor.
‫Bu özel bir pakettir.
‫Bunu birazdan konuşacağız.
‫Ancak bu çizgiler söz konusu olduğunda, bu çizginin boyut üzerinde hiçbir etkisi olmayacaktır
‫çünkü bu çizginin bununla aynı çizgide ilerlemesi gerekir, aksi takdirde çalışmayacaktır.
‫Bunların hepsi doğru olmayabilir.
‫Başka bir Tamam'ınız varsa çok aşamalı yapmıyorsunuz demektir.
‫Büyüklük sorunundan kurtulmanın bir yolu, çoklu devlet yapıyorsunuz ama devletin yaptığını yapmıyorsunuz ve bu
‫sorun değil.
‫Çok aşamalı yapmak zorunda
‫değilsiniz, bu yüzden burada
‫ne olacağını görelim, bunları tam buradan almanızı ve hepsini bu çizgiye kadar
‫çarpmanızı tavsiye edersiniz.
‫Bu ihracat hattını alır ve yukarıya koyardım, böylece ayarlanmış olur.
‫Ve asla değişmesi gerekmez.
‫Ve işleri yoluna koymaya çalışırken bu konuda endişelenmenize gerek yok.
‫Ve genel olarak, tüm at get öğelerinizin en üste yakın olması iyidir çünkü yüklenmesi genellikle uzun zaman alan bağımlılıkların mümkün
‫olduğunca yukarıda olmasını istersiniz, böylece onları çok sık yeniden çalıştırmak
‫zorunda kalmazsınız.
‫Ama ben size tüm bu malzemeleri alıp
‫buraya koymanızı tavsiye edeceğim, şimdi bunu yapabilirsiniz çünkü bu manuel bir paket indirme ve yükleme.
‫Bunu yaptığınızda yapabileceğiniz
‫birkaç şey vardır.
‫Bir tanesi şu.
‫Buradaki satır bir katman olacak ve bu katman, ihtiyacınız olmasa bile her zaman db dosyasını içerecek.
‫Yani daha sonra temizlediğinizde bu önceki katmanları temizlemiyor.
‫Buradaki sorunlardan biri, bir katmana indirilen bir dosya olması ve daha sonra bir sonraki satıra
‫geçmenizdir. Bir sonraki Docker komutunun yeni bir katman olacağını söylemeliyim.
‫Bunu, bir satırı veya bir docker komutunu durdurduğunuzda ortaya çıkan ayrı bir şey olarak düşünün.
‫Bunu değiştiremezsiniz, zamanda geriye gidip bunu değiştiremezsiniz.
‫Yani bir sonraki satır veya komut ve docker dosyası sadece ona bir şeyler ekleyecektir.
‫Şimdi eğer dosyaları silerse, onları sadece bu katmanda silecektir.
‫Esasen, hey bu dosya artık var olmamalı veya varmış gibi görünmemeli diyen bazı meta veriler koyar, ancak bu dosyalar
‫hala var olacaktır ve bu salt okunur katmanlar çünkü üzerindeki her katman
‫artık salt okunurdur ve bu katmanların beklediğinizle aynı olmasını garanti etmenin yolu budur.
‫Yani hiçbir katman zamanda geriye gidemez.
‫Yapmanız gereken şey docker varsayılan imajlarından bazılarına göz atmaktır ve bu yüzden bunu yapalım aslında benimkilerden birine bakalım
‫çünkü biraz daha kolay anlaşılır
‫olabilir.
‫Yani evet, emin
‫değilim.
‫TAMAM.
‫Yani Docker dosyası evet bir AP Kay var ama burada hepsinin nasıl tek bir satırda olduğunu fark edeceksiniz,
‫bu biraz kötü bir örnek ama hadi bir hub yapalım ve Ghost'a bakalım.
‫Bu Debian
‫Docker dosyasına bakın.
‫İşte başlıyoruz.
‫Bu durumda, bazı şeyleri indirdiğini, bu şeylerle uğraştığını ve ardından bu şeylerden tek bir çalışma
‫satırında kurtulduğunu fark edeceksiniz.
‫Böylece bu dosyalar asla ortalıkta dolaşmaz.
‫Bu katman mühürlendikten ve yalnızca okunabilir olarak işaretlendikten sonra.
‫Resimlerinizi küçük tutmanın anahtarı da budur.
‫Bahse girerim bu malzemeleri verimli hale getirip bir araya getirdiğinizde yüzlerce megapiksel ve görüntü
‫boyutundan tasarruf edeceksiniz.
‫Pekala, buradaki diğer bir şey de bunu tek bir satıra ekleyeceğim ve orada yapacağım başka bir şey de,
‫belki de bir reklam yapmanıza gerek yok, bir reklam otomatik olarak İnternet'ten bir dosya
‫indirecek.
‫Kopyalama ve reklam arasındaki farkı merak ediyorsanız, günümüzde standart olarak kopyalama
‫yalnızca içinde bulunduğunuz deponun dışına dosya kopyalamak içindir.
‫Yani sadece dosyaları kopyalayın ve ad de aynı şeyi yapar, ancak ad'i yalnızca İnternet'ten bir şey indirirken veya
‫kopyaladığımız her neyse ve bunun unzip veya UN tar olmasını istediğimizde kullanma eğilimindeyiz ve bu gerçekten ad'i kullanmak için
‫bir neden olacak.
‫Ancak burada reklam kullanmanın güzel bir avantajı, w w get yapmanıza gerek kalmamasıdır, temel olarak doktorların dahili
‫dosyalarını kullanabilirsiniz, gidip bu dosyayı alacağız ve indireceğiz, ancak bunun olumsuz yanı, bu satırı yaptığınızda ve ardından bir
‫sonraki satıra geçtiğinizde.
‫Bu paket hala var olacaktır.
‫Bu nedenle, reklamlar sizin durumunuzda gerçekten harika olsa da, yükleyeceklerinden emin olduğunuz
‫bir paketi indiriyorsunuz ve artık bu pakete ihtiyacınız yok.
‫Ben olsam bu üç satırı tek bir satırda toplardım, böylece en sonunda D noktasını
‫silebilirsiniz. B. dosyasına ekleyebilir ve son etkinliğinizde ek alan kazanabilirsiniz.
‫Yani bunların hepsini tek seferde yaparsınız.
‫Tamam.
‫Bu yardımcı olur.
‫Görünüşe göre başka dosyaları kopyalıyorsunuz ve ekleme değil kopyalama yöntemini kullanıyorsunuz.
‫Ayrıca bazı yapımcılar, kopyalayıcılar ve sertifikalar da yapıyorsunuz.
‫Ben olsam aynen böyle yapardım.
‫Bunu daha optimize hale getirmek için tüm bunları genellikle tek bir çalıştırma komutuna koyabilirsiniz
‫çünkü temelde inşa etmek biraz daha hızlıdır, faturanızda belki bir saniye daha hızlı olacaktır çünkü bu satırların her
‫biri konteyneri durdurmalı veya yeni bir konteyner oluşturmalı, görüntünün geri kalanını monte
‫etmeli ve bu komutu çalıştırmalı, ardından bunu yeni bir konteyner görüntüsüne kaydetmeli ve ardından yeni bir
‫konteyner başlatmalıdır.
‫Doğru.
‫Yani üç hızlı komut çalıştırmaktan çok daha fazla iş yapması gerekiyor.
‫O yüzden bunları bir arada alabilirim.
‫Orada güvenli alan tasarrufu ya da başka bir şey yok ama sadece üç
‫komut meselesi gerçekten uzun bir kabuk komutuna dönüşecek ve evet tamam evet.
‫Kapılar bizde.
‫Muhtemelen ben de aynı şeyi yapardım, bu arada sadece verimlilik için bir tane yapardım.
‫Yani burada iki farklı kopya satırı kopyalıyorsunuz, bunu tek bir satır haline getirebilirsiniz.
‫Aslında kopyala diyebilir ve ardından CRT'ye giden yolu ve ardından bu tuşa giden yolu söyleyebilirsiniz.
‫Neden bu iki dosyaya sahip olduğunuzu ve ardından SSL dizininin yolunu girin.
‫Her ikisi de aynı dizine gittiği sürece, tek bir kopyalama satırında birden fazla dosyaya sahip olabilirsiniz,
‫bu da işi biraz daha kolaylaştırmanıza yardımcı olacaktır.
‫Çok karmaşık olmadıkları sürece daha az satır daha iyi olma eğilimindedir.
‫Evet.
‫Yapılandırmalarla ilgili bazı standart Apache öğeleriniz de olabilir.
‫Ne kadar olduğunu bilmiyorum.
‫Evet.
‫Bunlar gerçekten çok iyi.
‫Bence bunlar
‫iyi evet, bunlardan bazılarında yapılandırma dosyalarını biraz daha kopyalayın, ayrıca bunların standart yapılandırma dosyaları olduğunu da düşünebilirsiniz,
‫ancak bunların üzerine yazmanız gerekiyorsa ve Cuban veya swarm kullanarak bir orkestratör kullanıyorsanız,
‫bu yapılandırmayı kullanabileceğinizi veya yapılandırma haritası adı verilen topluluklarda yapılandırma özelliğini ve swarm'ı bu
‫dosyaları çalışma zamanında monte etmek için kullanabileceğinizi fark edin, böylece herhangi bir yapılandırmayı sabit kodlamazsınız.
‫İdeal olarak, SSL'yi görüntünüze sabit olarak kodlamazsınız ya da gerçekten özel SSL'niz varsa, bunu orkestratörünüzde
‫veya Docker'da saklamak ve bunları monte etmek ve çalıştırdığınızda çünkü ideal olarak kaydettiğinizde
‫bir görüntüde gizli bir şey olmamalıdır.
‫Umarım burada da aynı şeyi yapıyor olacaksınız çünkü bu ikisini tek bir satırda birleştirebilirsiniz, bunlardan bazılarını
‫tek bir satırda birleştirebilirsiniz, muhtemelen bu dizindeki tüm x küçük dosyalarsa, dizini yıldız
‫nokta X miktarını kopyalayabilirsiniz ve sonra dördünü de oraya kopyalayabilirsiniz, bunun
‫artıları ve eksileri vardır çünkü o zaman fazladan bir X excel dosyası ortaya çıkarsa yanlışlıkla
‫kopyalanabilir, ancak bu sadece ne kadar ayrıntılı olmak istediğinize ve daha koyu dosyayı küçük ve basit tutmak yerine
‫satır satır bir şeyler isteyip istemediğinize bağlıdır.
‫Tamam.
‫Ve sonra çalışma dizininde değişikliğinizi çalıştıran başka bir kopyanız var ve sonra giriş
‫noktanız var.
‫Şimdi tipik olarak CRM D'niz yok.
‫Tahminimce CRM D'yi bu kök imajdan kullanıyorsunuz ve bu tamamen sorun değil.
‫Bunda gerçekten yanlış bir şey yok.
‫Bununla ilgili yaşadığım zorluklardan biri de, eğer bir ekibim varsa, görüntülerimi kullanan insanların
‫onları nasıl göreceklerini bilmemeleri.
‫Bu nedenle, en altta gereksiz olmasına rağmen CMT'yi tekrarlama eğilimindeyim çünkü bunu ve bir tür repoyu alacaklar
‫ve ona bakacaklar ve Docker konusunda çok bilgili değillerse, Oh, bunun için Docker dosyasını
‫bulmam gerektiğini anlamayacaklar.
‫Buradan geliyor ya da geçmişi kullanın ve CMT'yi bulmak için geçmişe ve zamana
‫bakın.
‫Bu Docker dosyasına bakan kişilere yardımcı olmak için bunu bir yorum olarak da ekleyebilirsiniz,
‫ancak CMT'deki giriş noktası bu Docker görüntüsünün ne yaptığı konusunda çok önemli olduğu
‫için önceki bir görüntünün tekrarı olsa bile bunları ekleme eğilimindeyim.
‫Yine tüm bunlar sadece meta verilerdir, bu nedenle diğer dosya değişiklikleri ve yaptığınız çalıştırma komutları yerine derlemenize
‫gerçek bir zaman veya şişkinlik katmaz.
‫Ancak bunun dışında, üzerinde çok zaman harcadığınız harika ve kaliteli bir üretim Docker dosyası gibi görünüyor,
‫ancak bence kesinlikle genel olarak bunların çoğunu birleştirebilir ve görüntünüzde çok fazla alan ve çok
‫fazla şişkinlik tasarrufu sağlayacak şeyler elde edebilirsiniz ve ayrıca yeni şeyler yüklemeye çalıştığınızda temelde eski bir uygulamanın para
‫kazanması için eski bir güncellemeye sahip olma sorunundan kaçınabilirsiniz.
‫Bunları sürümlendirmenizi tavsiye ederim ve temel olarak bu yükleme komutunun içinde her birinin sürümünü
‫belirtebilirsiniz, belki bu araçlardan bazıları gerçekten önemli değildir, ancak ihtiyacınız olan kütüphanelere
‫inmeye başladığınızda.
‫Gerçek uygulamanız için Apache için bunlar, üretimde çalışan bir uygulamada kullanacağınız şeyler değil, onu
‫yönetmek için daha fazla yardımcı programdır.
‫Doğru.
‫Ama buradaki canlı Apaçi kesinlikle bu böcek ve HP tarafından ısırıldığımı söyleyebilirim
‫çünkü bir mongo D. B. sürücü ve HP görüntümün içindeki sürümleri değiştirdi
‫ve bir hata oluştu ve üretim uygulamalarımı bozdu çünkü docker dosyasına sabitlemedim ve temelde üretime geçtim,
‫sadece bir gün görüntüyü yeniden oluşturdum, makinemde iyi çalıştı çünkü makinemde farklı bir sürüm vardı
‫çünkü orada sürüm yok diyor, temelde görüntüyü oluşturduğunuzda en
‫yeni sürüm neyse onu alıyorsunuz, bu yüzden çalışan iyi bir sürüm elde etmek için rastgele bir umut.
‫Bu yüzden kesinlikle hepsini sabitleyin ve ayda bir ya da güvenlik ekibiniz ne
‫gerektiriyorsa onu güncelleyin.
‫Ama bu harika bir Docker dosyası.
‫Çok teşekkür ederim.
‫Tabii ki her zaman geliştirilecek yönler vardır ve bu konuda yardımcı olmanıza sevindim.