1 00:00:00,000 --> 00:00:05,042 >> [MUSIC PLAYING] 2 00:00:05,042 --> 00:00:06,000 DAVID Malan: Baiklah. 3 00:00:06,000 --> 00:00:07,630 Terima kasih banyak untuk datang. 4 00:00:07,630 --> 00:00:11,850 Ini adalah seminar CS50 pada Docker, sebuah teknologi yang we diri kita sendiri dan CS50 5 00:00:11,850 --> 00:00:13,392 sudah mulai menggunakan untuk beberapa waktu sekarang. 6 00:00:13,392 --> 00:00:15,766 Jadi nama saya David Malan, saya mengajar Pengantar Harvard 7 00:00:15,766 --> 00:00:16,671 untuk Ilmu Komputer. 8 00:00:16,671 --> 00:00:18,670 Untuk beberapa tahun, kami telah memberikan siswa 9 00:00:18,670 --> 00:00:20,435 client-side download mesin virtual 10 00:00:20,435 --> 00:00:22,134 di mana mereka melakukan masalah set mereka. 11 00:00:22,134 --> 00:00:24,300 Bahwa kita sekarang telah dialihkan untuk lingkungan Cloud 12 00:00:24,300 --> 00:00:27,396 yang benar-benar menggunakan teknologi ini disebut Docker, sehingga semua CS50 13 00:00:27,396 --> 00:00:29,270 siswa sekarang memiliki mereka Docker wadah sendiri 14 00:00:29,270 --> 00:00:31,180 Anda akan segera mendengar semua tentang. 15 00:00:31,180 --> 00:00:33,740 >> Selain itu, pada server CS50 ini klaster sisi, selama bertahun-tahun 16 00:00:33,740 --> 00:00:35,290 kami menggunakan Cloud Server Amazon. 17 00:00:35,290 --> 00:00:37,164 Kami sedang berlari individu mesin virtual. 18 00:00:37,164 --> 00:00:40,330 Itu juga, kita sudah mulai transisi ke hal-hal ini disebut Docker wadah 19 00:00:40,330 --> 00:00:43,762 sehingga semua aplikasi kami sekarang sempurna terisolasi dari satu sama lain. 20 00:00:43,762 --> 00:00:46,720 Jadi untuk itu dan lebih, memungkinkan saya untuk memperkenalkan teman-teman kita, Nico dan Mano, 21 00:00:46,720 --> 00:00:48,574 dari Docker sendiri. 22 00:00:48,574 --> 00:00:49,740 Nicola KABAR: Terima kasih, David. 23 00:00:49,740 --> 00:00:51,410 Halo semua. 24 00:00:51,410 --> 00:00:54,230 Nama saya Nico dan ini Mano. 25 00:00:54,230 --> 00:00:58,260 Kami dari Docker. 26 00:00:58,260 --> 00:01:02,240 Kami akan berbicara about-- memberikan kalian intro untuk Docker, 27 00:01:02,240 --> 00:01:08,100 dan mudah-mudahan, menjelang akhir pembicaraan ini Anda dapat mewujudkan 28 00:01:08,100 --> 00:01:12,890 berapa banyak Anda dapat menggunakan dokter untuk oksalat pengembangan aplikasi Anda 29 00:01:12,890 --> 00:01:14,200 dan penyebaran. 30 00:01:14,200 --> 00:01:21,250 >> Jadi, kita akan memulai nyata cepat dengan beberapa informasi latar belakang. 31 00:01:21,250 --> 00:01:22,750 Jelaskan apa Docker adalah semua tentang. 32 00:01:22,750 --> 00:01:25,490 Bagaimana cara kerjanya? 33 00:01:25,490 --> 00:01:27,400 Bagaimana cara architected? 34 00:01:27,400 --> 00:01:29,360 Saya akan melakukan beberapa demo. 35 00:01:29,360 --> 00:01:35,070 Dan Mano akan menjadi menjelaskan bagaimana Anda dapat menggunakan Docker 36 00:01:35,070 --> 00:01:37,720 dan memberikan Anda langkah-langkah spesifik bagaimana Anda bisa memulai. 37 00:01:37,720 --> 00:01:41,490 >> Saya sangat menghargai jika kalian dapat menahan off untuk pertanyaan Anda menjelang akhir. 38 00:01:41,490 --> 00:01:46,800 Dengan begitu, saya bisa mengatasi mereka pertanyaan seluruh presentasi. 39 00:01:46,800 --> 00:01:52,150 Jadi kita akan meninggalkan beberapa waktu menjelang akhir untuk pertanyaan. 40 00:01:52,150 --> 00:01:55,170 >> Jadi hanya nyata cepat, yang memiliki benar-benar pernah bekerja pada Docker, 41 00:01:55,170 --> 00:01:56,850 seperti bermain dengan itu? 42 00:01:56,850 --> 00:01:58,000 Mengagumkan. 43 00:01:58,000 --> 00:01:58,520 Keren. 44 00:01:58,520 --> 00:01:59,817 Besar. 45 00:01:59,817 --> 00:02:01,525 Jadi, aku akan mulai dengan beberapa sejarah. 46 00:02:01,525 --> 00:02:04,350 47 00:02:04,350 --> 00:02:09,820 Jadi kembali di tahun 90-an dan awal 2000-an, pada dasarnya 48 00:02:09,820 --> 00:02:16,940 sebagai pengembang web, pengembang aplikasi, ketika mereka pergi untuk menyebarkan aplikasi 49 00:02:16,940 --> 00:02:19,350 itu diikat telanjang logam. 50 00:02:19,350 --> 00:02:20,860 Itu satu server. 51 00:02:20,860 --> 00:02:22,870 Itu adalah salah satu aplikasi. 52 00:02:22,870 --> 00:02:25,260 >> Secara tradisional, contoh akan seperti LAMP stack, 53 00:02:25,260 --> 00:02:30,630 di mana Anda benar-benar harus memunculkan kolam sumber daya. 54 00:02:30,630 --> 00:02:37,110 CPU, memori, disk, jaringan, instalasi sistem operasi di atas itu. 55 00:02:37,110 --> 00:02:40,060 Jika Anda melayani sesuatu, jika Anda benar-benar memiliki server web, 56 00:02:40,060 --> 00:02:42,470 Anda perlu sesuatu seperti Apache untuk melayani. 57 00:02:42,470 --> 00:02:47,540 >> Jika aplikasi Anda membutuhkan database backhand, 58 00:02:47,540 --> 00:02:50,840 Anda akan menginstal sesuatu seperti MySQL, dan sebagainya. 59 00:02:50,840 --> 00:02:55,910 Dan jika Anda memerlukan waktu berjalan, PHPs dan PHP Python bekerja di sana. 60 00:02:55,910 --> 00:02:59,480 Dan jadi kita benar-benar harus mengambil langkah-langkah dalam rangka 61 00:02:59,480 --> 00:03:02,060 untuk mendapatkan aplikasi Anda dan berjalan. 62 00:03:02,060 --> 00:03:08,440 >> Jika Anda membutuhkan lebih banyak daya komputasi, Anda pada dasarnya harus memanggil pria Ops Anda 63 00:03:08,440 --> 00:03:16,260 atau gal untuk pergi dan rak atas baru hardware, menghubungkannya, 64 00:03:16,260 --> 00:03:19,850 dan Anda harus mengulang proses lagi dan lagi. 65 00:03:19,850 --> 00:03:23,680 Jadi proses ini adalah relatif mahal. 66 00:03:23,680 --> 00:03:26,080 Pasti sangat lambat. 67 00:03:26,080 --> 00:03:27,550 >> Itu tidak efisien. 68 00:03:27,550 --> 00:03:33,890 Dan dalam banyak kasus, Anda hardware yang kurang dimanfaatkan. 69 00:03:33,890 --> 00:03:38,830 Jadi, di tahun 90-an dan awal 2000-an, virtualisasi hardware datang di. 70 00:03:38,830 --> 00:03:42,475 Dan seperti yang Anda lihat di sini di gambar, pada dasarnya apa yang mereka lakukan 71 00:03:42,475 --> 00:03:46,390 disarikan kolam sumber informasi gratis hardware 72 00:03:46,390 --> 00:03:49,680 dan jenis disajikan mereka ke lapisan atas, 73 00:03:49,680 --> 00:03:52,360 dalam hal ini, tamu sistem operasi. 74 00:03:52,360 --> 00:03:54,940 >> Dan seluruh gagasan mesin virtual datang di 75 00:03:54,940 --> 00:03:59,110 dan yang benar-benar membantu Cloud komputasi seperti yang kita kenal sekarang. 76 00:03:59,110 --> 00:04:02,730 Jadi apa artinya adalah Anda dapat menjalankan beberapa VMS, yang 77 00:04:02,730 --> 00:04:06,720 berarti beberapa tumpukan, beberapa aplikasi pada mesin fisik yang sama. 78 00:04:06,720 --> 00:04:10,570 79 00:04:10,570 --> 00:04:16,440 >> Ini pasti membantu dengan kecepatan penyebaran aplikasi. 80 00:04:16,440 --> 00:04:17,629 Pasti dengan biaya. 81 00:04:17,629 --> 00:04:22,810 Anda tidak harus pergi dan menghabiskan energi, waktu, dan sumber daya untuk rak 82 00:04:22,810 --> 00:04:26,210 lebih server untuk mendapatkan lebih menghitung. 83 00:04:26,210 --> 00:04:30,950 Dan kecepatan benar-benar membawa sumber daya up jauh lebih cepat. 84 00:04:30,950 --> 00:04:31,450 Besar. 85 00:04:31,450 --> 00:04:34,320 >> Jadi kita memecahkan kelaparan dunia, bukan? 86 00:04:34,320 --> 00:04:36,390 Tidak terlalu. 87 00:04:36,390 --> 00:04:42,410 Jadi, virtualisasi sebanyak itu benar-benar membantu, mengatasi masalah, 88 00:04:42,410 --> 00:04:45,460 sebenarnya diperkenalkan banyak tantangan. 89 00:04:45,460 --> 00:04:49,210 Hypervisor pasti memperkenalkan banyak kompleksitas, 90 00:04:49,210 --> 00:04:53,820 penanganan yang mendasari pool sumber daya. 91 00:04:53,820 --> 00:04:57,910 >> Ini lebih berat dalam arti bahwa sebelum Anda memiliki sistem operasi tunggal yang 92 00:04:57,910 --> 00:05:01,830 adalah seperti tiga, empat pertunjukan pada disk. 93 00:05:01,830 --> 00:05:04,230 Sekarang, jika Anda memiliki 10 mesin pada hardware tunggal 94 00:05:04,230 --> 00:05:09,060 Anda harus kalikan dengan jumlah mesin. 95 00:05:09,060 --> 00:05:11,440 Hal ini pasti lebih mahal dalam arti Anda masih 96 00:05:11,440 --> 00:05:14,430 harus mendapatkan lisensi untuk teknologi virtualisasi 97 00:05:14,430 --> 00:05:18,210 jika tidak open source. 98 00:05:18,210 --> 00:05:21,120 >> Tapi, mari kita tidak mengambil semua kredit dari virtualisasi. 99 00:05:21,120 --> 00:05:27,530 Karena apa yang terjadi adalah ada banyak tumpukan dan banyak perangkat lunak 100 00:05:27,530 --> 00:05:33,900 teknologi yang memungkinkan oleh seberapa cepat Anda bisa mendapatkan 101 00:05:33,900 --> 00:05:38,040 ke sumber daya dengan booming Cloud. 102 00:05:38,040 --> 00:05:46,675 >> Jadi, hari ini aplikasi atau layanan dapat menggunakan salah satu runtimes berikut 103 00:05:46,675 --> 00:05:47,216 atau database. 104 00:05:47,216 --> 00:05:50,250 105 00:05:50,250 --> 00:05:56,070 PHP, Python, MySQL, Redis, entah apa lagi. 106 00:05:56,070 --> 00:05:59,740 Jadi ada banyak kompleksitas pada ini jumlah tumpukan untuk benar-benar memunculkan 107 00:05:59,740 --> 00:06:02,210 layanan tunggal. 108 00:06:02,210 --> 00:06:07,300 Dan bersama dengan itu, Anda memiliki banyak sumber yang mendasari atau infrastruktur 109 00:06:07,300 --> 00:06:15,210 jenis untuk menguji menyebarkan dan pada dasarnya ambil untuk produksi aplikasi tersebut 110 00:06:15,210 --> 00:06:16,900 bahwa Anda sedang mengembangkan. 111 00:06:16,900 --> 00:06:21,950 >> Terutama karena tim Anda memiliki tumbuh yang bekerja pada aplikasi tersebut, 112 00:06:21,950 --> 00:06:25,310 ada banyak kompleksitas dan tantangan 113 00:06:25,310 --> 00:06:31,660 yang dibawa untuk memastikan bahwa yang cycle-- dasarnya aplikasi 114 00:06:31,660 --> 00:06:34,040 siklus pengembangan, adalah sebenarnya sukses. 115 00:06:34,040 --> 00:06:40,440 Jadi, fakta bahwa aplikasi Anda bekerja secara lokal di VM lokal Anda 116 00:06:40,440 --> 00:06:47,480 tidak menjamin bahwa rekan Anda akan mengharapkan hasil yang sama. 117 00:06:47,480 --> 00:06:51,330 >> Dan ketika tim operasi adalah yang terlibat dalam mengambil apa yang Anda miliki 118 00:06:51,330 --> 00:06:54,480 dan menyebarkan dalam produksi skala, juga tidak ada jaminan 119 00:06:54,480 --> 00:06:56,730 bahwa yang benar-benar akan terjadi. 120 00:06:56,730 --> 00:07:00,900 Jadi ini meninggalkan kita dengan benar big-- banyak tanda tanya, 121 00:07:00,900 --> 00:07:07,700 banyak tantangan sebenarnya dihadapi sama kembali hari-hari. 122 00:07:07,700 --> 00:07:12,280 Dan itu mengingatkan kita industri pelayaran. 123 00:07:12,280 --> 00:07:14,280 >> Jadi industri perkapalan memiliki banyak barang, 124 00:07:14,280 --> 00:07:16,190 seperti yang Anda lihat di sisi kiri. 125 00:07:16,190 --> 00:07:19,840 Dan di sisi kanan, ada banyak, pada dasarnya, 126 00:07:19,840 --> 00:07:22,160 cara untuk kapal barang-barang. 127 00:07:22,160 --> 00:07:26,040 Dan apa yang terjadi bersama pasangan Orang-orang datang bersama-sama dan berkata, 128 00:07:26,040 --> 00:07:29,600 kita perlu standarisasi bagaimana kita benar-benar kapal barang-barang. 129 00:07:29,600 --> 00:07:33,280 Dan boom, Anda memiliki intermodal kontainer pengiriman. 130 00:07:33,280 --> 00:07:38,970 >> Jadi mereka menyepakati paling ukuran umum untuk wadah. 131 00:07:38,970 --> 00:07:40,160 Bagaimana menangani mereka. 132 00:07:40,160 --> 00:07:44,560 Apa metode yang tepat yang Anda butuhkan untuk memuat mereka dan membongkar mereka. 133 00:07:44,560 --> 00:07:49,590 Dan karena itu, yang benar-benar membantu industri perkapalan. 134 00:07:49,590 --> 00:07:55,250 Sekarang, lebih dari 90% fokus diangkut global menggunakan wadah tersebut. 135 00:07:55,250 --> 00:08:01,010 Dan yang pasti berkurang biaya serta 136 00:08:01,010 --> 00:08:03,400 kerusakan akibat pengiriman. 137 00:08:03,400 --> 00:08:09,660 >> Jadi kita mengambil model yang sama dan kami menerapkan pengembangan perangkat lunak aplikasi dua 138 00:08:09,660 --> 00:08:13,080 arsitektur, dalam arti containerization yang 139 00:08:13,080 --> 00:08:15,842 mengambil virtualisasi naik satu tingkat. 140 00:08:15,842 --> 00:08:17,800 Jadi, bukannya melakukan itu di tingkat perangkat keras, 141 00:08:17,800 --> 00:08:22,060 menjadi lebih dari sebuah operasi virtualisasi tingkat sistem. 142 00:08:22,060 --> 00:08:26,450 >> Dan kami melakukannya dengan memberikan masing-masing aplikasi dalam ringan sendiri, 143 00:08:26,450 --> 00:08:31,180 terisolasi, runnable, dan portabel, yang paling penting, 144 00:08:31,180 --> 00:08:35,049 cara untuk benar-benar paket segala sesuatu yang dibutuhkan untuk menjalankan. 145 00:08:35,049 --> 00:08:36,100 Di mana saja itu dapat dijalankan. 146 00:08:36,100 --> 00:08:42,039 Jadi, tidak peduli apakah Anda menjalankan pada lingkungan dev lokal, produksi Anda 147 00:08:42,039 --> 00:08:44,490 lingkungan, pementasan atau pengujian. 148 00:08:44,490 --> 00:08:47,700 Tidak peduli apa yang mendasari infrastruktur yang ada, 149 00:08:47,700 --> 00:08:51,410 Anda memiliki aplikasi yang bekerja fungsional. 150 00:08:51,410 --> 00:08:54,100 151 00:08:54,100 --> 00:09:01,800 >> Jadi itulah yang pada dasarnya kontainer lakukan untuk masalah ini. 152 00:09:01,800 --> 00:09:04,070 Mereka mengatasi dengan kemasan itu sedemikian rupa 153 00:09:04,070 --> 00:09:09,490 yang dapat menjamin bahwa itu dikerahkan berhasil tidak peduli di mana ia hidup. 154 00:09:09,490 --> 00:09:12,120 Jadi jika Anda akan seperti, Bob itu masih OK. 155 00:09:12,120 --> 00:09:17,860 Jika Anda bingung dengan apa yang saya katakan, Saya akan mengelaborasi itu. 156 00:09:17,860 --> 00:09:20,900 >> Jadi bagaimana Docker sendiri cocok dalam gambar ini? 157 00:09:20,900 --> 00:09:26,335 Jadi Docker adalah sebuah platform terbuka dengan mudah, menekankan mudah, 158 00:09:26,335 --> 00:09:30,500 untuk membangun kapal, menjalankan, ringan diri portabel 159 00:09:30,500 --> 00:09:33,440 aplikasi yang cukup kontainer di mana saja. 160 00:09:33,440 --> 00:09:37,660 Jadi jika Anda mengambil sesuatu dari ini bicara, mohon berikut. 161 00:09:37,660 --> 00:09:40,980 >> Jika Anda memiliki aplikasi Anda berjalan lokal dan Anda dikembangkan 162 00:09:40,980 --> 00:09:45,930 dalam menggunakan platform Docker, mengharapkan itu harus berhasil dikerahkan. 163 00:09:45,930 --> 00:09:49,380 Tidak peduli apa infrastruktur dasar. 164 00:09:49,380 --> 00:09:53,830 Jadi jika Anda memiliki Docker kontainer dan itu bekerja, maka 165 00:09:53,830 --> 00:09:58,130 asalkan ada Docker sebuah mesin pada side-- lainnya 166 00:09:58,130 --> 00:10:02,190 jika infrastruktur operasi Anda adalah menggunakan Cloud, apakah itu 167 00:10:02,190 --> 00:10:06,680 adalah AWS, atau Google, atau Microsoft, atau salah satu Awan publik, 168 00:10:06,680 --> 00:10:10,010 atau Cloud Anda sendiri, atau tumpukan terbuka Anda Awan, atau lingkungan setempat. 169 00:10:10,010 --> 00:10:11,970 >> Jika Anda memiliki mesin berjalan, yang berarti 170 00:10:11,970 --> 00:10:14,537 itu akan menjadi berhasil ditempatkan di sana. 171 00:10:14,537 --> 00:10:16,620 Ini akan berjalan perilaku yang sama persis 172 00:10:16,620 --> 00:10:21,480 Anda architected untuk menjadi. 173 00:10:21,480 --> 00:10:26,080 Jadi jika kita melihat at-- aku akan untuk pergi melalui apa yang sebenarnya 174 00:10:26,080 --> 00:10:29,160 berada di komponen utama Docker. 175 00:10:29,160 --> 00:10:31,060 >> Jadi Mesin adalah inti dari Docker. 176 00:10:31,060 --> 00:10:32,770 Ini adalah otak. 177 00:10:32,770 --> 00:10:39,360 Ini orchestrates bangunan, pengiriman, dan menyebarkan dan mengelola 178 00:10:39,360 --> 00:10:41,570 wadah sendiri. 179 00:10:41,570 --> 00:10:45,160 Aku akan menggali apa Mesin di rincian lebih dalam satu detik. 180 00:10:45,160 --> 00:10:47,740 181 00:10:47,740 --> 00:10:51,720 Pada dasarnya, karena Dokter dibangun sekitar arsitektur client server, 182 00:10:51,720 --> 00:10:56,630 sehingga untuk berinteraksi dengan Mesin Anda perlu semacam klien. 183 00:10:56,630 --> 00:11:01,200 >> Gambar adalah template di yang kontainer dibangun dari. 184 00:11:01,200 --> 00:11:06,800 Jadi gambar pada dasarnya file hanya statis. 185 00:11:06,800 --> 00:11:08,740 Template dan kontainer sebenarnya apa 186 00:11:08,740 --> 00:11:12,280 berjalan pada runtime yang adalah melayani aplikasi Anda 187 00:11:12,280 --> 00:11:15,150 atau melakukan sesuatu dengan data. 188 00:11:15,150 --> 00:11:19,020 >> Registry ditujukan sebagai masalah bagaimana Anda benar-benar mendistribusikan gambar. 189 00:11:19,020 --> 00:11:23,230 Jadi jika Anda perlu berbagi gambar Anda bekerja untuk rekan Anda 190 00:11:23,230 --> 00:11:27,220 atau untuk tim ops, Anda menggunakannya menggunakan Registry. 191 00:11:27,220 --> 00:11:31,720 Anda dapat men-download open source versi itu yang Docker bekerja pada 192 00:11:31,720 --> 00:11:33,150 dan membuka bersumber. 193 00:11:33,150 --> 00:11:38,040 >> Atau Anda dapat menggunakan Docker bantuan, yang merupakan versi Cloud 194 00:11:38,040 --> 00:11:40,130 untuk mendorong dan menarik gambar di luar sana. 195 00:11:40,130 --> 00:11:41,160 Itu hal yang besar. 196 00:11:41,160 --> 00:11:44,520 Karena ada besar ekosistem di sekitar Docker dan itu 197 00:11:44,520 --> 00:11:48,960 benar-benar sangat memanfaatkan hub. 198 00:11:48,960 --> 00:11:59,780 >> Jadi untuk meringkas di sini, ini adalah bagaimana minimalis Docker alur kerja klien. 199 00:11:59,780 --> 00:12:04,040 Anda berinteraksi dengan tuan rumah, di hal ini itu daemon Docker. 200 00:12:04,040 --> 00:12:06,490 Ini hal yang sama seperti mesin. 201 00:12:06,490 --> 00:12:09,690 Anda melakukan perintah seperti Docker membangun, tarik, run. 202 00:12:09,690 --> 00:12:14,280 Dan Engine itu sendiri berjalan dan melakukan hal-hal. 203 00:12:14,280 --> 00:12:18,010 >> Jadi baik itu berinteraksi dengan Registry untuk menarik gambar-gambar 204 00:12:18,010 --> 00:12:19,670 dan lapisan gambar. 205 00:12:19,670 --> 00:12:25,030 Apakah jika Anda ingin menyebarkan, menjalankan kontainer, membunuh mereka, melemparkan mereka ke bawah, 206 00:12:25,030 --> 00:12:25,730 yang lainnya. 207 00:12:25,730 --> 00:12:32,190 Jadi ini merangkum alur kerja dari semua komponen ini. 208 00:12:32,190 --> 00:12:34,710 >> Jadi jika Anda mengambil setiap komponen dengan sendirinya. 209 00:12:34,710 --> 00:12:37,690 Jadi Mesin, itu hanya daemon. 210 00:12:37,690 --> 00:12:40,800 Ini akan jenis memainkannya untuk mendukung di Linux karena tidak 211 00:12:40,800 --> 00:12:44,380 memerlukan fitur kernel Linux tertentu. 212 00:12:44,380 --> 00:12:48,820 Tapi Windows bekerja melakukan hal yang sama. 213 00:12:48,820 --> 00:12:53,720 Ini seharusnya didukung oleh Windows Server 2016. 214 00:12:53,720 --> 00:13:01,500 >> Jadi, sekali lagi, tanggung jawab dengan mesin adalah untuk, atau untuk, membangun citra. 215 00:13:01,500 --> 00:13:05,340 Tarik gambar dari Docker Hub atau Registry Anda sendiri. 216 00:13:05,340 --> 00:13:07,840 Jika Anda sudah selesai dengan gambar-gambar atau Anda membuat gambar baru, 217 00:13:07,840 --> 00:13:14,770 Anda dapat mendorong mereka kembali ke registry untuk mendistribusikan mereka untuk tim lain. 218 00:13:14,770 --> 00:13:18,300 >> Dan mencoba untuk menampungnya lokal dan mengelola siklus hidup kontainer 219 00:13:18,300 --> 00:13:19,260 lokal. 220 00:13:19,260 --> 00:13:22,010 Hal ini dibangun di sekitar HTTP REST API. 221 00:13:22,010 --> 00:13:24,480 Jadi secara teknis Anda bisa menulis klien Anda sendiri 222 00:13:24,480 --> 00:13:31,650 asalkan menggunakan HTTP, yang merupakan sangat mekanisme standar untuk berbicara dengan Mesin 223 00:13:31,650 --> 00:13:33,110 dan banyak layanan lainnya. 224 00:13:33,110 --> 00:13:35,780 Dan Anda dapat melihat dari di sini bahwa terlepas 225 00:13:35,780 --> 00:13:39,010 apa infrastruktur adalah, selama Anda can-- semua 226 00:13:39,010 --> 00:13:42,170 Anda butuhkan adalah sebuah operasi sistem, Linux khusus. 227 00:13:42,170 --> 00:13:45,460 >> Dan Anda dapat menginstal Docker Mesin di atas itu dan telah berjalan 228 00:13:45,460 --> 00:13:48,970 dan orchestrates, pada dasarnya, semua ini app satu, dua, 229 00:13:48,970 --> 00:13:51,530 dan tiga kontainer yang sebenarnya. 230 00:13:51,530 --> 00:13:53,990 Jadi itu mesin. 231 00:13:53,990 --> 00:13:58,040 Seperti yang saya sebutkan sebelumnya karena Anda perlu berinteraksi dengan mesin, 232 00:13:58,040 --> 00:13:59,200 ada klien. 233 00:13:59,200 --> 00:14:03,180 >> Tapi sebenarnya ketika Anda menginstal Docker, kapal dengan itu. 234 00:14:03,180 --> 00:14:06,110 Jadi terinstal, jadi biner tunggal. 235 00:14:06,110 --> 00:14:11,830 Dan Anda dapat melakukan panggilan lokal untuk Anda Docker Mesin. 236 00:14:11,830 --> 00:14:14,040 Atau panggilan jarak jauh ke Mesin terpencil. 237 00:14:14,040 --> 00:14:16,600 238 00:14:16,600 --> 00:14:19,590 Itu menggunakan HTTP, sebagai Saya sebutkan sebelumnya. 239 00:14:19,590 --> 00:14:24,200 Ada klien GUI disebut Kitematic dari Docker. 240 00:14:24,200 --> 00:14:26,390 Dan ada pasti banyak orang lain 241 00:14:26,390 --> 00:14:29,740 yang sedang membangun banyak GUI yang pada dasarnya menerapkan 242 00:14:29,740 --> 00:14:32,980 beberapa HTTP panggilan untuk berbicara dengan mesin. 243 00:14:32,980 --> 00:14:35,920 244 00:14:35,920 --> 00:14:39,280 >> Hanya beberapa perintah sampel. 245 00:14:39,280 --> 00:14:44,620 Jika Anda melakukan versi Docker, itu akan menampilkan versi klien serta 246 00:14:44,620 --> 00:14:47,030 versi server. 247 00:14:47,030 --> 00:14:49,500 Jika Anda melakukannya Info Docker itu akan memberitahu Anda semua informasi 248 00:14:49,500 --> 00:14:54,300 tentang berapa kontainer yang berjalan atau diciptakan, berapa banyak gambar yang Anda miliki, 249 00:14:54,300 --> 00:14:56,530 dan seterusnya dan seterusnya. 250 00:14:56,530 --> 00:15:01,850 >> Di sini saya punya, di sebelah kotak terakhir, saya harus Dokter run. 251 00:15:01,850 --> 00:15:04,970 Jadi itulah bagaimana aku benar-benar menciptakan wadah. 252 00:15:04,970 --> 00:15:08,960 Dan aku memberikannya echo Hello World dan tidur untuk kedua dan yang lainnya. 253 00:15:08,960 --> 00:15:12,830 Dan Anda dapat melihat hasil. Jadi itu yang sedang berlangsung. 254 00:15:12,830 --> 00:15:16,930 Dan mirip dengan Linux ps, Anda dapat melihat semua proses dan, dalam kasus ini, 255 00:15:16,930 --> 00:15:18,540 semua kontainer berjalan. 256 00:15:18,540 --> 00:15:23,430 Merujuk kembali satu ini untuk wadah Saya baru saja membuat. 257 00:15:23,430 --> 00:15:27,560 >> Jadi, ini benar-benar penting karena, seperti, itu dapat sedikit membingungkan. 258 00:15:27,560 --> 00:15:33,050 Sehingga gambar adalah read-only kumpulan file, kan? 259 00:15:33,050 --> 00:15:37,000 Mereka adalah apa wadah kami didasarkan pada. 260 00:15:37,000 --> 00:15:40,340 Tapi mereka hanya read-only. 261 00:15:40,340 --> 00:15:44,330 Jadi Anda memulai dengan gambar dasar. 262 00:15:44,330 --> 00:15:50,180 Hal ini cenderung untuk meniru OS-seperti, sehingga Ubuntu, CentOS, gambar dasar yang lainnya. 263 00:15:50,180 --> 00:15:53,990 Dan kemudian Anda mulai membangun di atas itu, lapisan tertentu, yang akan membuat 264 00:15:53,990 --> 00:16:00,010 gambar akhir Anda, hasil akhir di sini. 265 00:16:00,010 --> 00:16:03,220 >> Dan masing-masing lapisan harus memiliki gambar orang tua 266 00:16:03,220 --> 00:16:06,690 bahwa itu referensi ketika benar-benar ingin membuat. 267 00:16:06,690 --> 00:16:09,922 Mereka yang berubah, dalam arti itu karena mereka read-only, 268 00:16:09,922 --> 00:16:11,630 Anda tidak bisa benar-benar membuat perubahan pada mereka. 269 00:16:11,630 --> 00:16:17,540 Anda dapat menggunakannya untuk membuat kontainer dari gambar, yang 270 00:16:17,540 --> 00:16:23,530 akan memanggil semua berikutnya gambar yang diperlukan bawahnya. 271 00:16:23,530 --> 00:16:26,400 >> Anda dapat melakukan perubahan untuk lapisan yang berbeda, 272 00:16:26,400 --> 00:16:28,810 itu lapisan menulis ulang aku akan berbicara tentang dalam satu detik. 273 00:16:28,810 --> 00:16:31,350 Tapi masing-masing lapisan tidak pernah berubah. 274 00:16:31,350 --> 00:16:34,300 275 00:16:34,300 --> 00:16:38,670 Pada dasarnya gambar menggunakan sesuatu disebut Union File System, UFS. 276 00:16:38,670 --> 00:16:42,280 Dan ada penyimpanan yang berbeda backends yang memanfaatkan teknologi ini. 277 00:16:42,280 --> 00:16:49,430 Dan apa artinya adalah bahwa hal itu menyatukan file sistem yang berbeda 278 00:16:49,430 --> 00:16:51,190 untuk membuat mereka terlihat seperti satu. 279 00:16:51,190 --> 00:16:54,460 >> Jadi Anda benar-benar bisa, dari perspektif aplikasi, 280 00:16:54,460 --> 00:16:59,570 Anda memiliki atas pandangan yang menunjukkan semua sistem file yang berbeda dibutuhkan 281 00:16:59,570 --> 00:17:01,120 untuk aplikasi yang berjalan. 282 00:17:01,120 --> 00:17:04,400 Tapi mereka benar-benar, ini, mereka benar-benar di tempat terpisah 283 00:17:04,400 --> 00:17:06,410 dan dimanfaatkan oleh wadah lain juga. 284 00:17:06,410 --> 00:17:09,569 285 00:17:09,569 --> 00:17:14,410 >> Jadi seperti yang Anda lihat di sini bahwa jika kita mulai dengan gambar daemon 286 00:17:14,410 --> 00:17:18,619 sebagai gambar dasar, dan kemudian kita masuk dan menambahkan [? emacs?] 287 00:17:18,619 --> 00:17:20,720 dan kemudian itu lapisan lain. 288 00:17:20,720 --> 00:17:21,916 Dan kemudian menambahkan Apache. 289 00:17:21,916 --> 00:17:22,790 Itu lapisan lain. 290 00:17:22,790 --> 00:17:25,470 Dan kemudian kita menghabiskan kontainer itu. 291 00:17:25,470 --> 00:17:29,760 Masing-masing gambar, masing-masing lapisan, 292 00:17:29,760 --> 00:17:35,530 berbeda dan dapat digunakan kembali oleh wadah lainnya. 293 00:17:35,530 --> 00:17:40,070 >> Jika Anda melihat kontainer sendiri, mereka entah bagaimana seperti VM-seperti, 294 00:17:40,070 --> 00:17:41,930 tetapi tidak diobati saat yang sama. 295 00:17:41,930 --> 00:17:49,180 Jadi, mereka tidak memiliki, secara teknis, sistem operasi penuh di bawah mereka. 296 00:17:49,180 --> 00:17:52,630 Mereka menggunakan kernel tunggal dari sistem operasi host. 297 00:17:52,630 --> 00:17:54,440 Dan mereka membangun di atas itu. 298 00:17:54,440 --> 00:17:56,250 Mereka meniru bagaimana mereka terlihat. 299 00:17:56,250 --> 00:18:00,710 Mereka meniru file root mereka sistem dari sistem operasi. 300 00:18:00,710 --> 00:18:04,930 Tapi mereka benar-benar tidak mereplikasi. 301 00:18:04,930 --> 00:18:12,080 >> Jadi, alih-alih memiliki lapisan berubah, lapisan terakhir, yang merupakan wadah 302 00:18:12,080 --> 00:18:14,690 itu sendiri, itu adalah lapisan baca-tulis. 303 00:18:14,690 --> 00:18:17,350 Yang juga menjalankan proses aplikasi Anda. 304 00:18:17,350 --> 00:18:23,530 Dan itu tergantung pada lapisan yang mendasari. 305 00:18:23,530 --> 00:18:26,730 Setiap kontainer adalah dibuat dari sebuah gambar. 306 00:18:26,730 --> 00:18:32,450 Dan gambar yang dapat menjadi tunggal layer atau gambar multilayer. 307 00:18:32,450 --> 00:18:37,200 >> Dan saya ingin untuk dicatat di sini yang Docker berat menggunakan, 308 00:18:37,200 --> 00:18:40,370 atau didasarkan pada mekanisme Copy-On-Write. 309 00:18:40,370 --> 00:18:44,350 Sehingga, sebenarnya, jika Anda tidak membuat perubahan ke wadah, 310 00:18:44,350 --> 00:18:45,930 itu tidak akan mengambil ruang ekstra. 311 00:18:45,930 --> 00:18:49,600 Jadi itulah dasarnya bagaimana Anda meringkas Copy-On-Write. 312 00:18:49,600 --> 00:18:53,820 Ini akan pasti mempercepat waktu boot untuk wadah. 313 00:18:53,820 --> 00:18:56,300 Karena jika Anda tidak membuat perubahan wadah, 314 00:18:56,300 --> 00:18:57,800 itu memanfaatkan apa yang sudah ada. 315 00:18:57,800 --> 00:19:01,130 316 00:19:01,130 --> 00:19:02,955 >> Jadi, bagaimana benar-benar bekerja. 317 00:19:02,955 --> 00:19:06,920 318 00:19:06,920 --> 00:19:14,240 Bagian dari itu seperti, sekarang, menggunakan setidaknya dua kernel kunci 319 00:19:14,240 --> 00:19:14,820 fitur. 320 00:19:14,820 --> 00:19:17,660 Dan yang pada dasarnya apa yang menciptakan tingkat isolasi 321 00:19:17,660 --> 00:19:19,550 untuk wadah sendiri. 322 00:19:19,550 --> 00:19:22,290 Fitur tersebut adalah ruang nama dan cgroups. 323 00:19:22,290 --> 00:19:29,870 Jadi ruang nama adalah cara untuk menciptakan sumber daya terisolasi, 324 00:19:29,870 --> 00:19:36,290 sehingga dalam wadah itu sendiri, hanya Anda dapat melihat sumber daya tertentu. 325 00:19:36,290 --> 00:19:40,030 Seperti antarmuka jaringan atau pengguna atau entah apa lagi tertentu. 326 00:19:40,030 --> 00:19:44,160 >> Dan orang-orang yang hanya terlihat dan hanya diakses dalam wadah. 327 00:19:44,160 --> 00:19:48,290 Cgroup pada batas sisi lain bagaimana Anda menggunakan sumber daya tersebut. 328 00:19:48,290 --> 00:19:50,950 CPU, memori, dan disk. 329 00:19:50,950 --> 00:19:53,900 Ketika Anda bisa masuk, saya berarti mereka sebenarnya 330 00:19:53,900 --> 00:19:57,410 fitur yang dikembangkan by-- mereka bagian dari kernel Linux. 331 00:19:57,410 --> 00:20:01,800 Jadi mereka tidak diciptakan kembali oleh atau diciptakan oleh Docker. 332 00:20:01,800 --> 00:20:03,770 Buruh pelabuhan menggunakan mereka. 333 00:20:03,770 --> 00:20:05,560 >> Apa Dokter benar-benar melakukan di sini adalah sebenarnya 334 00:20:05,560 --> 00:20:08,680 menciptakan diatur ruang nama untuk setiap kontainer 335 00:20:08,680 --> 00:20:13,320 dan menciptakan cgroups sehingga itu ridiculously mudah untuk membuat wadah 336 00:20:13,320 --> 00:20:14,870 menggunakan fitur tersebut. 337 00:20:14,870 --> 00:20:22,910 Tentu saja, seperti yang saya jelaskan sebelumnya, Union File Systems dan Copy-On-Write benar 338 00:20:22,910 --> 00:20:26,810 membantu kecepatan dan disk pemanfaatan kontainer. 339 00:20:26,810 --> 00:20:28,917 >> Dan setelah Anda mendapatkan Anda tangan sekitar Docker, 340 00:20:28,917 --> 00:20:32,000 Anda akan melihat seberapa cepat itu adalah untuk sebenarnya berputar ke atas kontainer dan air mata 341 00:20:32,000 --> 00:20:32,500 mereka. 342 00:20:32,500 --> 00:20:36,060 343 00:20:36,060 --> 00:20:40,230 Jadi, jika Anda mungkin bertanya, bagaimana bisa Anda benar-benar membangun gambar? 344 00:20:40,230 --> 00:20:45,940 Kami membangun citra dengan proses penciptaan kontainer dan membuat perubahan, mengubah 345 00:20:45,940 --> 00:20:50,220 mereka, dan melakukan mereka untuk menjadi sebuah gambar. 346 00:20:50,220 --> 00:20:54,330 >> Jadi itu adalah ayam dan referensi telur di sini, 347 00:20:54,330 --> 00:20:57,350 karena semua kontainer datang dari gambar dan gambar datang 348 00:20:57,350 --> 00:21:00,270 dari wadah berkomitmen, sebagian besar. 349 00:21:00,270 --> 00:21:03,830 Ada tiga pilihan untuk membuat gambar. 350 00:21:03,830 --> 00:21:06,580 Aku akan menjelaskan pertama dan terakhir. 351 00:21:06,580 --> 00:21:10,060 Anda dapat secara manual pergi dan menjalankan wadah 352 00:21:10,060 --> 00:21:14,280 dan membuat perubahan-perubahan tersebut, seperti yang akan Anda lakukan pada setiap VM 353 00:21:14,280 --> 00:21:17,060 atau sistem operasi, seperti menginstal binari baru, 354 00:21:17,060 --> 00:21:19,370 menambahkan file sistem, dan yang lainnya. 355 00:21:19,370 --> 00:21:22,620 >> Dan kemudian Anda keluar, sebagai Anda dapat melihat di sana. 356 00:21:22,620 --> 00:21:24,330 Saya keluar wadah saya. 357 00:21:24,330 --> 00:21:26,050 Dan kemudian aku melakukan Docker komit. 358 00:21:26,050 --> 00:21:28,390 Dan aku melakukan itu. 359 00:21:28,390 --> 00:21:31,560 Anda dapat melihat bahwa jumlah sini hanya UUID, atau yang pertama 12 360 00:21:31,560 --> 00:21:32,810 bit UUID. 361 00:21:32,810 --> 00:21:34,320 Atau byte UUID. 362 00:21:34,320 --> 00:21:35,770 Dan kemudian aku menyebutnya gambar saya. 363 00:21:35,770 --> 00:21:39,510 Jadi sekarang Docker mengurus merekam semua yang saya lakukan itu 364 00:21:39,510 --> 00:21:42,830 dan menciptakan baru gambar berdasarkan itu. 365 00:21:42,830 --> 00:21:47,080 366 00:21:47,080 --> 00:21:52,560 >> Saya tidak akan berbicara tentang tarbal, tapi ada cara Anda bisa mendapatkan satu, 367 00:21:52,560 --> 00:21:58,200 membuat tunggal, atau membuat satu layer gambar menggunakan tarball. 368 00:21:58,200 --> 00:22:02,650 Yang saya akan berbicara tentang ini dan apa yang kebanyakan digunakan saat ini, 369 00:22:02,650 --> 00:22:03,270 adalah Dockerfile. 370 00:22:03,270 --> 00:22:07,260 Yang secara teknis pertama langkah otomatis oleh Docker sendiri. 371 00:22:07,260 --> 00:22:11,920 Jadi Dockerfiles hal-hal yang Anda akan melihat di banyak GitHub repo 372 00:22:11,920 --> 00:22:13,150 hari ini. 373 00:22:13,150 --> 00:22:16,420 Itu pada dasarnya hanya file teks yang menggambarkan 374 00:22:16,420 --> 00:22:19,780 persis bagaimana membangun sebuah gambar. 375 00:22:19,780 --> 00:22:25,540 >> Dan untuk setiap baris, itu benar-benar menciptakan wadah, mengeksekusi baris tersebut, 376 00:22:25,540 --> 00:22:30,480 melakukan wadah yang menjadi gambar baru, dan Anda, pada dasarnya, 377 00:22:30,480 --> 00:22:36,160 menggunakannya untuk semua operasi berikutnya sampai Anda mendapatkan gambar terakhir. 378 00:22:36,160 --> 00:22:39,260 Yang pada dasarnya adalah mengakhiri tujuan di sini, akhirnya. 379 00:22:39,260 --> 00:22:42,420 Dan setelah Anda exec-- setelah Anda menulis Dockerfile Anda, yang 380 00:22:42,420 --> 00:22:46,750 adalah murni dalam teks, Anda melakukan Docker membangun dan nama gambar. 381 00:22:46,750 --> 00:22:50,000 >> Dan Anda menunjuk pada saat itu yang dimana Dockerfile di. 382 00:22:50,000 --> 00:22:56,570 Dan Anda dapat mengharapkan untuk melihat gambar saya sebagai gambar yang Anda miliki secara lokal. 383 00:22:56,570 --> 00:22:59,100 Jadi itu hanya visual contoh apa yang terjadi di. 384 00:22:59,100 --> 00:23:00,820 Anda mulai dengan gambar dasar. 385 00:23:00,820 --> 00:23:05,150 Anda menjalankan ke dalam wadah yang tidak mengubah gambar dasar itu sendiri. 386 00:23:05,150 --> 00:23:08,310 Tapi bukannya menciptakan menulis ulang lapisan di atasnya 387 00:23:08,310 --> 00:23:10,340 di mana Anda membuat perubahan, di mana Anda berkomitmen 388 00:23:10,340 --> 00:23:15,050 dan Anda ulangi proses sampai Anda bisa gambar akhir Anda. 389 00:23:15,050 --> 00:23:20,980 >> Dan dengan demikian, setiap membangun lainnya Proses dapat menggunakan lapisan yang sama 390 00:23:20,980 --> 00:23:23,870 dan same-- pada dasarnya Docker cache layer tersebut. 391 00:23:23,870 --> 00:23:30,040 Sehingga jika saya melakukan hal yang sama persis proses, tapi bukannya menginstal PHP, 392 00:23:30,040 --> 00:23:31,540 Saya menginstal Python. 393 00:23:31,540 --> 00:23:34,210 Ini akan menggunakan Apache dan Ubuntu. 394 00:23:34,210 --> 00:23:39,570 Sehingga cara Anda menggunakan disk Anda. 395 00:23:39,570 --> 00:23:42,330 Ini memanfaatkan cache dan gambar yang tersedia di sana. 396 00:23:42,330 --> 00:23:45,320 397 00:23:45,320 --> 00:23:48,840 >> Bagian akhir adalah Registry, yang adalah bagaimana Anda mendistribusikan gambar Anda. 398 00:23:48,840 --> 00:23:52,710 Dan, seperti yang saya sebutkan sebelumnya, ada versi Cloud itu, 399 00:23:52,710 --> 00:23:54,290 yang Docker Hub. 400 00:23:54,290 --> 00:23:57,550 Anda dapat pergi dan menjelajahi banyak, pada dasarnya 401 00:23:57,550 --> 00:24:04,900 itu produk SAS publik yang Anda masih dapat memiliki gambar pribadi, 402 00:24:04,900 --> 00:24:06,590 tapi ada banyak gambar publik. 403 00:24:06,590 --> 00:24:10,580 Ini sebenarnya terbatas, Anda bisa mendorong gambar publik terbatas di sana. 404 00:24:10,580 --> 00:24:13,730 Dan ini adalah bagaimana Anda dapat berkolaborasi dengan tim Anda. 405 00:24:13,730 --> 00:24:17,159 >> Anda hanya bisa mengarahkan mereka pada Anda repo dan mereka dapat men-download atau gambar Anda 406 00:24:17,159 --> 00:24:18,200 dan mereka dapat men-download itu. 407 00:24:18,200 --> 00:24:21,140 408 00:24:21,140 --> 00:24:24,990 Jadi cukup dengan pembicaraan. 409 00:24:24,990 --> 00:24:29,110 Yang ingin melihat beberapa demo nyata cepat? 410 00:24:29,110 --> 00:24:31,330 Baiklah. 411 00:24:31,330 --> 00:24:34,050 Jadi di sini saya punya. 412 00:24:34,050 --> 00:24:37,480 Ca kalian melihat layar saya? 413 00:24:37,480 --> 00:24:38,390 Baiklah. 414 00:24:38,390 --> 00:24:45,810 >> Jadi saya memiliki Docker berjalan di sini, jadi saya dapat memeriksa it's-- ini adalah versi 415 00:24:45,810 --> 00:24:47,510 Docker yang berjalan. 416 00:24:47,510 --> 00:24:49,320 Dapat melakukan Info Docker. 417 00:24:49,320 --> 00:24:55,730 Periksa semua informasi tentang berapa gambar yang mereka miliki, dan seterusnya dan seterusnya. 418 00:24:55,730 --> 00:24:58,890 Docker PS, tidak ada yang berjalan. 419 00:24:58,890 --> 00:25:00,570 Concatenated mereka. 420 00:25:00,570 --> 00:25:06,370 >> Jadi hal pertama yang saya ingin lakukan adalah acara Anda bagaimana Anda dapat dengan mudah menjalankan sebuah wadah. 421 00:25:06,370 --> 00:25:09,350 Jadi keindahan sekitar Dokter run, jika itu benar-benar 422 00:25:09,350 --> 00:25:14,700 tidak menemukan gambar secara lokal, secara default itu berbicara ke Dokter Hub 423 00:25:14,700 --> 00:25:17,240 dan mencoba untuk menemukan di sana dan download untuk Anda. 424 00:25:17,240 --> 00:25:22,820 Jadi itu termasuk Docker menarik perintah, secara alami. 425 00:25:22,820 --> 00:25:26,130 >> Jadi jika saya melakukan Docker run, hello-dunia. 426 00:25:26,130 --> 00:25:28,890 427 00:25:28,890 --> 00:25:31,200 Jadi, pertama itu akan mencoba untuk menemukan itu. 428 00:25:31,200 --> 00:25:36,140 Jika tidak, seperti yang Anda lihat di sini, itu tidak bisa menemukannya secara lokal. 429 00:25:36,140 --> 00:25:41,830 Sekarang ini hanya menarik dua lapisan yang membuat gambar itu dan aku berlari itu. 430 00:25:41,830 --> 00:25:45,440 Hello-dunia hanya pada dasarnya output, apa yang telah Anda lakukan. 431 00:25:45,440 --> 00:25:47,680 Jadi ini adalah yang paling mudah, salah satu contoh yang paling mudah. 432 00:25:47,680 --> 00:25:53,840 Jadi sebenarnya saya hanya berlari dan dihentikan wadah cepat. 433 00:25:53,840 --> 00:25:59,500 >> Jika saya ingin run-- dan omong-omong, jika Aku ingin waktu itu, supaya kau tahu, 434 00:25:59,500 --> 00:26:03,572 ini berapa lama waktu yang dibutuhkan untuk sebenarnya berputar ke atas dan berisi itu. 435 00:26:03,572 --> 00:26:05,030 Kami mengukurnya dalam milidetik. 436 00:26:05,030 --> 00:26:10,600 Sehingga Anda dapat melihat berapa banyak ini bisa benar-benar membantu Anda tidak hanya dalam pengujian, 437 00:26:10,600 --> 00:26:13,200 tetapi juga bahkan penyebaran. 438 00:26:13,200 --> 00:26:17,221 Jadi itulah catatan singkat tentang itu. 439 00:26:17,221 --> 00:26:18,970 Hal berikutnya saya akan lakukan adalah benar-benar 440 00:26:18,970 --> 00:26:21,930 menjalankan gambar saya sudah siap. 441 00:26:21,930 --> 00:26:24,460 Jadi buruh pelabuhan yang dikelola. 442 00:26:24,460 --> 00:26:27,240 -d hanya bendera untuk memberitahu untuk berjalan di latar belakang. 443 00:26:27,240 --> 00:26:30,290 Dan p memberikan port tertentu. 444 00:26:30,290 --> 00:26:32,670 Karena secara default, kontainer terisolasi, 445 00:26:32,670 --> 00:26:36,080 sehingga Anda harus menentukan dengan tepat bagaimana bisa mengaksesnya. 446 00:26:36,080 --> 00:26:41,150 Dan dalam hal ini, saya mengatakan Docker untuk memetakan port acak pada host 447 00:26:41,150 --> 00:26:44,560 ke port yang ditentukan dalam wadah itu sendiri. 448 00:26:44,560 --> 00:26:47,130 449 00:26:47,130 --> 00:26:56,460 Dan itu pada dasarnya di mana image-- yang mudah-mudahan ini adalah yang benar. 450 00:26:56,460 --> 00:27:01,780 >> Jadi itu tidak paralel download setiap dari lapisan-lapisan seperti yang Anda lihat di sini. 451 00:27:01,780 --> 00:27:06,949 Mereka adalah lapisan membuat gambar akhir yang saya dibangun. 452 00:27:06,949 --> 00:27:08,115 Ini akan mengambil kedua. 453 00:27:08,115 --> 00:27:11,290 454 00:27:11,290 --> 00:27:12,370 Dan voila. 455 00:27:12,370 --> 00:27:16,590 >> Jadi sekarang jika saya melakukan ps buruh pelabuhan, aku harus melihat sesuatu yang sedang berjalan. 456 00:27:16,590 --> 00:27:22,250 Aku harus melihat ID, gambar bahwa ini didasarkan off, 457 00:27:22,250 --> 00:27:23,880 dan perintah yang dieksekusi. 458 00:27:23,880 --> 00:27:28,720 Dan bagaimana untuk mengaksesnya adalah pada dasarnya Anda pergi ke port tersebut. 459 00:27:28,720 --> 00:27:33,240 Jadi aku akan pergi to-- ini adalah aku menjalankannya pada AWS. 460 00:27:33,240 --> 00:27:37,150 Aku akan pergi ke 32.769. 461 00:27:37,150 --> 00:27:37,650 Ups. 462 00:27:37,650 --> 00:27:40,495 463 00:27:40,495 --> 00:27:41,120 Dan di sini kita pergi. 464 00:27:41,120 --> 00:27:44,550 >> Jadi ini sebenarnya hanya layanan web yang menunjukkan 465 00:27:44,550 --> 00:27:46,240 yang kontainer itu dilayani dari. 466 00:27:46,240 --> 00:27:50,450 Jadi Anda dapat melihat bahwa itu adalah dari wadah a9f. 467 00:27:50,450 --> 00:27:52,850 Dan di sini ini adalah nama wadah. 468 00:27:52,850 --> 00:27:56,550 Jadi kalian bisa melihat seberapa cepat adalah untuk benar-benar tidak hanya menarik tetapi juga 469 00:27:56,550 --> 00:28:00,440 menyebarkan wadah ini. 470 00:28:00,440 --> 00:28:05,070 >> Sekarang langkah berikutnya adalah untuk melihat ke Dockerfiles 471 00:28:05,070 --> 00:28:09,430 dan bagaimana kita dapat benar-benar membangun citra baru. 472 00:28:09,430 --> 00:28:15,250 Aku hanya akan pergi mendapatkan klon, sebuah Contoh Dockerfile berdasarkan sebelumnya 473 00:28:15,250 --> 00:28:17,755 diagram, satu untuk Apache dan PHP. 474 00:28:17,755 --> 00:28:26,740 475 00:28:26,740 --> 00:28:28,140 Mudah-mudahan saya ingat repo saya. 476 00:28:28,140 --> 00:28:36,410 477 00:28:36,410 --> 00:28:38,750 >> Jadi saya memiliki repositori saya sekarang. 478 00:28:38,750 --> 00:28:43,080 Dan Anda akan melihat ini banyak sebenarnya. 479 00:28:43,080 --> 00:28:45,110 Aku tidak menginstal pohon. 480 00:28:45,110 --> 00:28:48,700 >> Jadi pada dasarnya Anda akan melihat bagaimana dokumentasi kode sumber Anda di sekitar 481 00:28:48,700 --> 00:28:51,240 itu, dan kemudian pada Dockerfile bagaimana sebenarnya paket itu. 482 00:28:51,240 --> 00:28:57,970 Jadi itu hanya contoh PHP yang menggemakan halo CS50. 483 00:28:57,970 --> 00:29:01,550 >> Jadi jika saya ingin menjalankannya, Saya akan melakukan buruh pelabuhan membangun. 484 00:29:01,550 --> 00:29:03,370 Saya harus membangun terlebih dahulu. 485 00:29:03,370 --> 00:29:12,420 Aku akan nama itu demo_cs50. 486 00:29:12,420 --> 00:29:16,470 Dan Anda perlu tag untuk itu juga. 487 00:29:16,470 --> 00:29:19,802 Jadi mari kita menyebutnya V1 dot. 488 00:29:19,802 --> 00:29:21,760 Jadi seperti yang saya jelaskan sebelumnya, apa yang saya lakukan hari ini 489 00:29:21,760 --> 00:29:26,840 adalah aku mengatakan Docker untuk pergi penggunaan itu-- sebenarnya, maaf, saya buruk. 490 00:29:26,840 --> 00:29:29,450 491 00:29:29,450 --> 00:29:32,500 Kami tidak kita lihat di Dockerfile sendiri. 492 00:29:32,500 --> 00:29:39,020 Jadi satu-satunya hal di sini adalah index.php serta file readme 493 00:29:39,020 --> 00:29:39,810 dan Dockerfile. 494 00:29:39,810 --> 00:29:44,600 >> Jadi jika Anda melihat pada yang Dockerfile, sehingga 495 00:29:44,600 --> 00:29:47,150 sangat mirip dengan apa Saya jelaskan sebelumnya. 496 00:29:47,150 --> 00:29:51,220 Ini hanya sekelompok langkah-langkah yang Docker mengeksekusi 497 00:29:51,220 --> 00:29:56,330 dengan menciptakan dan menghancurkan wadah dan [? menghitung?] mereka menjadi sebuah gambar. 498 00:29:56,330 --> 00:29:59,570 >> Dan pada dasarnya Anda bisa see-- [tidak terdengar] itu di sini- 499 00:29:59,570 --> 00:30:04,340 tapi ini adalah dari repo lokal. 500 00:30:04,340 --> 00:30:06,410 Itu akan pergi dan ambil index.php. 501 00:30:06,410 --> 00:30:10,970 Jadi itulah satu-satunya kode sumber yang sebetulnya merupakan bagian dari aplikasi Anda. 502 00:30:10,970 --> 00:30:16,800 Semua ini pada dasarnya sistem pipa operasi, 503 00:30:16,800 --> 00:30:21,460 mendapatkan paket yang tepat dan Apache, dan PHP, dan yang lainnya. 504 00:30:21,460 --> 00:30:26,950 Tapi ini sebenarnya mengambil index.php dan melakukan itu ke dalam wadah, 505 00:30:26,950 --> 00:30:28,210 ke dalam gambar. 506 00:30:28,210 --> 00:30:33,120 >> Jadi, jika Anda pergi ke depan dan menjalankan perintah dengan melakukan hal berikut, 507 00:30:33,120 --> 00:30:36,155 itu going-- sebenarnya, ini mungkin mengambil sedikit. 508 00:30:36,155 --> 00:30:40,870 509 00:30:40,870 --> 00:30:42,455 Mudah-mudahan itu tidak memakan waktu terlalu lama. 510 00:30:42,455 --> 00:30:45,129 511 00:30:45,129 --> 00:30:46,170 Sehingga Anda dapat melihat langkah-langkah. 512 00:30:46,170 --> 00:30:49,320 Dan saya mendorong Anda untuk pergi kembali ke rumah hari ini dan mencobanya. 513 00:30:49,320 --> 00:30:51,280 Dan Mano akan menjelaskan bagaimana tepatnya Anda melakukannya. 514 00:30:51,280 --> 00:30:57,810 Tapi itu benar-benar bagus untuk melihat persis apa yang terjadi di balik layar. 515 00:30:57,810 --> 00:31:02,420 Tapi itu ridiculously mudah untuk membangun gambar dan menempatkan mereka menggunakan Docker. 516 00:31:02,420 --> 00:31:12,170 517 00:31:12,170 --> 00:31:14,050 >> Itu mengambil sedikit lebih lama dari yang saya harapkan. 518 00:31:14,050 --> 00:31:29,085 519 00:31:29,085 --> 00:31:32,690 >> Mari kita lihat apa yang terjadi ketika you-- dingin. 520 00:31:32,690 --> 00:31:36,260 Jadi seperti yang Anda lihat, masing-masing langkah mewakili garis di Dockerfile. 521 00:31:36,260 --> 00:31:42,570 Dan itu menunjukkan di sini bahwa berhasil dibangun gambar ini. 522 00:31:42,570 --> 00:31:46,480 >> Jadi jika saya melakukan gambar docker, aku akan melihat semua gambar yang saya miliki secara lokal. 523 00:31:46,480 --> 00:31:52,160 Dan salah satu dari mereka disebut saya nama, dan nama gambar, 524 00:31:52,160 --> 00:31:56,050 dan tag representing-- terutama itu adalah tag versi. 525 00:31:56,050 --> 00:31:58,040 >> Jadi sekarang jika saya ingin menjalankan itu, saya lakukan buruh pelabuhan yang dikelola. 526 00:31:58,040 --> 00:32:06,040 527 00:32:06,040 --> 00:32:14,960 Dan saya hanya ingin melakukan -P -d. Apakah v1. 528 00:32:14,960 --> 00:32:18,500 Jadi saya bisa melihat sekarang bahwa saya memiliki dua kontainer berjalan, salah satu yang saya hanya 529 00:32:18,500 --> 00:32:21,230 menciptakan dan Halo yang Docker satu yang saya dapatkan terakhir. 530 00:32:21,230 --> 00:32:24,320 >> Dan Anda bisa lihat di sini bahwa ditugaskan port yang berbeda. 531 00:32:24,320 --> 00:32:30,710 Jadi jika saya pergi ke IP yang sama tetapi menetapkan sebuah port-- berbeda mudah-mudahan aku tidak. 532 00:32:30,710 --> 00:32:33,060 Jadi sekarang ini adalah aplikasi bahwa aku hanya dikerahkan. 533 00:32:33,060 --> 00:32:35,980 534 00:32:35,980 --> 00:32:43,900 >> Jika saya ingin membuat perubahan, saya cepat dapat mengedit kode sumber 535 00:32:43,900 --> 00:32:49,050 dan melakukan hal berikut. 536 00:32:49,050 --> 00:32:55,170 Mari kita lakukan halo Harvard. 537 00:32:55,170 --> 00:32:57,989 Jadi sekarang apa yang terjadi terjadi adalah bahwa saya 538 00:32:57,989 --> 00:32:59,905 akan tag dengan berbeda version-- oh, 539 00:32:59,905 --> 00:33:03,080 Bukankah ini guy-- tag dengan versi yang berbeda. 540 00:33:03,080 --> 00:33:05,735 Dan Anda akan see-- yang kalian harapkan 541 00:33:05,735 --> 00:33:11,020 untuk mengambil jumlah waktu yang sama untuk membangun kedua kalinya atau tidak? 542 00:33:11,020 --> 00:33:14,470 Baiklah, dan ada yang tahu mengapa? 543 00:33:14,470 --> 00:33:15,020 Bicaralah. 544 00:33:15,020 --> 00:33:16,350 >> AUDIENCE: [tidak terdengar] 545 00:33:16,350 --> 00:33:19,830 >> Nicola KABAR: Pada dasarnya kami hanya mengubah salah satu langkah kemudian. 546 00:33:19,830 --> 00:33:23,110 Dan karena itu akan menggunakan cache dan menggunakan masing-masing lapisan. 547 00:33:23,110 --> 00:33:27,080 Dan itu benar-benar beberapa fitur pembunuh Docker 548 00:33:27,080 --> 00:33:32,930 adalah bagaimana itu benar-benar memanfaatkan dan menggunakan kembali mengambil alih 549 00:33:32,930 --> 00:33:36,950 disk yang sama potongan yang tepat dari informasi. 550 00:33:36,950 --> 00:33:40,700 >> Jadi jika kita melakukan hal yang sama, hanya butuh beberapa detik. 551 00:33:40,700 --> 00:33:48,860 Jika kita ingin redeploy-- jadi sekarang Saya harus memiliki tiga kontainer. 552 00:33:48,860 --> 00:33:56,160 Tapi yang satu ini sedang disajikan pada the-- tujuh satu. 553 00:33:56,160 --> 00:33:58,860 Jadi sekarang itu wadah ketiga. 554 00:33:58,860 --> 00:34:02,580 Semua orang memahami apa yang baru saya lakukan di sini? 555 00:34:02,580 --> 00:34:06,320 >> Jadi jika Anda ingin berbagi ini kontainer nyata cepat dengan teman-teman Anda, 556 00:34:06,320 --> 00:34:14,840 Anda hanya dapat melakukan buruh pelabuhan mendorong nama wadah, mudah-mudahan. 557 00:34:14,840 --> 00:34:20,130 Jadi sekarang itu akan mendorongnya to-- Saya tidak masuk di sini. 558 00:34:20,130 --> 00:34:33,511 559 00:34:33,511 --> 00:34:34,219 Maaf tentang itu. 560 00:34:34,219 --> 00:34:39,219 Tapi aku tidak akan memecahkan masalah ini sekarang. 561 00:34:39,219 --> 00:34:42,780 Tapi pada dasarnya bahwa salah satu perintah hanya naik mendorongnya. 562 00:34:42,780 --> 00:34:45,670 Dan Anda akan dapat melihatnya jika Anda pergi ke Docker Hub 563 00:34:45,670 --> 00:34:48,587 Dan Anda login, Anda akan dapat melihatnya. 564 00:34:48,587 --> 00:34:50,420 Dan kemudian Anda bisa hanya menunjuk siapa pun yang akan 565 00:34:50,420 --> 00:34:52,750 untuk menggunakan gambar itu untuk pergi dan menariknya. 566 00:34:52,750 --> 00:34:55,460 Dan mereka dapat menggunakannya. 567 00:34:55,460 --> 00:34:57,760 >> Dengan itu, mudah-mudahan Aku agak menunjukkan 568 00:34:57,760 --> 00:35:01,230 betapa mudahnya untuk bekerja dengan Docker. 569 00:35:01,230 --> 00:35:06,610 Dan aku hanya akan mengembalikannya ke Mano. 570 00:35:06,610 --> 00:35:11,760 Dan dia akan mengambilnya dari sini. 571 00:35:11,760 --> 00:35:13,990 >> MANO MARKS: Baiklah Terima kasih, terima kasih Nico. 572 00:35:13,990 --> 00:35:18,700 573 00:35:18,700 --> 00:35:20,614 Jadi apa? 574 00:35:20,614 --> 00:35:24,410 Jadi salah satu hal yang saya ingin lakukan adalah mengumpulkan 575 00:35:24,410 --> 00:35:28,820 mengapa ini adalah important-- mengapa Docker dan mengapa 576 00:35:28,820 --> 00:35:33,000 kontainer tersebut pengembangan baru yang penting, 577 00:35:33,000 --> 00:35:36,890 cara baru benar-benar melakukan software. 578 00:35:36,890 --> 00:35:41,300 >> Dan sebelum saya lakukan, saya akan hanya memperkenalkan beberapa statistik. 579 00:35:41,300 --> 00:35:42,790 Aku tidak akan membaca semua ini. 580 00:35:42,790 --> 00:35:52,540 Tapi ini menunjukkan Anda banyak tentang bagaimana populer ini di masyarakat. 581 00:35:52,540 --> 00:35:56,310 Teknologi inti Docker adalah open source. 582 00:35:56,310 --> 00:36:03,560 Jadi itu Docker mesin, Compose, Swarm, banyak hal lain 583 00:36:03,560 --> 00:36:05,210 semua open source. 584 00:36:05,210 --> 00:36:10,590 Dan kami memiliki, apa yang saya mengatakan, 1.300 kontributor. 585 00:36:10,590 --> 00:36:15,630 Anda lihat sekarang, jika Anda melihat jumlah lowongan pekerjaan, terakhir kali 586 00:36:15,630 --> 00:36:19,640 kita melihat, itu sekitar 43.000 pekerjaan bukaan khusus menyebutkan 587 00:36:19,640 --> 00:36:22,230 keakraban dengan Docker. 588 00:36:22,230 --> 00:36:26,450 Ratusan jutaan gambar memiliki -download dari Docker Hub. 589 00:36:26,450 --> 00:36:31,870 Dan, juga, statistik jauh lebih besar. 590 00:36:31,870 --> 00:36:34,770 >> Bagi mereka yang ingin tahu, itu awalnya ditulis dengan Python 591 00:36:34,770 --> 00:36:37,730 dan kemudian ditulis ulang ke Go. 592 00:36:37,730 --> 00:36:40,320 Dan itu hanya berada membuka source-- itu hanya 593 00:36:40,320 --> 00:36:44,950 telah dirilis untuk sekitar 2 dan 1/2 tahun, yang berarti bahwa dalam 2 dan 1/2 tahun, 594 00:36:44,950 --> 00:36:48,020 kita telah melihat sejumlah besar pertumbuhan dan pentingnya 595 00:36:48,020 --> 00:36:50,190 ini di masyarakat. 596 00:36:50,190 --> 00:36:52,400 Dan jadi saya ingin berbicara sedikit tentang mengapa. 597 00:36:52,400 --> 00:36:54,940 598 00:36:54,940 --> 00:36:59,880 >> Jadi hanya untuk mengulangi beberapa Poin kunci Nico, Docker cepat. 599 00:36:59,880 --> 00:37:00,630 Hal ini portabel. 600 00:37:00,630 --> 00:37:02,500 Hal ini direproduksi. 601 00:37:02,500 --> 00:37:06,130 Dan itu membuat sebuah lingkungan yang standar. 602 00:37:06,130 --> 00:37:13,370 >> Dan-UMPC ini jelek saya membasmi monolit slide-- apa 603 00:37:13,370 --> 00:37:17,990 itu membantu orang lakukan, yang banyak industri perangkat lunak 604 00:37:17,990 --> 00:37:21,400 mulai melakukan di 2000-an, bergerak 605 00:37:21,400 --> 00:37:24,200 dari ini monolitik aplikasi tunggal 606 00:37:24,200 --> 00:37:28,590 di mana setiap ketergantungan harus diuji sebelum seluruh aplikasi memiliki 607 00:37:28,590 --> 00:37:31,280 akan dikerahkan, yang bisa berarti website 608 00:37:31,280 --> 00:37:36,240 hanya mendapat dikerahkan sekali setiap tiga bulan, atau lebih, 609 00:37:36,240 --> 00:37:42,650 untuk lebih layanan arsitektur berorientasi 610 00:37:42,650 --> 00:37:46,090 atau componentized jenis yang berbeda arsitektur aplikasi. 611 00:37:46,090 --> 00:37:48,610 Dan memungkinkan ini jenis arsitektur 612 00:37:48,610 --> 00:37:52,250 yang mengambil keuntungan dari Docker untuk berjalan dalam tiga ini 613 00:37:52,250 --> 00:37:58,450 daerah utama pembangunan, yang adalah pengembangan menulis kode yang sebenarnya Anda, 614 00:37:58,450 --> 00:38:00,140 menguji kode Anda, dan menggunakan itu. 615 00:38:00,140 --> 00:38:03,000 616 00:38:03,000 --> 00:38:05,420 >> Lalu mengapa ini penting? 617 00:38:05,420 --> 00:38:09,920 Jika Anda a-- membiarkan saya memberikan contoh. 618 00:38:09,920 --> 00:38:13,600 Jika Anda adalah sebuah situs web pengembang perangkat, Anda 619 00:38:13,600 --> 00:38:19,020 mengembangkan sebuah situs web yang didasarkan pada database yang dihasilkan David di sini. 620 00:38:19,020 --> 00:38:20,490 Maaf David, saya menelepon Anda. 621 00:38:20,490 --> 00:38:22,984 622 00:38:22,984 --> 00:38:24,900 Jika Anda ingin menyebarkan semuanya, Anda akan 623 00:38:24,900 --> 00:38:28,870 harus menunggu di bawah tradisional pengembangan perangkat lunak monolitik 624 00:38:28,870 --> 00:38:32,710 lingkungan, Anda akan harus menunggu sampai ia selesai dengan database 625 00:38:32,710 --> 00:38:36,030 sebelum Anda benar-benar bisa membuat perubahan ke website Anda. 626 00:38:36,030 --> 00:38:40,900 Anda harus memindahkan satu Seluruh aplikasi untuk melakukannya. 627 00:38:40,900 --> 00:38:45,490 >> Dan apa Docker membantu Anda lakukan adalah setiap orang bekerja pada komponen yang berbeda 628 00:38:45,490 --> 00:38:52,990 dan memperbarui mereka saat mereka pergi, hanya membuat memastikan bahwa antarmuka tetap sama. 629 00:38:52,990 --> 00:38:56,350 Jadi apa yang telah dilakukan adalah itu bergeser orang 630 00:38:56,350 --> 00:39:03,950 melakukan ini besar monolitik software architected yang 631 00:39:03,950 --> 00:39:07,610 dikerahkan setiap bulan untuk terus menerus integrasi dan pembangunan berkelanjutan 632 00:39:07,610 --> 00:39:08,490 lingkungan Hidup. 633 00:39:08,490 --> 00:39:12,580 >> Sekarang ini tidak unik untuk Docker, tapi Docker membuatnya jadi lebih mudah, 634 00:39:12,580 --> 00:39:16,620 yang berarti Anda pada dasarnya terus menyebarkan. 635 00:39:16,620 --> 00:39:20,690 Kami berbicara dengan perusahaan yang penggelaran aplikasi menghadapi publik 636 00:39:20,690 --> 00:39:30,180 ribuan kali sehari karena mereka melihat nilai di hanya membuat 637 00:39:30,180 --> 00:39:33,740 perubahan kecil, dan selama seperti berjalan melalui tes, 638 00:39:33,740 --> 00:39:35,900 membiarkannya pergi ke produksi. 639 00:39:35,900 --> 00:39:41,890 Nico selalu mengatakan padaku sebelumnya bahwa di banyak lingkungan, 640 00:39:41,890 --> 00:39:46,580 siklus hidup standar dari kontainer diukur dalam detik, 641 00:39:46,580 --> 00:39:50,460 sedangkan mesin virtual mungkin diukur dalam bulan. 642 00:39:50,460 --> 00:39:54,590 643 00:39:54,590 --> 00:39:58,690 >> Saya ingin mengambil sedikit mengubah sini karena aku 644 00:39:58,690 --> 00:40:00,170 di sebuah lembaga pendidikan. 645 00:40:00,170 --> 00:40:06,670 Saya ingin memberikan contoh bagaimana ini bekerja dalam penelitian pendidikan 646 00:40:06,670 --> 00:40:07,670 situasi. 647 00:40:07,670 --> 00:40:10,930 Jadi ada suatu organisasi disebut bioboxes. 648 00:40:10,930 --> 00:40:15,450 Bioboxes tidak DNA analisis bagi para peneliti. 649 00:40:15,450 --> 00:40:22,029 >> Sekarang apa yang mereka temukan adalah bahwa ketika sebuah researcher-- dan ini tidak 650 00:40:22,029 --> 00:40:24,070 kesalahan dari setiap tertentu researcher-- tapi ketika 651 00:40:24,070 --> 00:40:31,240 seorang peneliti dikerahkan algoritma untuk menganalisis, 652 00:40:31,240 --> 00:40:36,670 Dengan cara tertentu, sampel DNA, mereka akan menulis perangkat lunak, 653 00:40:36,670 --> 00:40:39,980 mempublikasikan itu, mungkin untuk GitHub atau tempat lain, 654 00:40:39,980 --> 00:40:42,680 dan kemudian mereka dilakukan. 655 00:40:42,680 --> 00:40:47,440 >> Nah masalahnya adalah bahwa hal itu tidak selalu direproduksi. 656 00:40:47,440 --> 00:40:51,610 Karena untuk memahami perangkat lunak, 657 00:40:51,610 --> 00:40:54,830 mereka akan mengatur untuk lingkungan pengembangan yang tepat 658 00:40:54,830 --> 00:41:00,460 bahwa peneliti yang digunakan, biasanya laptop mereka, atau server, atau data 659 00:41:00,460 --> 00:41:04,280 pusat bahwa mereka menggunakan. 660 00:41:04,280 --> 00:41:11,530 Dan akibatnya, itu sangat sulit untuk mereproduksi hasil penelitian saat 661 00:41:11,530 --> 00:41:16,910 menganalisis sampel DNA untuk melihat hal-hal seperti incidence-- 662 00:41:16,910 --> 00:41:23,830 membandingkan kejadian serangan jantung berdasarkan gen tertentu yang hadir, 663 00:41:23,830 --> 00:41:28,900 misalnya, atau risiko kanker, atau salah satu jenis lain dari hal-hal. 664 00:41:28,900 --> 00:41:33,900 >> Jadi apa yang mereka lakukan bukan adalah mereka mulai menciptakan wadah. 665 00:41:33,900 --> 00:41:39,380 Dan Anda dapat pergi ke bioboxes.org, itu sebuah organisasi yang besar. 666 00:41:39,380 --> 00:41:43,900 Dan apa yang mereka lakukan adalah mereka menghasilkan kontainer berdasarkan penelitian. 667 00:41:43,900 --> 00:41:46,840 Dan kemudian setiap kali seseorang mengirimkan dalam sampel mereka, mereka dapat menjalankannya. 668 00:41:46,840 --> 00:41:52,770 Dan memiliki semua lingkungan dibutuhkan untuk menjalankan algoritma yang 669 00:41:52,770 --> 00:41:55,370 dan menghasilkan hasil. 670 00:41:55,370 --> 00:41:58,250 Dan mereka menemukan bahwa mereka jauh lebih mungkin dan lebih 671 00:41:58,250 --> 00:42:01,300 lebih cepat dapat kembali hasil ke orang. 672 00:42:01,300 --> 00:42:06,860 >> Dan pada kenyataannya, apa yang orang lakukan menjalankan analisis mereka sendiri pada DNA, 673 00:42:06,860 --> 00:42:11,220 mengirimkan yang ke bioboxes, dan kemudian biobox hanya mengambil data, 674 00:42:11,220 --> 00:42:15,350 berjalan itu terhadap varietas kontainer yang berbeda 675 00:42:15,350 --> 00:42:19,030 untuk melihat hasil yang berbeda berdasarkan penelitian yang berbeda. 676 00:42:19,030 --> 00:42:21,860 Jadi itu adalah sangat kuat cara di mana peneliti 677 00:42:21,860 --> 00:42:28,070 dapat membuat satu contoh yang memungkinkan orang lain untuk mencoba dan mereproduksi 678 00:42:28,070 --> 00:42:28,650 hasil. 679 00:42:28,650 --> 00:42:31,710 680 00:42:31,710 --> 00:42:34,360 >> Jadi bagaimana Anda memulai? 681 00:42:34,360 --> 00:42:37,950 682 00:42:37,950 --> 00:42:39,800 Kami juga didukung pada Linux. 683 00:42:39,800 --> 00:42:43,070 Jadi jika Anda ingin menginstal apapun pada Linux, 684 00:42:43,070 --> 00:42:45,620 Anda menggunakan standar Anda manajer paket untuk menginstal. 685 00:42:45,620 --> 00:42:47,600 Jika Anda menggunakan Debian, itu get apt. 686 00:42:47,600 --> 00:42:50,500 CentOS adalah yum. 687 00:42:50,500 --> 00:42:53,500 Fedora Red Hat adalah rpm-- Saya tidak ingat. 688 00:42:53,500 --> 00:42:56,070 Pokoknya, itu semua ada. 689 00:42:56,070 --> 00:42:59,610 Kami mendukung berbagai besar dari distribusi Linux. 690 00:42:59,610 --> 00:43:01,150 Anda dapat memeriksa mereka. 691 00:43:01,150 --> 00:43:06,370 >> Kami juga memiliki pilihan sehingga Anda bisa berjalan pada Mac atau Windows. 692 00:43:06,370 --> 00:43:10,670 Sekarang Nico disebutkan sebelumnya bahwa itu hanya didukung pada Linux. 693 00:43:10,670 --> 00:43:18,180 Itu benar karena membutuhkan kernel Linux. 694 00:43:18,180 --> 00:43:20,540 Tapi, Anda dapat berjalan dalam mesin virtual. 695 00:43:20,540 --> 00:43:25,290 Dan apa Docker Toolbox tidak, yang dapat anda download, 696 00:43:25,290 --> 00:43:27,610 memberikan Anda bahwa mesin virtual. 697 00:43:27,610 --> 00:43:37,260 >> Jadi hanya cepat 48 kedua, saya pikir, men-download. 698 00:43:37,260 --> 00:43:40,670 Anda hanya mencari di Docker Toolbox, download ke Mac, 699 00:43:40,670 --> 00:43:43,910 dan bagian ini dari Tentu saja mempercepat karena yang 700 00:43:43,910 --> 00:43:47,620 ingin menonton sinyal-download? 701 00:43:47,620 --> 00:43:54,190 Instalasi standar Mac, dan kemudian Anda 702 00:43:54,190 --> 00:43:59,795 akan melihat Jerome dimasukkan ke dalam password. 703 00:43:59,795 --> 00:44:00,670 Itu sangat menarik. 704 00:44:00,670 --> 00:44:03,510 705 00:44:03,510 --> 00:44:06,230 Dan kemudian menginstal Seluruh sekelompok alat. 706 00:44:06,230 --> 00:44:10,010 Dan khususnya itu akan menginstal baris perintah. 707 00:44:10,010 --> 00:44:14,220 Dan kemudian Anda bisa melihat Jerome menguji gambar nya. 708 00:44:14,220 --> 00:44:19,050 709 00:44:19,050 --> 00:44:22,640 >> Dan kemudian berdasarkan ini, Anda dapat melihat bahwa YouTube 710 00:44:22,640 --> 00:44:27,420 berpikir bahwa Nico tertarik Star Wars, The Jimmy Kimmel acara, 711 00:44:27,420 --> 00:44:29,020 dan saya pikir Ellen. 712 00:44:29,020 --> 00:44:34,130 Saya pikir yang terakhir adalah klip dari acara Ellen. 713 00:44:34,130 --> 00:44:37,760 >> Jadi Docker Toolbox meskipun datang dengan lebih dari sekedar Mesin Docker. 714 00:44:37,760 --> 00:44:39,840 Jadi Docker Mesin adalah hal yang membantu 715 00:44:39,840 --> 00:44:43,710 Anda mengatur virtual mesin pada Windows Anda 716 00:44:43,710 --> 00:44:52,080 atau Mac-- kotak Windows atau Mac Anda box-- dan membantu Anda melakukan provisioning, 717 00:44:52,080 --> 00:44:54,040 >> Tetapi juga dilengkapi dengan Swarm dan Compose, 718 00:44:54,040 --> 00:45:00,840 yang dirancang untuk membantu Anda melakukan besar penyebaran skala aplikasi Anda. 719 00:45:00,840 --> 00:45:04,000 Jadi jika Anda ingin mengelola cluster node, 720 00:45:04,000 --> 00:45:08,450 cluster kontainer, Susun dan Swarm adalah cara untuk pergi tentang itu. 721 00:45:08,450 --> 00:45:11,430 >> Dan tentu saja datang dengan Docker Mesin dan Kitematic, 722 00:45:11,430 --> 00:45:13,250 yang merupakan GUI desktop. 723 00:45:13,250 --> 00:45:17,060 Saya juga harus menyebutkan Docker Registry, yang tidak termasuk dalam Toolbox, 724 00:45:17,060 --> 00:45:23,150 tapi itu adalah cara bagi Anda untuk menjalankan Anda sendiri pendaftar dari Docker Docker seperti Images 725 00:45:23,150 --> 00:45:28,970 Hub, tetapi Anda dapat juga hanya menggunakan Docker Hub sebagai cara untuk melakukan itu. 726 00:45:28,970 --> 00:45:32,955 >> Dan, twist plot, Anda melihat berjalan dalam sebuah wadah. 727 00:45:32,955 --> 00:45:34,830 Dan itulah bagaimana kami mendistribusikan slide kami. 728 00:45:34,830 --> 00:45:38,610 Seluruh presentasi ini sebenarnya dek HTML slide. 729 00:45:38,610 --> 00:45:43,170 Dan sedang berjalan dalam kontainer, yang bisa Anda dapatkan by-- 730 00:45:43,170 --> 00:45:45,596 >> Nicola KABAR: Ya, jadi berjalan penuh waktu di Max saya. 731 00:45:45,596 --> 00:45:47,540 Dan aku presentasi dari itu. 732 00:45:47,540 --> 00:45:50,910 Dan Anda hanya melakukan Docker setelah Anda menginstal Toolbox Anda. 733 00:45:50,910 --> 00:45:57,340 Anda hanya dapat melakukan buruh pelabuhan yang dikelola dan mendapatkannya, dan menggunakan slide. 734 00:45:57,340 --> 00:45:58,830 >> MANO mark: Dan itu saja. 735 00:45:58,830 --> 00:46:02,160 Jadi kami terima kasih semua untuk datang. 736 00:46:02,160 --> 00:46:03,990 Dan kami senang untuk menjawab pertanyaan. 737 00:46:03,990 --> 00:46:07,810 Saya harus menyebutkan sebelum orang daun ada T-shirt di sana. 738 00:46:07,810 --> 00:46:10,940 Maaf siapa saja yang menonton ini pada Livestream atau video, 739 00:46:10,940 --> 00:46:12,820 tapi kita harus Docker T-shirt di sana. 740 00:46:12,820 --> 00:46:16,250 Dan kita tahu siswa Docker, dan dalam pengalaman saya, 741 00:46:16,250 --> 00:46:18,940 profesor juga, seperti pakaian bebas. 742 00:46:18,940 --> 00:46:22,490 >> Jadi terima kasih untuk semua yang keluar. 743 00:46:22,490 --> 00:46:27,050 Dan mengikuti kami di Twitter jika Anda ingin, atau tidak. 744 00:46:27,050 --> 00:46:27,910 Saya tidak peduli. 745 00:46:27,910 --> 00:46:29,430 Juga ikuti Docker di Twitter. 746 00:46:29,430 --> 00:46:31,890 Itu juga menarik. 747 00:46:31,890 --> 00:46:32,990 Dan kemudian itu saja. 748 00:46:32,990 --> 00:46:33,490 Docker.com. 749 00:46:33,490 --> 00:46:35,410 Terima kasih. 750 00:46:35,410 --> 00:46:39,360 >> [TEPUK TANGAN] 751 00:46:39,360 --> 00:46:41,625