[MÜZİK OYUN] DAVID MALAN: Pekala. Geldiğiniz için çok teşekkür ederim. Bu Docker, a üzerinde CS50 semineri teknoloji kendimizi ve CS50 Biz süredir kullanmaya başladılar. Yani benim adım David Malan I, bir Harvard'ın Giriş öğretmek Bilgisayar Bilimine. Oldukça uzun yıllar boyunca, Biz öğrencilere veriyorum İndirilebilir istemci tarafı sanal makineler hangi onların sorunlarını setleri yapmak. Şimdi geçiş olduğunu Bir Bulut ortamına aslında bu teknolojiyi kullanan örneğin, Docker adlı tüm CS50 bu Öğrenciler şimdi var onların Kendi Docker konteynerler Yakında ilgili tüm duyarsınız söyledi. Ayrıca, CS50 sunucusunda Uzun yıllar yan küme Biz Amazon'un bulut sunucusunu kullanarak bulundu. Biz bireyi çalışan sanal makineler. O da, biz geçiş için başladık Docker konteynerler denilen bu şeyler bu yüzden bizim tüm uygulamaları şimdi bu mükemmel birbirlerinden izole. Bunun için ve daha çok, beni izin Bizim arkadaşlar, Nico ve Mano tanıtmak Docker kendisinden. NICOLA KABAR: Teşekkürler, David. Herkese merhaba. Benim adım Nico ve bu Mano olduğunu. Biz Docker geliyoruz. Biz about-- konuşmak için gidiyoruz Docker için adamlar size bir intro vererek, ve umarım, sonuna doğru Bu konuşmanın fark edebilirsiniz Eğer doktor kullanabilirsiniz ne kadar uygulama geliştirme oksalat ve dağıtım. Yani, biz gerçek başlamak için gidiyoruz bazı arka plan bilgileri ile çabuk. Docker tüm hakkında ne olduğunu açıklayın. Nasıl çalışır? Nasıl tasarlandı mı? Bazı demolar yapıyor olacak. Ve Mano olacak açıklayan Eğer Docker nasıl kullanabileceğinizi ve size özel adımları vererek başlamanıza nasıl. Siz tutabilir eğer seviniriz sonuna doğru sorularınız için kapalı. Bu şekilde, ben bu adresleme olabilir sunum boyunca sorular. Bu yüzden biraz zaman bırakacağım Sorularınız için sonlarına doğru. Kim vardır, hızlı Yani sadece gerçek aslında hiç Docker çalıştı, onunla oynadı gibi mi? Başar. Güzel. Büyük. Yani, ben başlamak için gidiyorum Bazı tarihi ile. Böylece geri 90'larda ve temelde 2000'li yılların başlarında, web geliştiricileri, uygulama geliştiriciler olarak, Onlar bir uygulamayı dağıtmak için gittik bu metale bağlıydı. Bu bir sunucu oldu. Bu bir uygulama oldu. Geleneksel olarak, bir örnek bir lamba yığını gibi olurdu, Aslında vardı nerede Kaynakların havuzu getirmek. CPU, bellek, disk, ağ, yükleme Bunun üzerine işletim sistemi. Eğer bir şey hizmet ediyorsanız eğer Aslında, web sunucusu yaşıyorsanız gibi bir şey lüzum Apache bu hizmet için. Başvurunuz Eğer , veritabanı, backhand ihtiyacı Bir şey yüklemek istiyorsunuz MySQL gibi, vb. Ve çalışma süresi ihtiyacınız varsa, PHPs ve PHP, Python çalışma vardı. Ve böylece biz aslında vardı sırayla bu adımları atmaya uygulama ve çalışan almak için. Daha işlem gücünü Gerekirse seni temelde Ops adam aramak zorunda veya gal gidin ve yeni bir kadar rafa donanım parçası bağlayın, ve o tekrarlamak zorunda süreçleri tekrar tekrar. Yani bu süreç oldu nispeten pahalı. Kesinlikle çok yavaş oldu. Bu verimsiz oldu. Ve durumlarda bir sürü, sizin donanım atıl edildi. Yani, 90'ların ve 2000'lerin başlarında, Donanım sanallaştırma rastladı. Ve burada gördüğünüz gibi resim yaptılar temelde neyi havuzu soyutlanmış olan ücretsiz donanım kaynakları ve tür olanlar görev üst katmanlara, Bu durumda, misafir bir işletim sistemi. Ve bütün fikir sanal makineleri rastladı ve bu gerçekten Cloud yardım Bugün bildiğimiz gibi işlem. Yani ne demek sen Birden fazla VM'leri, çalıştırabilirsiniz hangi Birden yığınları demek, birden fazla Bir aynı fiziksel makine üzerinde uygulama. Bu kesinlikle ile yardımcı Uygulama dağıtım hızı. Kesinlikle giderleri ile. Sen gidip harcamak zorunda değilsiniz Enerji, zaman ve kaynaklar rafa Daha fazla sunucular daha fazla hesaplamak almak için. Ve hızı aslında getiren Bu kaynaklar kadar daha hızlıdır. Büyük. Bu yüzden doğru dünya açlık çözüldü? Hayır gerçek değil. Yani, sanallaştırma kadar o olduğu gibi Aslında sorunu çözmek, yardımcı aslında tanıtıldı sorunlar bir sürü. Kesinlikle hipervizör , karmaşıklık bir sürü tanıttı Bu altta yatan taşıma Kaynakların havuzu. Bu anlamda ağırdır önce Eğer tek bir işletim sistemi vardı diskte üç, dört konser gibi. Şimdi, 10 makineleri varsa Tek bir donanım üzerinde Bunu çarpmak zorunda makinelerin sayısına göre. Kesinlikle daha var Bir anlamda pahalı hala için lisans almak zorunda sanallaştırma teknolojisi Açık kaynak değilse. Ama, hep almak vermeyelim sanallaştırma kredi. Ne oldu, çünkü bir var yığınlar ve yazılım sürü sürü etkinleştirilmiş olan teknolojiler Eğer olsun başardık tarafından ne kadar hızlı Bulut patlama ile kaynaklara. Yani, bugün tek bir uygulama ya da hizmet olabilir Aşağıdaki runtimes herhangi kullanarak veya veritabanları. PHP, Python, MySQL, Redis, etajer. Yani karmaşık bir sürü bu konuda var yığınlarının sayısı aslında getirmek için Tek bir servis. Ve bununla birlikte, size bir sürü vardı Altta yatan kaynakları veya altyapı tipi dağıtma test etmek ve temelde için bu uygulamalar üretime almak Bu size geliştiriyoruz. Senin ekipleri var özellikle bu uygulamalar üzerinde çalışıyor yetiştirilen, bir sürü orada var karmaşıklığı ve zorluklar Bu sağlamak için getirildi cycle-- temelde uygulama geliştirme döngüsü, bir Aslında başarılı. Yani, gerçeği uygulama Yerel VM yerel çalışıyor senin meslektaşım garanti etmez aynı sonuçları beklemek için gidiyor. Ve operasyon ekibi olduğunda ne var çekilmesiyle ilgili ve üretimde dağıtma Ölçek, ayrıca garantisi yok aslında ne olacak söyledi. Yani bu gerçekten bize bırakıyor , soru işaretleri bir sürü big-- bir çok zorluklar aslında Benzer geri günlerde karşı karşıya. Ve bu bize hatırlattı denizcilik endüstrisi. Gemi sanayi Yani Malların bir sürü vardı, gibi sol tarafta görebilirsiniz. Ve sağ tarafta, , bir sürü temelde var yolları bu mal gemi. Ve ne bir çift olarak olur millet, bir araya geldi ve şöyle dedi Biz nasıl standardize etmek gerek biz aslında bu mal gemi. Ve boom, sahip intermodal nakliye konteyneri. Bu yüzden çoğu üzerinde anlaştılar konteyner için ortak boyutları. Nasıl bunları işlemek için. Tam ne yöntem ihtiyacınız onlara yük ve bunları kaldırmak için. Ve bu nedenle, bu gerçekten denizcilik sektörü oldu. Şimdi% 90'dan fazla odak taşınan küresel, bu kapları kullanıyor. Ve bu kesinlikle azalır giderler yanı sıra nakliye nedeniyle hasarlar. Bu yüzden aynı model almak ve biz İki uygulama geliştirme yazılımı uygulamak anlamda mimarlık, O konteynerleflme bir düzey yukarı sanallaştırma aldı. Bunun yerine o yapıyor donanım düzeyinde, bir işletim daha oldu sistem düzeyinde sanallaştırma. Ve biz her sağlayarak bunu Kendi hafif uygulama, İzole, runnable ve Taşınabilir, daha da önemlisi, bir yol aslında paketlemek için çalıştırmak için gereken her şeyi. Anywhere çalıştırmak olabilir. Yani, ne olursa olsun onu çalıştırıyorsanız yerel dev çevre, üretim çevre, senin evreleme veya test. Ne olursa olsun altta yatan Ne alt yapı, orada Eğer işlevsel çalışma uygulaması vardı. Yani temelde tam ne var konteynırlar bu sorunun yapmak. Onlar bunu ele Böyle bir şekilde ambalaj o konuşlanmış oluyor garanti edebilirsiniz başarıyla yaşıyor olursa olsun. Eğer gidiyoruz Yani gibi, Bob hala Tamam. Eğer dediğimi ile karıştırılmamalıdır ediyorsanız, Ben bu konuda tertipleyerek olmak için gidiyorum. Peki Docker kendisi yapar Bu resimde sığacak? Yani Docker açık bir platform olduğunu kolayca kolayca vurgulamak, , gemi inşa çalıştırmak için, hafif taşınabilir öz her yerde yeterli uygulama kapları. Bu bir şey almak Yani konuşma, aşağıdakileri ayırın lütfen. Eğer app çalışan varsa Yerel ve bunu geliştirdi Docker platformunu kullanarak, bekliyoruz başarıyla konuşlandırılacak. Ne olursa olsun ne Altta yatan altyapı. Eğer bir Docker var ise ve daha sonra, kabı çalışıyor sürece Docker olarak orada Diğer için-- motor senin operasyon altyapısı ise Bunun olsun, herhangi Bulut kullanıyor olan AWS veya Google'ın veya Microsoft, ya da kamu Bulutlar herhangi veya kendi Bulut, ya da açık yığın Bulut, veya yerel ortam. Eğer bir motor varsa çalışan, araçlarının Olacak başarıyla orada konuşlanmış. Bu çalışıyor olması gidiyor aynı davranışı Bunu tasarlandı gibi olması. Biz at-- bakarsanız Yani gidiş değilim aslında ne geçmesi Docker ana bileşenleri bulunmaktadır. Yani Motor Docker çekirdeğini oluşturur. Beyin ait. Bu bina, nakliye orchestrates ve dağıtma ve yönetme konteynerler kendileri. Ben Motor ne içine kazmak Bir saniye daha detaylı olarak. Temelde, Doktor inşa edildi çünkü istemci-sunucu mimarileri etrafında, yani etkileşim için Motor bir müşteri çeşit gerekir. Görüntüler şablonlar vardır hangi inşa edilir konteynerler. Yani görüntüler temelde Sadece statik dosyaları. Şablonlar ve konteynerler aslında ne olduğunu zamanında çalıştıran Başvurunuzu hizmet veriyor ya da verilerle bir şey yapıyor. Kayıt bir sorun olarak ele alınmaktadır nasıl gerçekte görüntüleri dağıtabilirsiniz. Yani bir görüntü paylaşmak gerekirse Eğer meslektaşım için çalıştı veya op ekibine, sen Registry kullanarak kullanabilirsiniz. Bir açık kaynak indirebilirsiniz Bunun sürümü Docker üzerinde çalıştığı ve kaynaklı açın. Yoksa Docker yardımını kullanabilirsiniz, Hangi Bulut versiyonu itme ve orada görüntüleri çekin. Bu çok büyük bir şey. Büyük var çünkü Docker etrafında ekosistem ve var Gerçekten ağır hub kullanarak. Yani burada özetlemek, bu nasıl minimalist Docker iş akışı istemcisi. Siz de, ev sahibi ile etkileşim Bu durumda o Docker cinleri var. Bu Engine ile aynı şey. Yapmanız komutlar gibi Docker, çekme, koşmak oluşturmak. Ve Motor kendisi gider ve bu şeyler yapar. Yani ya bu etkileşim Kayıt bu görüntüleri çekmek için ve görüntü katmanları. Dağıtmak istiyorsanız, koşmak olsun konteynerler, onları aşağı atmak, onları öldürmek etajer. Yani bu iş akışını özetler bu bileşenlerin tüm. Her almak Yani eğer tek başına bileşeni. Yani Motor, sadece bir servistir var. Bu tür desteklemek için oynayacağız Linux üzerinde o yapar, çünkü Bazı Linux çekirdek özellikleri gerektirir. Ancak Windows çalışıyor aynı şeyi yapıyor. Bu desteklenmesi gerekiyordu Windows Server 2016 tarafından. Yani, yine, sorumlulukları motor olduğunu, ya da, görüntü oluşturmak için vardır. Docker görüntüleri çekin Hub veya kendi Defteri. O görüntüleri ile bittiyse ya, bir yeni görüntüler oluşturmak Eğer kayıt defterine o geri itebilir diğer takımlara onları dağıtmak. Ve çalışırken yerel olarak içeren ve konteynerler yaşam döngüsünü yönetmek Yerel. Bu HTTP REST API etrafında inşa edilmiştir. Yani teknik olarak yapabilirsiniz Kendi müşteri bilgileri sürece bir çok olan HTTP, kullanır gibi Standart mekanizma Engine konuşmak ve diğer hizmetler bir sürü. Ve sen görebilirsiniz Burada ne olursa olsun Ne altyapı Tüm can-- sürece, bir Eğer bir işletim ihtiyacınız Sistem, Linux özellikle. Ve Docker Motor yükleyebilirsiniz Bunun üzerine ve çalışan var ve o temelde orchestrates Bütün bu uygulama için tek bir, iki, ve üç gerçek kaplar vardır. Yani Motor bulunuyor. Daha önce de belirtildiği gibi çünkü Eğer Engine ile etkileşim gerekir İstemci var. Ama aslında yüklediğinizde Onunla Docker, bu gemi. Yani, yüklü alır bu yüzden tek bir ikili var. Ve yerel aramalar yapabilirsiniz senin Docker Engine. Uzak Engines veya uzak çağrılar. Sanki, HTTP kullanır Daha önce bahsettiğim. Denilen bir GUI istemci var Docker adlı Kitematic. Ve kesinlikle vardır Diğer millet bir sürü kim bir sürü inşa ediyoruz Temelde uygulamaya GUI'ler Bazı HTTP Engine konuşmaya çağırır. Sadece bazı örnek komutlar. Eğer Docker sürümü yaparsanız, o-cekti Size istemci sürümünü göstermek yanı sıra Sunucu sürümü. Eğer Docker bilgi yaparsanız o olacak Size tüm bilgileri söylemek Kaç kaplar çalışan hakkında veya oluşturulan, kaç tane resim, ve benzeri ve benzerleri. Burada yanındaki var Geçen kutu, Doktor çalıştırmak var. Yani aslında ben nasıl kap oluşturmak. Ve ben Hello World yankı veriyorum ve ikinci bir ve etajer için uyku. Ve görebilirsiniz sonuç. Yani devam bulunuyor. Ve Linux ps benzer görebilirsiniz Bu durumda tüm süreçler ve, tüm çalışan kaplar. Bu kişinin atıfta geri Konteyner Ben sadece oluşturdu. Yani, bu, çünkü gerçekten önemli gibi, biraz kafa karıştırıcı olabilir. Yani görüntüler salt okunur olarak dosyaların toplanması, değil mi? Onlar bizim konteyner dayanmaktadır nelerdir. Ama onlar sadece salt okunur ediyoruz. Yani bir taban görüntüsü ile başlamak. O yüzden, OS gibi taklit etmek eğilimindedir Ubuntu, CentOS, etajer taban görüntüsü. Sonra üstüne oluşturmaya başlayabilirsiniz Bu, bazı katmanları, o kadar yapacak Bitiş görüntü, son burada sonuçlanır. Ve bu tabakaların her biri Bir üst imaja sahip olmalıdır o zaman bunu başvurduğu aslında yaratmak istiyor. Onlar anlamda, iletmenin onlar çünkü salt okunur olduğu aslında olamaz Onlara değişiklik yapmak. Bir oluşturmak için kullanabilirsiniz bir görüntü, konteyner hangi sonraki tüm arayacak Bunun altında gerekli görüntüler. Siz değişiklik yapabilirsiniz başka bir katmana, ben olacak bir yeniden yazma tabakası var Bir saniye konuşuruz. Ancak bu tabakaların her biri değiştirilir asla. Temelde görüntüleri şey kullanmak Birlik Sistemi, UFS dosya denir. Ve farklı depolama vardır Bu teknolojiyi kullanan backend'e. Ve bunun anlamı o olduğunu farklı dosya sistemleri bir araya getiren Onları gibi görünmesi için. Yani gelen, aslında can Bir uygulama perspektifi, Bunu gösterir bir görünüm bir top var tüm farklı dosya sistemi gerekli bu uygulama çalıştırmak için. Ama bu konuda, aslında konum bunlar ayrı yerlerde aslında konum tarafından kullanılmaktadır hem de diğer kaplar. Burada görebilirsiniz böylece o Biz cini görüntü ile başlatırsanız daha sonra bir baz imajı ve benzeri gibi biz gidip [ekleyin? Emacs?] ve daha sonra başka bir katman var. Sonra Apache'yi ekleyin. Bu başka bir katman var. Ve sonra biz harcamak Bu konteyner. Bu görüntülerin her biri, Bu tabakaların her biri, farklıdır olabilir ve diğer kapları tarafından yeniden. Eğer kendilerini kaplarda bakarsanız, Onlar, her nasılsa VM-benzeri gibisin ama aynı zamanda tedavi. Yani, onlar yok, teknik Altlarında tam bir işletim sistemi. Bunlar tek çekirdek kullanmak ana işletim sistemi. Ve onlar bunun üzerine inşa. Onlar bakmak nasıl taklit. Onlar kendi kök dosyasını taklit işletim sisteminin sistemi. Ama aslında çoğaltılıyor değildir. Yani, yerine değişmez katmanları sahip, kapsayıcıdır son kat, kendisi, bir okuma-yazma tabakası var. Bu da süreçleri çalışır Başvurunuzun. Ve bu alt tabakalara bağlıdır. Her konteyner bir görüntü oluşturdu. Ve bu görüntü, tek bir olabilir tabaka ya da çok tabakalı bir görüntü. Ve ben burada not etmek istiyorum , Docker yoğun kullandığı veya Kopyala-On-Yaz mekanizmasına dayanmaktadır. Yani değilseniz, aslında, o kaba değişiklik yapmadan, fazladan yer almak için gitmiyor. Yani temelde nasıl var Kopyalama-On-yazma özetlemek. Kesinlikle hızlandırmak için gidiyor konteyner için önyükleme zamanı. Eğer yapmıyoruz Çünkü eğer kaba değişiklikler, Zaten orada ne kullanan var. Yani, aslında nasıl çalıştığını. Bir kısmı, o şu anda gibi en az iki kilit çekirdek kullanır Özellikler. Ve bu temelde ne olduğunu izolasyon bu seviyede oluşturulan kapların kendileri. Bu özellikler ad ve cgroups. Yani ad için bir yol vardır izole kaynakları oluşturmak kabın kendi içinde olduğu, Yalnızca belirli kaynaklara görebilirsiniz. Bu gibi ağ arabirim veya belirli kullanıcılara veya etajer. Ve bu sadece görünür ve sadece kap içinde erişilebilir. Diğer tarafta limitlerine ilişkin CGroup nasıl bu kaynakları kullanın. CPU, bellek ve disk. Eğer I gitmek ne zaman Bu aslında demek by-- geliştirilen özellikler Onlar Linux çekirdeğinin bir parçası. Yani yeniden keşfetmiş değil veya Docker tarafından yeniden. Docker kullanır. Ne Doktor gerçekten yaptım burada aslında Orchestrated oluşturma Her bir kap için ad alanları ve cgroups oluşturma bu olacak şekilde kapları oluşturmak için gülünç kolay Bu özellikleri kullanarak. Tabii ki açıklandığı gibi daha önce, Birlik Sistemler Dosya ve gerçekten Kopyala-On-yaz hız ve diski yardım kapların kullanımı. Ve bir kez olsun senin Docker çevresindeki eller, Eğer ne kadar hızlı görmek için gidiyoruz aslında kapları ve gözyaşı dönüşünü Onları aşağı. Diye sorabilirsiniz Yani, nasıl can Aslında görüntüleri inşa? Biz yaratma süreci görüntüleri inşa kaplar ve değişiklikler yapılması, değiştiren Onları ve onları işlemekle bir resim haline içine. Yani bir tavuk ve Burada yumurta referansı Tüm konteynerler geliyor çünkü görüntüler ve resimler geliyor dan işlenen kaplardan, Çoğu bölüm için. Üç seçenek vardır görüntüler oluşturmak için. Ben açıklamak için gidiyorum ilk ve son. Ya elle yapabilirsiniz gidin ve konteyner çalıştırmak ve bu değişiklikleri yapmak, gibi herhangi bir VM yapacağını veya herhangi bir işletim sistemi, örneğin Yeni ikilileri yükleme gibi, Dosya sistemleri ve etajer sözlerine ekledi. Ve sonra da çıkmak Eğer orada görebilirsiniz. Benim konteyner çıkarken ediyorum. Ve sonra Docker tamamlama yapıyorum. Ve bunu işlemekle ediyorum. Burada bu numarayı görebilirsiniz Sadece bir UUID'si ya da birinci 12'dir UUID bit. UUID veya bayt. Ve sonra benim görüntü onu arıyorum. Yani şimdi Docker önemser Her şeyi kayıt yaptım ve yeni yaratma buna göre görüntü. Ben, arşivini hakkında konuşmak için gitmiyorum ama tek bir elde edebilirsiniz bir yolu, var Bir single oluşturmak veya tek yapmak tar kullanarak katman görüntü. Ne bu konuda konuşmak için gidiyorum ve çoğunlukla günümüzde kullanılan ne, Dockerfile olduğunu. Hangi teknik ilk Docker kendisi tarafından otomatik adım. Yani Dockerfiles sen şeyler GitHub repo bir sürü göreceğiz bugün. Bu temelde bir açıklayan bir metin dosyası tam olarak nasıl bir görüntü oluşturmak için. Ve her satır için, aslında yaratır konteyner, bu hat yürütür, Bir içine konteyner taahhüt Yeni resim ve temelde, sonraki tüm işlemler için kullanabilirsiniz son görüntüye gelinceye kadar. Hangi temelde Burada sonu hedefini sonunda. Ve sonra sonra exec-- yazdığınız Dockerfile, hangi tamamen metinde ise, bir Docker do inşa etmek ve görüntünün adı. Ve bu olduğunu işaret burada Dockerfile yer almaktadır. Ve Resmimi görmeyi bekleyebilirsiniz bir görüntü olduğu gibi yerel var. Yani bu sadece görsel bir var ne gider örneği. Bir baz görüntü ile başlar. Bir kabın içine çalıştırmak temel görüntü kendisini değiştirmez. Ama onun yerine oluşturur Bunun üstüne bir tabaka yeniden nereye değişiklik yapmak, hangi taahhüt ve işlemi tekrarlayın kadar Eğer nihai görüntü olsun. Ve böyle yaparak, her yapı süreç aynı katmanları kullanabilirsiniz ve same-- temelde Docker bu katmanları önbelleğe alır. Ben aynı yapıyorum Böylece süreç, ancak bunun yerine PHP yükleme, Python yüklerken ediyorum. Bu Apache ve Ubuntu kullanmak için gidiyor. Bu şekilde Böylece disk kullanan ediyoruz. Bu önbellek kullanan var Orada ve mevcut görüntüler. Son parça Registry olan Eğer görüntüleri dağıtmak nasıl olduğunu. Ve, ben daha önce belirtildiği gibi, Bunun bir bulut versiyonu var, Hangi Docker Hub olduğunu. Sen gidip keşfetmek temelde, bir sürü Bir kamu SAS ürünü olduğunu Hala, özel görüntüler olabilir ancak kamu görüntülerin bir çok şey var. Bu can, aslında sınırsız değil Orada sınırsız kamu görüntüleri itin. Ve bu nasıl yapabilirsiniz olduğunu ekibinizle işbirliği. Eğer repo de sadece onları işaret edebilir ve onlar ya da görüntü indirebilirsiniz ve onlar indirebilirsiniz. Konuşma Yani yeterli. Kim gerçek hızlı bazı demoları görmek istiyor? Pekala. Yani burada var. Siz benim ekranını görene Ca? Pekala. Yani Docker burada çalışan var, bu yüzden Bu bu-- kontrol edebilirsiniz versiyonu Docker ve koşuyor söyledi. Docker bilgisi yapabilir. Kaç hakkında tüm bilgileri kontrol edin görüntüleri onlar kadar ve bu yüzden var, ve. Docker PS, hiçbir şey çalışan var. Bu birleştirilmiş. Yani yapmak istediğim ilk şey gösterisi size kolayca bir konteyner çalıştırabilirsiniz nasıl. Yani güzellik hakkında Doktor koşmak, ona eğer gerçekten Yerel bir görüntü bulmaz, Varsayılan olarak bu doktor Hub konuşur ve orada bulmaya çalışır Sizin için ve yüklemeler bunu. Bu yüzden bir Docker içerir doğal komutu çekin. Yani bir Docker koşmak, merhaba-dünya yaparsanız. Yani, ilk gidiyor Bunu bulmaya çalışın. Aksi takdirde, burada gördüğünüz gibi, lokal olarak bulamadım. Şu anda sadece iki katmanları çekti o görüntüyü yaptı ve ben o koştu. Merhaba dünya sadece temelde Ne yaptığınızı çıkışları. Yani bu kolay olduğunu, en kolay örnekler. Yani aslında ben sadece koştu ve Kap çabucak sona erdirildi. Ben eğer, run-- ve bu arada isterseniz Ben, bilirsin sadece bu yüzden, zaman istiyor Bu o kadar sürer ise aslında yukarı dönmeye ve onu içerir. Biz milisaniye içinde ölçüm ediyoruz. Gördüğünüz ne kadar bu can aslında sadece test yardım, ama aynı zamanda da dağıtım. Yani hızlı bir not bu konuda var. Ben sonraki şey yapacaksın aslında Ben zaten hazırladım bir görüntü çalıştırın. Yani çalıştırmak liman işçisi. -D anlatmak için sadece bir bayrak arka planda çalışmasına. Ve -p belirli bağlantı noktalarını atar. Çünkü varsayılan olarak, konteyner, izole edilmekte bu yüzden tam olarak belirtmek zorunda nasıl erişebilirsiniz. Ve bu durumda, I Docker söylüyorum ana bilgisayarda rasgele bir bağlantı noktası eşleştirmek için içinde belirli bir bağlantı noktasına Kap, kendi başına. Ve bu nerede image-- temelde Umarım bu doğru olanıdır. Bu yüzden paralel indirmeleri her yapar Bu katmanların burada gördüğünüz gibi. Bu tabakalar yapma olan Ben inşa bitiş görüntüsü. Bir saniye alacak. Ve işte. Ben bir liman işçisi ps yaparsak Yani şimdi, ben gereken çalışan bir şey görüyorum. Ben, görüntü kimliğini görmelisiniz Bu o, kapalı dayanıyordu ve komut idam edildi. Ve o erişmek nasıl temelde o limana gidin. Yani bu Şeye gitmek için gidiyorum Ben AWS üzerinde koşuyorum edilir. Ben 32769 gitmek için gidiyorum. Üzgünüz. Ve işte başlıyoruz. Yani bu sadece aslında gösteren bir web hizmeti hangi servis ediliyor konteyner. Yani bunu görebilirsiniz Kap A9F sistemi değil. Ve burada bu konteyner adı. Yani siz ne kadar hızlı bir şekilde görebilirsiniz onu Aslında sadece çekin ama aynı zamanda bu kabı dağıtın. Şimdi bir sonraki adım için Dockerfiles içine bakmak ve nasıl biz aslında can yeni görüntüler oluşturmak. Ben sadece klon olsun gideceğim, bir Dockerfile önceki dayalı örneklem diyagramı, Apache ve PHP tek. Umarım benim repo hatırlıyorum. Yani şu anda benim depo var. Ve görmek için gidiyoruz Bu çok aslında. Ben ağaç yüklemek vermedi. Yani temelde nasıl görmeye gidiyoruz kaynak kodunu dokümantasyon etrafında o, ve daha sonra bir Dockerfile Nasıl aslında paketlemek için. Yani bu sadece bir örnek PHP bulunuyor merhaba CS50 yankıları. Onu çalıştırmak istiyorsanız, Ben docker yapı yapacağız. Ben ilk inşa etmek zorunda. Bunu demo_cs50 isim gidiyorum. Ve sen de bunu bir etiket gerekir. Yani o nokta v1 diyelim. Ben daha önce açıklandığı gibi Yani, Bugün ne yapıyorum Ben kullanımının gitmek için Docker söylüyorum olduğunu ki- aslında, üzgünüm, benim hatam. Biz bir göz sürmedi Dockerfile kendisi. Yani burada tek şey yanı sıra readme dosyasında index.php ve Dockerfile. Yani bir göz at almak durumunda Dockerfile, yani var: çok benzer neler Ben daha önce açıklanan. Bu sadece bir avuç Docker yürütür adımlar konteynerleri oluşturma ve yıkılması ile ve [? sayma?] bunları bir görüntü içine. Ve temelde yapabilirsiniz see-- [duyulamaz] o burada-- ancak bu yerel repo olduğunu. Bu gidip kapmak index.php gidiyor. Yani sadece kaynak kodu olduğunu aslında uygulamanın bir parçasıdır. Bütün bu temelde İşletim sistemi sıhhi tesisat, Doğru paketleri alma ve Apache ve PHP ve etajer. Ama bu aslında index.php alıyor ve kabın içine işlediği, görüntü içine. Yani go ahead ve çalıştırın aşağıdakileri yaparak komut, Bu, aslında going-- var Bu biraz sürebilir. Umarım çok uzun sürmüyor. Böylece adımları görebilirsiniz. Ve ben gitmek için teşvik eve bugün deneyin. Ve Mano anlatacağız tam olarak nasıl bunu. Ama tam olarak görmek gerçekten harika Ne perde arkasında oluyor. Ama inşa etmek gülünç kolay görüntüler Docker kullanarak bunları dağıtmak ve. Bu biraz alıyor Ben beklenenden daha uzun. En sen-- serin ne olur görelim. Eğer bu adımları, her gördüğünüz gibi Dockerfile satırları temsil etmektedir. Ve o burada gösteriyor Başarıyla bu resmi yaptı. Ben liman işçisi görüntüleri yapmak eğer öyleyse, ben gidiyorum Ben yerel olan tüm görüntüleri görmek. Ve bunlardan biri denir benim Kullanıcı adınızı ve görüntünün adı, ve etiket representing-- esas olarak bir sürüm etiketi. Yani şimdi ben çalıştırmak istiyorsanız o, ben liman işçisi çalışma yapmak. Ve ben sadece bir -d -P yapmak istiyorum. V1 yapın. Yani ben iki tane var şimdi görebiliyorum kaplar, birini çalıştıran ben sadece oluşturulan ve merhaba Ben son var docker biri. Ve burada gördüğünüz öyle olabilir farklı bir port tahsis. Ben aynı IP gitmek ama atarsanız yüzden Farklı bir port-- umarım ben yapmadım. Yani şimdi bu uygulama Ben sadece konuşlanmış söyledi. Ben değişiklikler yapmak istiyorsanız, ben hızla kaynak kodunu düzenleyin ve aşağıdakileri yapın. En merhaba Harvard yapalım. Yani şimdi neler gerçekleşmesi için ben olduğunu Bir ile etiketlemek için gidiyor version-- oh farklı, değil bu etiketleyin guy-- Farklı bir sürümü ile. Ve gidiyoruz see-- siz bekliyoruz o zaman aynı miktarda almak ikinci kez inşa ya da değil mi? Bütün sağ ve kimse nedenini bilmiyor? Konuş. HEDEF KİTLE: [duyulamaz] NICOLA KABAR: Bu temelde biz ancak daha sonra adımlardan birini değiştirin. Ve bu nedenle kullanmak için gidiyor Önbellek, bu katmanların her kullanın ve. Ve bu gerçekten bazı bulunuyor Docker katil özellikleri aslında kullanır nasıl ve kalıncaya devralarak Aynı için disk bilgi kesin parçalar. Biz aynı şey yapmak eğer öyleyse, o sadece bir kaç saniye sürdü. Biz şimdi redeploy-- istiyorsanız Üç konteyner sahip olmalıdır. Ama bu ediliyor Şeyin yedi birinde görev yaptı. Yani şimdi üçüncü konteyner var. Herkes anlama Ne ben burada yaptım? Yani şimdi bu paylaşmak istiyorsanız Arkadaşlarınızla gerçek hızlı konteyner, Sadece liman işçisi itme yapabilirsiniz Umarım, kabın adı. Yani şimdi bunu itmek için gidiyor aşağıdaki amaçlara Buraya imzalı değilim. Bunun için üzgünüm. Ama şimdi bu sorun giderme gitmiyorum. Ama temelde bu bir komut Sadece doğru itin yukarı gidiyor. Ve edebilmek için gidiyoruz Eğer Docker Hub giderseniz onu görmek Ve sen, sen giriş Onu görmek mümkün olacak. Ve sonra sadece can gidiyor kim işaret gidin ve çekin bu görüntüyü kullanmak için. Ve onlar bunu kullanabilirsiniz. Bunun üzerine, umarım Ben biraz gösterdi ne kadar kolay Docker ile çalışmaktır. Ve ben sadece gidiyorum Geri Mano ver. Ve o buradan götürün gidiyor. MANO MARKS: Pekala teşekkürler, teşekkürler Nico. Ne olmuş yani? Yani şeylerden biri ben yapmak istediği bir araya getirildiği Neden bu bir important-- olduğunu Neden Docker ve neden kaplar bir şekildedir Önemli yeni bir gelişme, Aslında yazılım yapmanın yeni bir yol. Ben yapmadan önce, ben gidiyorum Sadece birkaç istatistik tanıtmak. Ben tüm bunları okumak için gitmiyorum. Ama bu sana nasıl hakkında çok şey gösterir popüler toplulukta olduğunu. Çekirdek Docker teknolojileri açık kaynak vardır. Böylece Docker Motor, Oluştur var, Sürü, diğer şeyler bir demet tüm açık kaynak. Ve biz ne yaptım ben , 1300 katkıda söylüyorlar. Eğer bakarsanız size, şimdi görüyoruz iş ilanları sayısı, son kez biz yaklaşık 43.000 iş oldu, baktı açıklıklar özellikle söz Docker aşinalık. Görüntülerin Yüzlerce milyon var Docker Hub indirildi. Ve, evet, çok daha geniş istatistikler. Meraklı olanlar için, onu Başlangıçta Python yazılmış ve ardından Git içine yeniden yazıldı. Ve sadece oldu sadece bu source-- açık yaklaşık 2 ve 1/2 yıl serbest bırakıldı, olanı 2 ve 1/2 yıl demektir, Biz muazzam miktarda gördüm büyüme ve önemi Toplumda bu. Ve bu yüzden konuşmak istiyorum neden biraz. Dolayısıyla, sadece bazı yinelemek Nico kilit noktaları, Docker hızlı. Bu taşınabilir. Bu tekrarlanabilir. Ve standart bir ortam kurar. Ve bu benim berbat olduğunu ne-- dışarı damga yekpare slide-- Ne İnsanların bu konuda yardımcı oluyor, hangi yazılım endüstrisinin bir sürü içinde yapmaya başladı 2000'lerin başında, hareketli Bu monolitik gelen tek tek kullanımı Her bağımlılık olması gerekiyordu nerede Tüm uygulama vardı önce test , dağıtılabilir hangi Bir web sitesi anlamına gelebilir sadece bir kez dağıtılan var her üç ayda bir veya daha fazla, çok daha hizmete odaklı mimari veya bileşenlere farklı tip Uygulama mimarisi. Ve bu yüzden bu izin mimarileri tür Bu yararlanmak Docker bu üç çalıştırmak için gelişme ana alanlar, burada kalkınma gerçek kod yazıyor, kodunuzu test ve dağıtma. Peki neden bu kadar önemli? Eğer izin bir-- iseniz bana bir örnek vermek. Eğer bir web sitesi varsa Cihaz geliştirici, sen temel alan bir web sitesi geliştirmek David buraya üretilen veritabanı. Üzgünüm David, seni dışarı çağırıyorum. Dağıtmak istiyorsa Her şey, şimdi etsen Geleneksel altında beklemek zorunda Monolitik yazılım geliştirme Çevre, beklemek zorunda kalacak O veritabanı ile yapıldı kadar aslında yapabilirdiniz önce web sitenize herhangi bir değişiklik. Sen dağıtmanız olurdu Bunu yapmak için tüm uygulama. Peki Docker yardım yapmak her biri farklı bileşenler üzerinde kişi iş Onlar gitmek gibi sadece yapım, bunları güncelleştirmek arayüzler aynı kalır emin olun. Yani ne yaptığını insanları kaymış bulunuyor edilir bu büyük monolitik yapıyor mimarili yazılım o Sürekli her ay konuşlandırılmış entegrasyon ve sürekli gelişim çevre. Şimdi bu, Docker özgü değil ancak Docker, o kadar çok kolaylaştırır hangi temelde demektir Sürekli dağıtmak. Biz işletmelere konuşmak Kamu bakan uygulamaları dağıtmak kez, günde için binlerce onlar sadece yapımında değerini görmek küçük değişiklikler ve uzun bu testler aracılığıyla çalışır gibi, üretime çıkmak icar. Nico hep bana söylüyordu Daha önce pek çok ortamlarda, Bir standart yaşam döngüsü Konteyner saniye cinsinden ölçülür, bir sanal makineye ise ayda ölçülebilir. Ben hafif almak istedim Ben çünkü burada çevirmek Bir eğitim kurumunda. Ben nasıl bir örnek vermek istedim Bu bir eğitim araştırma işleri durum. Yani bir örgüt var denilen bioboxes. Bioboxes DNA yapar araştırmacılar için analizi. Şimdi ne buldum iken o Bir researcher-- ve değildir herhangi bir arıza researcher-- ama ne zaman konuşlandırılmış bir araştırmacı bir algoritma analiz etmek, Belirli bir şekilde, bir DNA örneği, Onlar yazılımı yazmak istiyorsunuz, belki, yani yayınlama Başka bir yerde GitHub veya ve daha sonra yapıldı. Peki sorun oldu öyle mutlaka tekrarlanabilir değildi. Sırayla Çünkü yazılım anlamak, onlar için ayarlanmış olacak Tam bir geliştirme ortamı bu araştırmacının, genellikle, kullanılan onların laptop ya da bir sunucu veya veri onlar kullanmakta olduğunuz merkezi. Ve sonuç olarak, çok zor oldu Araştırma sonuçlarını ne zaman çoğaltmak DNA örnekleri analiz bakmak incidence-- gibi şeyler kalp krizi sıklığını karşılaştırmak mevcut olan bazı genlerin dayalı, Örneğin, ya da kanser riski, ya da için şeylerin başka türlü herhangi. Peki yaptıklarını yerine oldu Onlar kapları oluşturmaya başladı. Ve bioboxes.org gidebilirsiniz, büyük bir organizasyon. Ve onlar ne ürettikleri olduğunu konteynerler araştırmalara dayalı. Ve birileri gönderir sonra zaman Onların numunede, onu çalıştırabilirsiniz. Ve tüm ortam vardır Bu algoritma çalıştırmak için gerekli ve sonuçlar üretmek. Ve onlar olduğunu buluyoruz çok daha muhtemeldir ve daha daha hızlı edebilmek için insanlara sonuçları döndürür. Ve aslında, insanlar ne yapıyor DNA üzerindeki kendi analizlerini çalışan, bioboxes için gönderen ve Daha sonra biobox sadece verileri alır, Çeşitli karşı çalıştırır Farklı kaplar arasında Farklı sonuçlarını görmek için Farklı araştırmalara dayalı. Bu yüzden bir çok güçlü yolu hangi araştırmacıların içinde izin veren tek bir örneği yapabilir Başkalarının denemek ve çoğaltmak sonuçlar. Peki nasıl başlayabilirim? Biz de Linux üzerinde desteklenmektedir. Yüklemek istediğiniz Yani eğer Linux üzerinde bir şey Eğer standardını kullanır Paket yöneticisi yükleyin. Bir Debian kullanıyorsanız, bu apt olsun bu. CentOS yum. Fedora Red Hat olduğunu rpm-- ben hatırlamıyorum. Her neyse, hepsi var. Biz büyük bir çeşitlilik destekleyen Linux dağıtımlarının. Sen bu kontrol edebilirsiniz. Biz de seçenekler var senin böylece Mac veya Windows üzerinde çalıştırabilir. Şimdi Nico önce bahsedilen sadece Linux üzerinde desteklenmiştir. Bunun nedeni doğru Linux çekirdeği ihtiyacı var. Ancak, bir sanal makinede çalıştırabilirsiniz. Peki Docker Araç , sen indirebilirsiniz hangi yapar size bu sanal makine verir. Yani sadece bir hızlı 48 İkinci, bence, indir. Sadece Docker arama Araç, Mac indirmek ve bu bölüm biridir Tabii kim çünkü hızlandırdı Bir indirme sinyali izlemek istiyor? Standart Mac kurulumu, ve sonra sen Jerome onun şifre koymak göreceğiz. Bu çok heyecan verici. Ve o zaman yükler araçlar sürü. Ve özellikle de o olacak Bir komut satırı yükleyin. Ve sonra görebiliyordu Jerome onun görüntüleri test. Ve sonra bu dayalı, Bunu YouTube'u görebilirsiniz Nico ilgilenen olduğunu düşünüyor Star Wars Jimmy Kimmel gösterisi, ve ben Ellen düşünüyorum. Geçen biri olduğunu düşünüyorum Bir Ellen gösteri bir klip. Yani Docker Araç olsa gelir Sadece Docker Machine fazla olan. Yani Docker Makinası olduğunu yardımcı şey Bir sanal kurmak Windows'ta makine veya Windows kutusu veya Mac Mac-- box-- ve sağlama yapmak yardımcı olur, Ama aynı zamanda birlikte geliyor Swarm ve Oluştur, Büyük yapmak yardımcı olmak için tasarlanmış olan Başvurunuzun ölçekli yerleştirmeler. Yönetmek istediğiniz Yani eğer düğüm kümeleri, konteyner kümeleri, oluşturun ve Swarm bu konuda gitmek için bir yoldur. Ve tabii ki birlikte geliyor Docker Motor ve Kitematic, hangi Bu masaüstü GUI. Ben de, Docker Kayıt bahsetmeliyiz Araç kutusu dahil olduğu, ancak kendi çalıştırmak için bir yol Docker gibi Docker Görüntüleri kayıtları Hub, ama aynı zamanda sadece kullanabilirsiniz Bunu yapmak için bir yol olarak Docker Hub. Ve, arsa büküm, sen görüyorsanız bir kap içinde çalışan. Ve biz konum nasıl Bizim slaytlar dağıtmak. Bütün bu sunum Aslında bir HTML slayt güverte. Ve o çalışıyor Eğer by-- alabilirsiniz konteyner, NICOLA KABAR: Evet, bu yüzden bu kadar Benim Max tam zamanlı çalışan. Ve ondan sunuyorum. Ve hemen sonra Docker do Eğer Araç Kutusu'nu yükleyin. Sadece bir docker koşmak yapabilirsiniz ve almak ve slaytlar kullanın. Mano Marks: Ve işte bu kadar. Bu yüzden geldiğiniz için hepinize teşekkür ederim. Ve biz soruları cevaplamak için mutluyuz. Kimseye önce belirtmeliyim yaprakları Oradaki T-shirt var. Maalesef herkes izliyor kim Livestream veya video bu, ama biz orada Docker tişört var. Ve biz Docker öğrencilerin biliyoruz, ve benim deneyim, çok ücretsiz giysi gibi profesörler. Yani geldiğiniz için hepinize teşekkür ederim. Ve Twitter'da bizi takip İstediğiniz veya yapmazsan. Umurumda değil. Ayrıca Twitter'da Docker izleyin. Bu da ilginç. Ve sonra bu kadar. Docker.com. Teşekkür ederim. [ALKIŞ]