1 00:00:00,000 --> 00:00:05,042 >> [REPRODUCCIÓN DE MÚSICA] 2 00:00:05,042 --> 00:00:06,000 DAVID MALAN: De acuerdo. 3 00:00:06,000 --> 00:00:07,630 Muchas gracias por haber venido. 4 00:00:07,630 --> 00:00:11,850 Esta es CS50 seminario sobre Docker, un tecnología que nosotros mismos y CS50 Nosotros 5 00:00:11,850 --> 00:00:13,392 han comenzado a utilizar desde hace algún tiempo. 6 00:00:13,392 --> 00:00:15,766 Así que mi nombre es David Malan, I enseñar Introducción de Harvard 7 00:00:15,766 --> 00:00:16,671 de Ciencias de la Computación. 8 00:00:16,671 --> 00:00:18,670 Desde hace algún año, hemos estado dando a los estudiantes 9 00:00:18,670 --> 00:00:20,435 del lado del cliente descargable maquinas virtuales 10 00:00:20,435 --> 00:00:22,134 en la que lo hacen sus problemas conjuntos. 11 00:00:22,134 --> 00:00:24,300 Que ahora hemos hecho la transición a un entorno de nube 12 00:00:24,300 --> 00:00:27,396 que realmente utiliza esta tecnología llamado acoplable, de manera que todo el CS50 13 00:00:27,396 --> 00:00:29,270 los estudiantes ahora tienen su contenedores propios Docker 14 00:00:29,270 --> 00:00:31,180 que pronto se oye todo. 15 00:00:31,180 --> 00:00:33,740 >> Por otra parte, en el servidor del CS50 clúster lado, durante muchos años 16 00:00:33,740 --> 00:00:35,290 estábamos usando el servidor de la nube de Amazon. 17 00:00:35,290 --> 00:00:37,164 Estábamos corriendo individuo maquinas virtuales. 18 00:00:37,164 --> 00:00:40,330 Eso también, hemos empezado a hacer la transición a estas cosas llamadas contenedores Docker 19 00:00:40,330 --> 00:00:43,762 de modo que todas nuestras aplicaciones son ahora perfectamente aislados unos de otros. 20 00:00:43,762 --> 00:00:46,720 Así que por eso y más, me permitirá introducir nuestros amigos, Nico y Mano, 21 00:00:46,720 --> 00:00:48,574 de sí mismo Docker. 22 00:00:48,574 --> 00:00:49,740 NICOLA kabar: Gracias, David. 23 00:00:49,740 --> 00:00:51,410 Hola a todos. 24 00:00:51,410 --> 00:00:54,230 Mi nombre es Nico y esto es Mano. 25 00:00:54,230 --> 00:00:58,260 Somos de Docker. 26 00:00:58,260 --> 00:01:02,240 Vamos a estar hablando sobre-- dándole chicos una introducción a Docker, 27 00:01:02,240 --> 00:01:08,100 y espero que, hacia el final de esta charla usted puede darse cuenta 28 00:01:08,100 --> 00:01:12,890 cuánto puede usar médico oxalato su desarrollo de aplicaciones 29 00:01:12,890 --> 00:01:14,200 y despliegue. 30 00:01:14,200 --> 00:01:21,250 >> Por lo tanto, vamos a empezar de verdad rápida con un poco de información de fondo. 31 00:01:21,250 --> 00:01:22,750 Describa lo Docker se trata. 32 00:01:22,750 --> 00:01:25,490 ¿Como funciona? 33 00:01:25,490 --> 00:01:27,400 ¿Cómo es con arquitectura? 34 00:01:27,400 --> 00:01:29,360 Voy a estar haciendo algunas demostraciones. 35 00:01:29,360 --> 00:01:35,070 Y Mano va a ser que describe cómo se puede utilizar Docker 36 00:01:35,070 --> 00:01:37,720 y que le da pasos específicos cómo se puede empezar. 37 00:01:37,720 --> 00:01:41,490 >> Le agradecería si ustedes pueden sostener fuera de sus preguntas hacia el final. 38 00:01:41,490 --> 00:01:46,800 De esa manera, yo podría estar abordando los preguntas durante la presentación. 39 00:01:46,800 --> 00:01:52,150 Así que vamos a dejar algo de tiempo hacia el final de las preguntas. 40 00:01:52,150 --> 00:01:55,170 >> Así que muy rápido, que tiene En realidad nunca trabajado en Docker, 41 00:01:55,170 --> 00:01:56,850 como jugar con él? 42 00:01:56,850 --> 00:01:58,000 Impresionante. 43 00:01:58,000 --> 00:01:58,520 Guay. 44 00:01:58,520 --> 00:01:59,817 Excelente. 45 00:01:59,817 --> 00:02:01,525 Por lo tanto, voy a empezar con un poco de historia. 46 00:02:01,525 --> 00:02:04,350 47 00:02:04,350 --> 00:02:09,820 Así que allá por los años 90 y principios de 2000, básicamente 48 00:02:09,820 --> 00:02:16,940 como desarrolladores web, desarrolladores de aplicaciones, cuando iban a desplegar una aplicación 49 00:02:16,940 --> 00:02:19,350 que estaba atado al metal desnudo. 50 00:02:19,350 --> 00:02:20,860 Era un servidor. 51 00:02:20,860 --> 00:02:22,870 Era una sola aplicación. 52 00:02:22,870 --> 00:02:25,260 >> Tradicionalmente, un ejemplo sería como una pila LAMP, 53 00:02:25,260 --> 00:02:30,630 donde realmente había que abrir el conjunto de recursos. 54 00:02:30,630 --> 00:02:37,110 CPU, memoria, disco, red, instalación sistema operativo por encima de eso. 55 00:02:37,110 --> 00:02:40,060 Si usted está sirviendo algo, si en realidad estás teniendo servidor web, 56 00:02:40,060 --> 00:02:42,470 necesita algo así como Apache para servir. 57 00:02:42,470 --> 00:02:47,540 >> Si su aplicación necesidades de base de datos, de revés, 58 00:02:47,540 --> 00:02:50,840 usted instalar algo como MySQL, y así sucesivamente. 59 00:02:50,840 --> 00:02:55,910 Y si usted necesita el tiempo de ejecución, PHPS y el trabajo PHP Python estaban allí. 60 00:02:55,910 --> 00:02:59,480 Y así, de hecho, tuvimos que tomar esos pasos en orden 61 00:02:59,480 --> 00:03:02,060 para obtener su aplicación en funcionamiento. 62 00:03:02,060 --> 00:03:08,440 >> Si usted necesita más poder de cómputo que, básicamente tuvimos que llamar a tu chico Operaciones 63 00:03:08,440 --> 00:03:16,260 o chica para ir a acumular una nueva pieza de hardware, conéctelo, 64 00:03:16,260 --> 00:03:19,850 y usted tiene que repetir los procesos y otra vez. 65 00:03:19,850 --> 00:03:23,680 Así que este proceso fue relativamente caro. 66 00:03:23,680 --> 00:03:26,080 Fue sin duda muy lento. 67 00:03:26,080 --> 00:03:27,550 >> Era ineficiente. 68 00:03:27,550 --> 00:03:33,890 Y en muchos casos, su hardware fue subutilizado. 69 00:03:33,890 --> 00:03:38,830 Así, en los años 90 a finales de los años 2000 y principios, virtualización de hardware se encontró. 70 00:03:38,830 --> 00:03:42,475 Y como se puede ver aquí, en el imagen, básicamente lo que hicieron 71 00:03:42,475 --> 00:03:46,390 se abstrae de la piscina de recursos de hardware gratuitas 72 00:03:46,390 --> 00:03:49,680 y el tipo de los que se sirve a las capas superiores, 73 00:03:49,680 --> 00:03:52,360 en este caso, un cliente de sistema operativo. 74 00:03:52,360 --> 00:03:54,940 >> Y la idea de máquinas virtuales toparon 75 00:03:54,940 --> 00:03:59,110 y que realmente ayudó a la nube la computación tal como la conocemos hoy en día. 76 00:03:59,110 --> 00:04:02,730 Así que lo que quería decir que es puede ejecutar varias máquinas virtuales, que 77 00:04:02,730 --> 00:04:06,720 significaba varias pilas, múltiple aplicación en un mismo equipo físico. 78 00:04:06,720 --> 00:04:10,570 79 00:04:10,570 --> 00:04:16,440 >> Esto sin duda ayudó con el velocidad de despliegue de la aplicación. 80 00:04:16,440 --> 00:04:17,629 Definitivamente con los gastos. 81 00:04:17,629 --> 00:04:22,810 Usted no tiene que ir a pasar energía, tiempo y recursos para estante 82 00:04:22,810 --> 00:04:26,210 más servidores para llegar a más de cómputo. 83 00:04:26,210 --> 00:04:30,950 Y la velocidad de la realidad llevar los recursos arriba es mucho más rápido. 84 00:04:30,950 --> 00:04:31,450 Excelente. 85 00:04:31,450 --> 00:04:34,320 >> Así solucionamos hambre en el mundo, ¿no? 86 00:04:34,320 --> 00:04:36,390 No en realidad no. 87 00:04:36,390 --> 00:04:42,410 Así, la virtualización tanto como sea en realidad ayudó, abordar el problema, 88 00:04:42,410 --> 00:04:45,460 lo que realmente introdujo una gran cantidad de desafíos. 89 00:04:45,460 --> 00:04:49,210 El hipervisor definitivamente introducido una gran complejidad, 90 00:04:49,210 --> 00:04:53,820 el manejo de las que subyacen conjunto de recursos. 91 00:04:53,820 --> 00:04:57,910 >> Es más pesado en el sentido de que antes de que tenía un único sistema operativo que 92 00:04:57,910 --> 00:05:01,830 es como tres, cuatro conciertos en el disco. 93 00:05:01,830 --> 00:05:04,230 Ahora, si usted tiene 10 máquinas en un solo hardware 94 00:05:04,230 --> 00:05:09,060 usted tiene que multiplicar esa por el número de máquinas. 95 00:05:09,060 --> 00:05:11,440 Es definitivamente más caro en un sentido todavía 96 00:05:11,440 --> 00:05:14,430 que obtener licencias para la tecnología de virtualización 97 00:05:14,430 --> 00:05:18,210 si no es de código abierto. 98 00:05:18,210 --> 00:05:21,120 >> Pero, no vamos a tomar todas las crédito de la virtualización. 99 00:05:21,120 --> 00:05:27,530 Porque lo que pasa es que hay una gran cantidad de pilas y un montón de software 100 00:05:27,530 --> 00:05:33,900 tecnologías que se habilitaron por la rapidez con que fueron capaces de obtener 101 00:05:33,900 --> 00:05:38,040 a los recursos con el auge de la nube. 102 00:05:38,040 --> 00:05:46,675 >> Así, hoy en día una sola aplicación o servicio puede estar utilizando cualquiera de los siguientes tiempos de ejecución 103 00:05:46,675 --> 00:05:47,216 o bases de datos. 104 00:05:47,216 --> 00:05:50,250 105 00:05:50,250 --> 00:05:56,070 PHP, Python, MySQL, Redis, qué sé yo. 106 00:05:56,070 --> 00:05:59,740 Así que hay una gran cantidad de complejidad en este número de pilas para traer realidad hasta 107 00:05:59,740 --> 00:06:02,210 un único servicio. 108 00:06:02,210 --> 00:06:07,300 Y junto con eso, que tenía una gran cantidad de recursos o infraestructura subyacentes 109 00:06:07,300 --> 00:06:15,210 tipos de prueba de despliegue y, básicamente, tomar para la producción de estas aplicaciones 110 00:06:15,210 --> 00:06:16,900 que está en desarrollo. 111 00:06:16,900 --> 00:06:21,950 >> Sobre todo porque sus equipos tienen crecido trabajando en esas aplicaciones, 112 00:06:21,950 --> 00:06:25,310 hay un montón de complejidad y desafíos 113 00:06:25,310 --> 00:06:31,660 que fueron traídos a garantizar que el cycle-- básicamente aplicación 114 00:06:31,660 --> 00:06:34,040 ciclo de desarrollo, es en realidad éxito. 115 00:06:34,040 --> 00:06:40,440 Así, el hecho de que su aplicación está trabajando localmente en su local de VM 116 00:06:40,440 --> 00:06:47,480 no garantiza que su colega va a esperar los mismos resultados. 117 00:06:47,480 --> 00:06:51,330 >> Y cuando el equipo de operaciones es involucrados en tomar lo que tienes 118 00:06:51,330 --> 00:06:54,480 y su despliegue en la producción escala, también no hay garantía 119 00:06:54,480 --> 00:06:56,730 que eso es realmente va a suceder. 120 00:06:56,730 --> 00:07:00,900 Así que esto nos deja con una realidad big-- un montón de signos de interrogación, 121 00:07:00,900 --> 00:07:07,700 una gran cantidad de retos en realidad enfrentado de manera similar en los días. 122 00:07:07,700 --> 00:07:12,280 Y eso nos recordó la industria naviera. 123 00:07:12,280 --> 00:07:14,280 >> Así que la industria del transporte marítimo tenía una gran cantidad de bienes, 124 00:07:14,280 --> 00:07:16,190 como se puede ver en el lado izquierdo. 125 00:07:16,190 --> 00:07:19,840 Y en el lado derecho, hay un montón de, básicamente, 126 00:07:19,840 --> 00:07:22,160 maneras de enviar esas mercancías. 127 00:07:22,160 --> 00:07:26,040 ¿Y qué pasa con la familia personas se reunieron y dijeron: 128 00:07:26,040 --> 00:07:29,600 tenemos que estandarizar la forma en realidad nos enviamos esos bienes. 129 00:07:29,600 --> 00:07:33,280 Y bum, usted tiene la intermodal de contenedores de envío. 130 00:07:33,280 --> 00:07:38,970 >> Así que se pusieron de acuerdo sobre el más tamaños comunes para el contenedor. 131 00:07:38,970 --> 00:07:40,160 Cómo manejarlos. 132 00:07:40,160 --> 00:07:44,560 ¿Qué método exacto que necesita para cargarlos y descargarlos. 133 00:07:44,560 --> 00:07:49,590 Y por lo tanto, que realmente ayudado a la industria del transporte marítimo. 134 00:07:49,590 --> 00:07:55,250 Ahora más del 90% de enfoque transportado a nivel mundial están utilizando dichos contenedores. 135 00:07:55,250 --> 00:08:01,010 Y eso sin duda disminuye los gastos, así como 136 00:08:01,010 --> 00:08:03,400 los daños causados ​​por el envío. 137 00:08:03,400 --> 00:08:09,660 >> Así que tomamos el mismo modelo y nosotros aplicar el software de desarrollo de dos aplicaciones 138 00:08:09,660 --> 00:08:13,080 arquitectura, en el sentido de que la contenerización 139 00:08:13,080 --> 00:08:15,842 tomó la virtualización de un nivel. 140 00:08:15,842 --> 00:08:17,800 Así que en vez de hacer eso a nivel de hardware, 141 00:08:17,800 --> 00:08:22,060 se hizo más de un operativo virtualización a nivel de sistema. 142 00:08:22,060 --> 00:08:26,450 >> Y lo hacemos proporcionando a cada aplicación en su propio ligero, 143 00:08:26,450 --> 00:08:31,180 aislado, ejecutable, y portable, lo más importante, 144 00:08:31,180 --> 00:08:35,049 una manera de empaquetar en realidad todo lo que necesita para funcionar. 145 00:08:35,049 --> 00:08:36,100 En cualquier lugar se puede ejecutar. 146 00:08:36,100 --> 00:08:42,039 Así que, sin importar si se está ejecutando en entorno de desarrollo local, su producción 147 00:08:42,039 --> 00:08:44,490 medio ambiente, su puesta en escena o la prueba. 148 00:08:44,490 --> 00:08:47,700 No importa lo que subyace infraestructura está ahí, 149 00:08:47,700 --> 00:08:51,410 has tenido una aplicación de trabajo funcional. 150 00:08:51,410 --> 00:08:54,100 151 00:08:54,100 --> 00:09:01,800 >> Así que eso es exactamente lo que, básicamente, contenedores hacen a este problema. 152 00:09:01,800 --> 00:09:04,070 Abordan por envasado de tal manera 153 00:09:04,070 --> 00:09:09,490 que puede garantizar que se despliega éxito sin importar dónde vive. 154 00:09:09,490 --> 00:09:12,120 Así que si usted va como, Bob sigue siendo Aceptar. 155 00:09:12,120 --> 00:09:17,860 Si usted está confundido con lo que estoy diciendo, Voy a ser elaborar en eso. 156 00:09:17,860 --> 00:09:20,900 >> Entonces, ¿cómo lo hace en sí Docker caber en esta foto? 157 00:09:20,900 --> 00:09:26,335 Así Docker es una plataforma abierta fácilmente, destacar con facilidad, 158 00:09:26,335 --> 00:09:30,500 para construir la nave, correr, auto ligero portátil 159 00:09:30,500 --> 00:09:33,440 contenedores de aplicaciones suficientes en cualquier lugar. 160 00:09:33,440 --> 00:09:37,660 Así que si usted toma algo de esto hablar, por favor tome la siguiente. 161 00:09:37,660 --> 00:09:40,980 >> Si usted tiene su aplicación en ejecución a nivel local y que lo desarrolló 162 00:09:40,980 --> 00:09:45,930 en el uso de la plataforma Docker, le espera que pueda ser desplegado con éxito. 163 00:09:45,930 --> 00:09:49,380 No importa cuál es la infraestructura subyacente. 164 00:09:49,380 --> 00:09:53,830 Así que si usted tiene un Docker contenedor y que está funcionando, entonces 165 00:09:53,830 --> 00:09:58,130 siempre que hay un Docker motor en el otro side-- 166 00:09:58,130 --> 00:10:02,190 si su infraestructura de operación está usando cualquier nube, ya sea 167 00:10:02,190 --> 00:10:06,680 es AWS, o la de Google o Microsoft, o cualquiera de las nubes públicas, 168 00:10:06,680 --> 00:10:10,010 o su propia nube, o su pila abierta Nube, o en su entorno local. 169 00:10:10,010 --> 00:10:11,970 >> Si usted tiene un motor correr, que los medios 170 00:10:11,970 --> 00:10:14,537 Va a ser éxito desplegado allí. 171 00:10:14,537 --> 00:10:16,620 Va a estar en ejecución exactamente el mismo comportamiento 172 00:10:16,620 --> 00:10:21,480 como con arquitectura que sea. 173 00:10:21,480 --> 00:10:26,080 Así que si nos fijamos at-- estoy yendo que pasar por lo que en realidad 174 00:10:26,080 --> 00:10:29,160 están en los principales componentes de acoplable. 175 00:10:29,160 --> 00:10:31,060 >> Así motor está en el centro de Docker. 176 00:10:31,060 --> 00:10:32,770 Es el cerebro de. 177 00:10:32,770 --> 00:10:39,360 Se organiza la construcción, el transporte, y la implementación y administración 178 00:10:39,360 --> 00:10:41,570 los propios contenedores. 179 00:10:41,570 --> 00:10:45,160 Voy a cavar en lo que hace de motor en más detalles en un segundo. 180 00:10:45,160 --> 00:10:47,740 181 00:10:47,740 --> 00:10:51,720 Básicamente, porque el doctor se construyó alrededor de las arquitecturas cliente-servidor, 182 00:10:51,720 --> 00:10:56,630 por lo que con el fin de interactuar con el Motor que necesita algún tipo de cliente. 183 00:10:56,630 --> 00:11:01,200 >> Las imágenes son las plantillas en que los contenedores están construidos a partir de. 184 00:11:01,200 --> 00:11:06,800 Así que las imágenes son básicamente archivos simplemente estáticos. 185 00:11:06,800 --> 00:11:08,740 Plantillas y contenedores En realidad, es lo que hay 186 00:11:08,740 --> 00:11:12,280 se está ejecutando en tiempo de ejecución que está cumpliendo su aplicación 187 00:11:12,280 --> 00:11:15,150 o hacer algo con los datos. 188 00:11:15,150 --> 00:11:19,020 >> Registro se aborda como un problema de cómo usted distribuya imágenes. 189 00:11:19,020 --> 00:11:23,230 Así que si usted necesita compartir una imagen el que ha trabajado a su colega 190 00:11:23,230 --> 00:11:27,220 o al equipo de operaciones, que usarlo usando Registro. 191 00:11:27,220 --> 00:11:31,720 Puede descargar una fuente abierta versión de la misma que Docker trabajó en 192 00:11:31,720 --> 00:11:33,150 y abrir origen. 193 00:11:33,150 --> 00:11:38,040 >> O puede utilizar Docker ayuda, que es la versión de la nube 194 00:11:38,040 --> 00:11:40,130 empujar y tirar de las imágenes que hay. 195 00:11:40,130 --> 00:11:41,160 Eso es una cosa enorme. 196 00:11:41,160 --> 00:11:44,520 Porque hay una enorme ecosistema alrededor de Docker y es 197 00:11:44,520 --> 00:11:48,960 realmente en gran medida utilizando el concentrador. 198 00:11:48,960 --> 00:11:59,780 >> Así que para resumir aquí, así es como el minimalista cliente flujo de trabajo del estibador. 199 00:11:59,780 --> 00:12:04,040 Puede interactuar con el anfitrión, en este caso se trata de los demonios Docker. 200 00:12:04,040 --> 00:12:06,490 Es lo mismo que la del motor. 201 00:12:06,490 --> 00:12:09,690 Haces comandos como Docker construir, tirar, correr. 202 00:12:09,690 --> 00:12:14,280 Y el propio motor va y hace esas cosas. 203 00:12:14,280 --> 00:12:18,010 >> Así que, o interactúa con Registro para tirar de esas imágenes 204 00:12:18,010 --> 00:12:19,670 y las capas de las imágenes. 205 00:12:19,670 --> 00:12:25,030 Ya sea si desea implementar, ejecutar contenedores, los matan, tirarlos abajo, 206 00:12:25,030 --> 00:12:25,730 cualquier cosa. 207 00:12:25,730 --> 00:12:32,190 Así que esto resume el flujo de trabajo de todos estos componentes. 208 00:12:32,190 --> 00:12:34,710 >> Así que si usted toma todos los componente por sí mismo. 209 00:12:34,710 --> 00:12:37,690 Así motor, es sólo un demonio. 210 00:12:37,690 --> 00:12:40,800 Va a clase de jugar para apoyar en Linux porque lo hace 211 00:12:40,800 --> 00:12:44,380 requerir ciertas características del kernel de Linux. 212 00:12:44,380 --> 00:12:48,820 Pero Windows está trabajando en hacer lo mismo. 213 00:12:48,820 --> 00:12:53,720 Se supone que ser apoyado Windows Server 2016. 214 00:12:53,720 --> 00:13:01,500 >> Así, de nuevo, las responsabilidades con la motor es, o son para, construir imágenes. 215 00:13:01,500 --> 00:13:05,340 Tire de las imágenes de la Docker Hub o en su propio Registro. 216 00:13:05,340 --> 00:13:07,840 Si le hacen con esas imágenes o crear una nueva imagen, 217 00:13:07,840 --> 00:13:14,770 usted puede empujar los de vuelta al registro distribuirlos a otros equipos. 218 00:13:14,770 --> 00:13:18,300 >> Y tratando de contenerla localmente y gestionar el ciclo de vida de los envases 219 00:13:18,300 --> 00:13:19,260 en la zona. 220 00:13:19,260 --> 00:13:22,010 Está construido alrededor de la API HTTP REST. 221 00:13:22,010 --> 00:13:24,480 Así que técnicamente sea posible escribir su propio cliente 222 00:13:24,480 --> 00:13:31,650 siempre y cuando se utiliza HTTP, que es un muy mecanismo estándar para hablar con motor 223 00:13:31,650 --> 00:13:33,110 y un montón de otros servicios. 224 00:13:33,110 --> 00:13:35,780 Y se puede ver en aquí que, independientemente 225 00:13:35,780 --> 00:13:39,010 de lo que la infraestructura es decir, siempre y cuando usted can-- todo 226 00:13:39,010 --> 00:13:42,170 lo que necesita es un operativo sistema, Linux específicamente. 227 00:13:42,170 --> 00:13:45,460 >> Y usted puede instalar Docker Motor encima de eso y tenerlo funcionando 228 00:13:45,460 --> 00:13:48,970 y orquesta, en el fondo, todos estos aplicación uno, dos, 229 00:13:48,970 --> 00:13:51,530 y tres son contenedores reales. 230 00:13:51,530 --> 00:13:53,990 Así que eso es Engine. 231 00:13:53,990 --> 00:13:58,040 Como he mencionado antes, porque que necesita para interactuar con el motor, 232 00:13:58,040 --> 00:13:59,200 está el cliente. 233 00:13:59,200 --> 00:14:03,180 >> Pero en realidad cuando se instala Docker, se distribuye con él. 234 00:14:03,180 --> 00:14:06,110 Por lo que se instala, por lo que es un solo binario. 235 00:14:06,110 --> 00:14:11,830 Y usted puede hacer llamadas locales a su motor de Docker. 236 00:14:11,830 --> 00:14:14,040 O llamadas remotas a Motores remotas. 237 00:14:14,040 --> 00:14:16,600 238 00:14:16,600 --> 00:14:19,590 No utilice HTTP, como He mencionado antes. 239 00:14:19,590 --> 00:14:24,200 Hay un cliente GUI llamada Kitematic de Docker. 240 00:14:24,200 --> 00:14:26,390 Y hay duda un montón de otras personas 241 00:14:26,390 --> 00:14:29,740 que están construyendo una gran cantidad de GUIs que básicamente implementan 242 00:14:29,740 --> 00:14:32,980 algunos HTTP llama para hablar con motor. 243 00:14:32,980 --> 00:14:35,920 244 00:14:35,920 --> 00:14:39,280 >> Sólo algunos comandos de ejemplo. 245 00:14:39,280 --> 00:14:44,620 Si lo hace la versión Docker, lo haría le mostrará la versión del cliente, así como 246 00:14:44,620 --> 00:14:47,030 la versión del servidor. 247 00:14:47,030 --> 00:14:49,500 Si lo haces información Docker lo hará decirle toda la información 248 00:14:49,500 --> 00:14:54,300 acerca de cuántos contenedores se están ejecutando o creados, la cantidad de imágenes que tiene, 249 00:14:54,300 --> 00:14:56,530 Y así sucesivamente y así sucesivamente. 250 00:14:56,530 --> 00:15:01,850 >> Aquí tengo, en el lado de última caja, tengo doctor plazo. 251 00:15:01,850 --> 00:15:04,970 Así que eso es lo que soy en realidad la creación de contenedor. 252 00:15:04,970 --> 00:15:08,960 Y le doy a hacerse eco Hello World y dormir por un segundo y todo eso. 253 00:15:08,960 --> 00:15:12,830 Y usted puede ver el resultado. Así que es permanente. 254 00:15:12,830 --> 00:15:16,930 Y al igual que Linux ps, se puede ver todos los procesos y, en este caso, 255 00:15:16,930 --> 00:15:18,540 todos los contenedores de funcionamiento. 256 00:15:18,540 --> 00:15:23,430 Volver refiriéndose de este uno el contenedor que acaba de crear. 257 00:15:23,430 --> 00:15:27,560 >> Por lo tanto, esto es muy importante porque, como, puede ser un poco confuso. 258 00:15:27,560 --> 00:15:33,050 Así que las imágenes son de sólo lectura del colección de archivos, ¿verdad? 259 00:15:33,050 --> 00:15:37,000 Son lo que nuestro contenedor se basa en. 260 00:15:37,000 --> 00:15:40,340 Pero ellos sólo están de sólo lectura. 261 00:15:40,340 --> 00:15:44,330 Así que empiezas una imagen base con. 262 00:15:44,330 --> 00:15:50,180 Se tiende a imitar-OS como, por lo Ubuntu, CentOS, imagen base que sea. 263 00:15:50,180 --> 00:15:53,990 Y a continuación, se inicia la construcción en la parte superior de la que, ciertas capas, que conformarán 264 00:15:53,990 --> 00:16:00,010 su imagen final, el resultado final aquí. 265 00:16:00,010 --> 00:16:03,220 >> Y cada una de esas capas debe tener una imagen de matriz 266 00:16:03,220 --> 00:16:06,690 que hace referencia cuando se realmente quiere crear. 267 00:16:06,690 --> 00:16:09,922 Ellos son inmutables, en el sentido que de sólo lectura porque están, 268 00:16:09,922 --> 00:16:11,630 usted no puede realmente realizar cambios en ellos. 269 00:16:11,630 --> 00:16:17,540 Usted las puede utilizar para crear un contenedor de una imagen, que 270 00:16:17,540 --> 00:16:23,530 llamará a todos la subsiguiente imágenes necesarias por debajo de ella. 271 00:16:23,530 --> 00:16:26,400 >> Puede realizar cambios a una capa diferente, 272 00:16:26,400 --> 00:16:28,810 que es una capa de reescritura voy hablar en un segundo. 273 00:16:28,810 --> 00:16:31,350 Pero cada una de esas capas Nunca se cambian. 274 00:16:31,350 --> 00:16:34,300 275 00:16:34,300 --> 00:16:38,670 Básicamente imágenes usan algo llama Unión Sistema, UFS archivo. 276 00:16:38,670 --> 00:16:42,280 Y no son diferentes de almacenamiento backends que utilizan esta tecnología. 277 00:16:42,280 --> 00:16:49,430 Y lo que eso significa es que reúne a los sistemas de archivos distintos 278 00:16:49,430 --> 00:16:51,190 para que se vean como uno. 279 00:16:51,190 --> 00:16:54,460 >> Así que en realidad se puede, a partir de una perspectiva de la aplicación, 280 00:16:54,460 --> 00:16:59,570 usted tiene una parte superior de una vista que muestra todos los diferentes sistema de archivos necesario 281 00:16:59,570 --> 00:17:01,120 para que la aplicación se ejecute. 282 00:17:01,120 --> 00:17:04,400 Pero en realidad son, en esto, en realidad son en lugares separados 283 00:17:04,400 --> 00:17:06,410 y siendo utilizado por otros recipientes, así. 284 00:17:06,410 --> 00:17:09,569 285 00:17:09,569 --> 00:17:14,410 >> Así como se puede ver aquí que si empezamos imagen daemon con 286 00:17:14,410 --> 00:17:18,619 como una imagen de base, y luego entramos y añadimos [? emacs?] 287 00:17:18,619 --> 00:17:20,720 y entonces eso es otra capa. 288 00:17:20,720 --> 00:17:21,916 Y a continuación, añadir Apache. 289 00:17:21,916 --> 00:17:22,790 Esa es otra capa. 290 00:17:22,790 --> 00:17:25,470 Y luego pasamos la contenedor de eso. 291 00:17:25,470 --> 00:17:29,760 Cada una de esas imágenes, cada una de esas capas, 292 00:17:29,760 --> 00:17:35,530 es distinto y puede ser reutilizados por otros contenedores. 293 00:17:35,530 --> 00:17:40,070 >> Si nos fijamos en los propios contenedores, que son de alguna manera como VM-como, 294 00:17:40,070 --> 00:17:41,930 pero no se trata al mismo tiempo. 295 00:17:41,930 --> 00:17:49,180 Por lo tanto, no tienen, técnicamente, la sistema operativo completo debajo de ellos. 296 00:17:49,180 --> 00:17:52,630 Utilizan el único kernel del sistema operativo host. 297 00:17:52,630 --> 00:17:54,440 Y ellos se basan en la parte superior. 298 00:17:54,440 --> 00:17:56,250 Ellos imitan en su apariencia. 299 00:17:56,250 --> 00:18:00,710 Ellos imitan sus archivos raíz sistema del sistema operativo. 300 00:18:00,710 --> 00:18:04,930 Pero en realidad no se replican. 301 00:18:04,930 --> 00:18:12,080 >> Así, en lugar de tener capas inmutables, la última capa, que es el contenedor 302 00:18:12,080 --> 00:18:14,690 sí, es una capa de lectura y escritura. 303 00:18:14,690 --> 00:18:17,350 Eso también se ejecuta los procesos de su solicitud. 304 00:18:17,350 --> 00:18:23,530 Y depende de las capas subyacentes. 305 00:18:23,530 --> 00:18:26,730 Cada contenedor es creado a partir de una imagen. 306 00:18:26,730 --> 00:18:32,450 Y esa imagen puede ser un solo capa o imagen de múltiples capas. 307 00:18:32,450 --> 00:18:37,200 >> Y quiero señalar aquí Docker que utiliza en gran medida, 308 00:18:37,200 --> 00:18:40,370 o se basa en el mecanismo de Copy-on-Write. 309 00:18:40,370 --> 00:18:44,350 Así que, en realidad, si no está realizar cambios en el recipiente, 310 00:18:44,350 --> 00:18:45,930 que no va a tener espacio extra. 311 00:18:45,930 --> 00:18:49,600 Así que eso es básicamente cómo resumir un Copy-on-Write. 312 00:18:49,600 --> 00:18:53,820 Se va a acelerar definitivamente hasta el tiempo de arranque para el contenedor. 313 00:18:53,820 --> 00:18:56,300 Porque si usted no está haciendo cambios en el recipiente, 314 00:18:56,300 --> 00:18:57,800 está utilizando lo que ya está allí. 315 00:18:57,800 --> 00:19:01,130 316 00:19:01,130 --> 00:19:02,955 >> Entonces, ¿cómo funciona realmente. 317 00:19:02,955 --> 00:19:06,920 318 00:19:06,920 --> 00:19:14,240 Parte de ella es como, en este momento, utiliza al menos dos kernel clave 319 00:19:14,240 --> 00:19:14,820 caracteristicas. 320 00:19:14,820 --> 00:19:17,660 Y eso es básicamente lo que creado ese nivel de aislamiento 321 00:19:17,660 --> 00:19:19,550 para los propios contenedores. 322 00:19:19,550 --> 00:19:22,290 Esas características son espacios de nombres y cgroups. 323 00:19:22,290 --> 00:19:29,870 Así que los espacios de nombres son una manera de crear recursos aislados, 324 00:19:29,870 --> 00:19:36,290 de modo que dentro del propio recipiente, Sólo se puede ver ciertos recursos. 325 00:19:36,290 --> 00:19:40,030 Tales como la interfaz de red o los determinados usuarios o lo que sea. 326 00:19:40,030 --> 00:19:44,160 >> Y esos son accesibles solamente y sólo accesible dentro del recipiente. 327 00:19:44,160 --> 00:19:48,290 Cgroup en los otros límites laterales cómo utilizar esos recursos. 328 00:19:48,290 --> 00:19:50,950 CPU, la memoria, y el disco. 329 00:19:50,950 --> 00:19:53,900 Cuando usted puede entrar, me significa esos son en realidad 330 00:19:53,900 --> 00:19:57,410 características que se desarrollaron por-- que son parte del núcleo de Linux. 331 00:19:57,410 --> 00:20:01,800 Así que no se reinventan ni está recreado por Docker. 332 00:20:01,800 --> 00:20:03,770 Docker los utiliza. 333 00:20:03,770 --> 00:20:05,560 >> Lo que realmente tenía Médico aquí es en realidad 334 00:20:05,560 --> 00:20:08,680 creación orquestada espacios de nombres para cada contenedor 335 00:20:08,680 --> 00:20:13,320 y la creación de los cgroups para que sea ridículamente fácil crear contenedores 336 00:20:13,320 --> 00:20:14,870 utilizando esas características. 337 00:20:14,870 --> 00:20:22,910 Por supuesto, como he descrito anteriormente, la Unión File Systems y copy-on-write verdad 338 00:20:22,910 --> 00:20:26,810 ayudar a la velocidad y el disco utilización de los contenedores. 339 00:20:26,810 --> 00:20:28,917 >> Y una vez que obtenga su manos alrededor de Docker, 340 00:20:28,917 --> 00:20:32,000 vas a ver lo rápido que es de hecho girar contenedores y lágrima 341 00:20:32,000 --> 00:20:32,500 ellos abajo. 342 00:20:32,500 --> 00:20:36,060 343 00:20:36,060 --> 00:20:40,230 Así pues, si usted puede preguntar, ¿cómo puede en realidad se construye imágenes? 344 00:20:40,230 --> 00:20:45,940 Construimos imágenes por un proceso de creación contenedores y hacer cambios, alterar 345 00:20:45,940 --> 00:20:50,220 ellos, y los entregaba para convertirse en una imagen. 346 00:20:50,220 --> 00:20:54,330 >> Así que es un pollo y referencia huevo aquí, 347 00:20:54,330 --> 00:20:57,350 porque todos los recipientes vienen a partir de imágenes e imágenes vienen 348 00:20:57,350 --> 00:21:00,270 cometidos de los contenedores, en la mayor parte. 349 00:21:00,270 --> 00:21:03,830 Hay tres opciones para crear imágenes. 350 00:21:03,830 --> 00:21:06,580 Voy a describir el primero y el último. 351 00:21:06,580 --> 00:21:10,060 Usted puede manualmente ir y ejecutar el contenedor 352 00:21:10,060 --> 00:21:14,280 y hacer esos cambios, igual que lo haría en cualquier VM 353 00:21:14,280 --> 00:21:17,060 o cualquier sistema operativo, tales como la instalación de nuevos binarios, 354 00:21:17,060 --> 00:21:19,370 añadir sistemas de archivos, y otras cosas. 355 00:21:19,370 --> 00:21:22,620 >> Y luego se sale, como se puede ver allí. 356 00:21:22,620 --> 00:21:24,330 Estoy de salir de mi contenedor. 357 00:21:24,330 --> 00:21:26,050 Y entonces yo estoy haciendo Docker cometió. 358 00:21:26,050 --> 00:21:28,390 Y estoy cometiendo eso. 359 00:21:28,390 --> 00:21:31,560 Usted puede ver que el número aquí es sólo un UUID, o el primer 12 360 00:21:31,560 --> 00:21:32,810 bits del UUID. 361 00:21:32,810 --> 00:21:34,320 O bytes del UUID. 362 00:21:34,320 --> 00:21:35,770 Y entonces yo estoy llamando a mi imagen. 363 00:21:35,770 --> 00:21:39,510 Así que ahora Docker se encarga de grabación de todo lo que hice 364 00:21:39,510 --> 00:21:42,830 y la creación de la nueva imagen basada en eso. 365 00:21:42,830 --> 00:21:47,080 366 00:21:47,080 --> 00:21:52,560 >> No voy a hablar de tarball, pero hay una manera de conseguir una sola, 367 00:21:52,560 --> 00:21:58,200 crear una sola, o hacer un solo imagen de la capa usando bolas de alquitrán. 368 00:21:58,200 --> 00:22:02,650 Lo que voy a hablar de esto y lo que se utiliza sobre todo hoy en día, 369 00:22:02,650 --> 00:22:03,270 es Dockerfile. 370 00:22:03,270 --> 00:22:07,260 ¿Qué es, técnicamente, el primero paso automatizado por sí mismo acoplable. 371 00:22:07,260 --> 00:22:11,920 Así Dockerfiles son las cosas que usted es vamos a ver en un montón de repos GitHub 372 00:22:11,920 --> 00:22:13,150 Este Dia. 373 00:22:13,150 --> 00:22:16,420 Es básicamente un archivo de texto que describe 374 00:22:16,420 --> 00:22:19,780 exactamente cómo construir una imagen. 375 00:22:19,780 --> 00:22:25,540 >> Y por cada línea, se crea en realidad el contenedor, se ejecuta esa línea, 376 00:22:25,540 --> 00:22:30,480 comete ese contenedor en una nueva imagen, y que, básicamente, 377 00:22:30,480 --> 00:22:36,160 usarlo para todas las operaciones posteriores hasta llegar a la última imagen. 378 00:22:36,160 --> 00:22:39,260 Lo cual es básicamente el terminar objetivo aquí, al final. 379 00:22:39,260 --> 00:22:42,420 Y después de que exec-- después escribir su Dockerfile, que 380 00:22:42,420 --> 00:22:46,750 es puramente en el texto, usted hace una Docker construir y el nombre de la imagen. 381 00:22:46,750 --> 00:22:50,000 >> Y usted señala en aquel que es donde el Dockerfile es al. 382 00:22:50,000 --> 00:22:56,570 Y usted puede esperar ver mi imagen como una imagen que tiene a nivel local. 383 00:22:56,570 --> 00:22:59,100 Así que eso es sólo una visual ejemplo de lo que sucede. 384 00:22:59,100 --> 00:23:00,820 Empiezas una imagen base con. 385 00:23:00,820 --> 00:23:05,150 Corres que en un recipiente que no altera la imagen de base en sí. 386 00:23:05,150 --> 00:23:08,310 Pero en vez crea una reescribir la capa en la parte superior de la misma 387 00:23:08,310 --> 00:23:10,340 donde se hacen los cambios, en el que te comprometes 388 00:23:10,340 --> 00:23:15,050 y se repite el proceso hasta que llegue a su imagen final. 389 00:23:15,050 --> 00:23:20,980 >> Y al hacerlo, cada dos acumulación proceso puede utilizar las mismas capas 390 00:23:20,980 --> 00:23:23,870 y la same-- básicamente Docker almacena en caché esas capas. 391 00:23:23,870 --> 00:23:30,040 Así que si yo estoy haciendo lo mismo exacta proceso, pero en lugar de instalar PHP, 392 00:23:30,040 --> 00:23:31,540 Estoy instalando Python. 393 00:23:31,540 --> 00:23:34,210 Se va a utilizar Apache y Ubuntu. 394 00:23:34,210 --> 00:23:39,570 Así que de esa manera se está utilizando el disco. 395 00:23:39,570 --> 00:23:42,330 Está utilizando la caché y las imágenes disponibles allí. 396 00:23:42,330 --> 00:23:45,320 397 00:23:45,320 --> 00:23:48,840 >> La pieza final es del Registro, que es la forma de distribuir sus imágenes. 398 00:23:48,840 --> 00:23:52,710 Y, como he mencionado antes, hay una versión de la nube de la misma, 399 00:23:52,710 --> 00:23:54,290 que es acoplable de concentradores. 400 00:23:54,290 --> 00:23:57,550 Usted puede ir y explorar una gran cantidad de, básicamente, 401 00:23:57,550 --> 00:24:04,900 es un producto SAS pública que usted todavía puede tener imágenes privadas, 402 00:24:04,900 --> 00:24:06,590 pero hay una gran cantidad de imágenes públicas. 403 00:24:06,590 --> 00:24:10,580 En realidad es ilimitado, puede empujar imágenes públicas ilimitadas allí. 404 00:24:10,580 --> 00:24:13,730 Y esto es como se puede colaborar con su equipo. 405 00:24:13,730 --> 00:24:17,159 >> Usted sólo puede señalarlos en usted Repo y pueden descargarlo o su imagen 406 00:24:17,159 --> 00:24:18,200 y pueden descargarlo. 407 00:24:18,200 --> 00:24:21,140 408 00:24:21,140 --> 00:24:24,990 Así que basta con la charla. 409 00:24:24,990 --> 00:24:29,110 ¿Quién quiere ver algunas demos realmente rápido? 410 00:24:29,110 --> 00:24:31,330 Correcto. 411 00:24:31,330 --> 00:24:34,050 Así que aquí lo que tengo. 412 00:24:34,050 --> 00:24:37,480 Ca ustedes ver a mi pantalla? 413 00:24:37,480 --> 00:24:38,390 Correcto. 414 00:24:38,390 --> 00:24:45,810 >> Así que tengo Docker correr aquí, así que puede comprobar es-- Esta es la versión 415 00:24:45,810 --> 00:24:47,510 de Docker que se está ejecutando. 416 00:24:47,510 --> 00:24:49,320 Puede hacer información Docker. 417 00:24:49,320 --> 00:24:55,730 Revise toda la información sobre el número de imágenes que tienen, y así sucesivamente y así sucesivamente. 418 00:24:55,730 --> 00:24:58,890 Docker PS, no hay nada en marcha. 419 00:24:58,890 --> 00:25:00,570 Concatenado ellos. 420 00:25:00,570 --> 00:25:06,370 >> Así que lo primero que quiero hacer es espectáculo cómo se puede ejecutar fácilmente un contenedor. 421 00:25:06,370 --> 00:25:09,350 Así que la belleza sobre Médico plazo, si en realidad 422 00:25:09,350 --> 00:25:14,700 no encuentra una imagen a nivel local, por defecto se habla con el doctor Hub 423 00:25:14,700 --> 00:25:17,240 y trata de encontrar allí y las descargas por usted. 424 00:25:17,240 --> 00:25:22,820 Por lo tanto, incluye una Docker comando tirar, naturalmente. 425 00:25:22,820 --> 00:25:26,130 >> Así que si hago un Docker plazo, hola-mundo. 426 00:25:26,130 --> 00:25:28,890 427 00:25:28,890 --> 00:25:31,200 Así, primero se va para tratar de localizarlo. 428 00:25:31,200 --> 00:25:36,140 De lo contrario, como se puede ver aquí, no podía encontrar a nivel local. 429 00:25:36,140 --> 00:25:41,830 Ahora mismo sólo sacó dos capas eso hizo que la imagen y me lo pasó. 430 00:25:41,830 --> 00:25:45,440 El mundo hola es básicamente salidas, lo que has hecho. 431 00:25:45,440 --> 00:25:47,680 Así que este es el más fácil, uno de los ejemplos más fáciles. 432 00:25:47,680 --> 00:25:53,840 Así que en realidad yo sólo corrí y terminado el recipiente bien rápido. 433 00:25:53,840 --> 00:25:59,500 >> Si quiero run-- y por cierto, si Quiero momento en que, para que lo sepas, 434 00:25:59,500 --> 00:26:03,572 este es el tiempo que tarda en de hecho girar y contenerlo. 435 00:26:03,572 --> 00:26:05,030 Estamos midiendo en milisegundos. 436 00:26:05,030 --> 00:26:10,600 Así se puede ver lo mucho que esto puede realmente ayudará no sólo en las pruebas, 437 00:26:10,600 --> 00:26:13,200 sino también incluso despliegue. 438 00:26:13,200 --> 00:26:17,221 Así que eso es una nota rápida sobre eso. 439 00:26:17,221 --> 00:26:18,970 Lo siguiente que soy vamos a hacer es en realidad 440 00:26:18,970 --> 00:26:21,930 ejecutar una imagen que ya he preparado. 441 00:26:21,930 --> 00:26:24,460 Así ventana acoplable plazo. 442 00:26:24,460 --> 00:26:27,240 -d es sólo una bandera para decir que se ejecute en segundo plano. 443 00:26:27,240 --> 00:26:30,290 Y -p asigna ciertos puertos. 444 00:26:30,290 --> 00:26:32,670 Porque por defecto, el contenedores están aisladas, 445 00:26:32,670 --> 00:26:36,080 lo que tiene que especificar exactamente cómo se puede acceder a ellos. 446 00:26:36,080 --> 00:26:41,150 Y en este caso, yo estoy diciendo Docker para asignar un puerto aleatorio en el host 447 00:26:41,150 --> 00:26:44,560 a un puerto especificado dentro el propio recipiente. 448 00:26:44,560 --> 00:26:47,130 449 00:26:47,130 --> 00:26:56,460 Y eso es básicamente donde el image-- espero que esto es la correcta. 450 00:26:56,460 --> 00:27:01,780 >> Así lo hace descargas paralelas cada una de esas capas como se puede ver aquí. 451 00:27:01,780 --> 00:27:06,949 Esas son de las capas haciendo la imagen final que he construido. 452 00:27:06,949 --> 00:27:08,115 Va a tomar un segundo. 453 00:27:08,115 --> 00:27:11,290 454 00:27:11,290 --> 00:27:12,370 Y voilá. 455 00:27:12,370 --> 00:27:16,590 >> Así que ahora si hago un ps estibador, que debería ver algo que se está ejecutando. 456 00:27:16,590 --> 00:27:22,250 Debería ver el ID, la imagen que este se basa apagado, 457 00:27:22,250 --> 00:27:23,880 y el comando que fue ejecutado. 458 00:27:23,880 --> 00:27:28,720 Y la forma de acceder a ella es básicamente vas a ese puerto. 459 00:27:28,720 --> 00:27:33,240 Así que me voy a ir a-- este es que estoy corriendo en AWS. 460 00:27:33,240 --> 00:27:37,150 Voy a ir a 32,769. 461 00:27:37,150 --> 00:27:37,650 Vaya. 462 00:27:37,650 --> 00:27:40,495 463 00:27:40,495 --> 00:27:41,120 Y aquí vamos. 464 00:27:41,120 --> 00:27:44,550 >> Así que esto es en realidad un servicio web que muestra 465 00:27:44,550 --> 00:27:46,240 cuyo contenedor está siendo sirve de. 466 00:27:46,240 --> 00:27:50,450 Así se puede ver que es de A9F contenedor. 467 00:27:50,450 --> 00:27:52,850 Y aquí se trata de la nombre del contenedor. 468 00:27:52,850 --> 00:27:56,550 Así que ustedes pueden ver lo rápido que era en realidad no sólo tirar, sino también 469 00:27:56,550 --> 00:28:00,440 implementar este contenedor. 470 00:28:00,440 --> 00:28:05,070 >> Ahora el siguiente paso es buscar en Dockerfiles 471 00:28:05,070 --> 00:28:09,430 y cómo podemos realmente construir nuevas imágenes. 472 00:28:09,430 --> 00:28:15,250 Yo sólo voy a ir a buscar el clon, un MUESTRA Dockerfile basado en el anterior 473 00:28:15,250 --> 00:28:17,755 diagrama, el de Apache y PHP. 474 00:28:17,755 --> 00:28:26,740 475 00:28:26,740 --> 00:28:28,140 Ojalá me acuerdo de mi repo. 476 00:28:28,140 --> 00:28:36,410 477 00:28:36,410 --> 00:28:38,750 >> Así que tengo mi repositorio en este momento. 478 00:28:38,750 --> 00:28:43,080 Y vas a ver esto mucho en realidad. 479 00:28:43,080 --> 00:28:45,110 No me instalo árbol. 480 00:28:45,110 --> 00:28:48,700 >> Así que, básicamente vas a ver cómo la documentación de código fuente en torno 481 00:28:48,700 --> 00:28:51,240 y, a continuación Dockerfile en una cómo empaquetar en realidad. 482 00:28:51,240 --> 00:28:57,970 Así que es sólo una muestra de PHP que se hace eco CS50 hola. 483 00:28:57,970 --> 00:29:01,550 >> Así que si quiero ejecutarlo, Haré acumulación ventana acoplable. 484 00:29:01,550 --> 00:29:03,370 Tengo que construir primero. 485 00:29:03,370 --> 00:29:12,420 Voy a nombrarlo demo_cs50. 486 00:29:12,420 --> 00:29:16,470 Y usted necesita una etiqueta a ella también. 487 00:29:16,470 --> 00:29:19,802 Así que vamos a llamarlo v1 dot. 488 00:29:19,802 --> 00:29:21,760 Así como he descrito antes, lo que estoy haciendo hoy 489 00:29:21,760 --> 00:29:26,840 es que estoy diciendo Docker ir uso que-- realidad, lo siento, mi mal. 490 00:29:26,840 --> 00:29:29,450 491 00:29:29,450 --> 00:29:32,500 No tomamos un vistazo en la propia Dockerfile. 492 00:29:32,500 --> 00:29:39,020 Así que las únicas cosas de aquí están index.php, así como el archivo Léame 493 00:29:39,020 --> 00:29:39,810 y un Dockerfile. 494 00:29:39,810 --> 00:29:44,600 >> Así que si usted echa un vistazo a el Dockerfile, por lo que es 495 00:29:44,600 --> 00:29:47,150 muy similar a lo He descrito anteriormente. 496 00:29:47,150 --> 00:29:51,220 Es sólo un montón de pasos que ejecuta Docker 497 00:29:51,220 --> 00:29:56,330 mediante la creación y derribar contenedores y [? contando?] ellos en una imagen. 498 00:29:56,330 --> 00:29:59,570 >> Y, básicamente, se puede ver-- [inaudible] que aquí-- 499 00:29:59,570 --> 00:30:04,340 pero esto es de la repo local. 500 00:30:04,340 --> 00:30:06,410 Se va a ir y index.php grab. 501 00:30:06,410 --> 00:30:10,970 Así que ese es el único código fuente que son en realidad parte de su solicitud. 502 00:30:10,970 --> 00:30:16,800 Todo esto son básicamente sistema de tuberías de funcionamiento, 503 00:30:16,800 --> 00:30:21,460 obtener los paquetes correctos y Apache y PHP, y otras cosas. 504 00:30:21,460 --> 00:30:26,950 Pero esto es en realidad tomando index.php y comprometerse en el contenedor, 505 00:30:26,950 --> 00:30:28,210 en la imagen. 506 00:30:28,210 --> 00:30:33,120 >> Así que si vas adelante y ejecutar el comando haciendo lo siguiente, 507 00:30:33,120 --> 00:30:36,155 se going-- realidad, esto puede tardar un poco. 508 00:30:36,155 --> 00:30:40,870 509 00:30:40,870 --> 00:30:42,455 Esperemos que no toma demasiado tiempo. 510 00:30:42,455 --> 00:30:45,129 511 00:30:45,129 --> 00:30:46,170 Así que usted puede ver los pasos. 512 00:30:46,170 --> 00:30:49,320 Y me animo a ir volver a casa hoy y probarlo. 513 00:30:49,320 --> 00:30:51,280 Y Mano describirá exactamente cómo se hace eso. 514 00:30:51,280 --> 00:30:57,810 Pero es realmente grande para ver exactamente lo que está sucediendo detrás de las escenas. 515 00:30:57,810 --> 00:31:02,420 Pero es ridículamente fácil de construir imágenes y desplegar usando Docker. 516 00:31:02,420 --> 00:31:12,170 517 00:31:12,170 --> 00:31:14,050 >> Se trata de tomar un poco más de lo que esperaba. 518 00:31:14,050 --> 00:31:29,085 519 00:31:29,085 --> 00:31:32,690 >> Vamos a ver lo que sucede cuando usted-- enfriar. 520 00:31:32,690 --> 00:31:36,260 Así como usted puede ver, cada uno de esos pasos representar líneas en el Dockerfile. 521 00:31:36,260 --> 00:31:42,570 Y muestra que aquí construido con éxito esta imagen. 522 00:31:42,570 --> 00:31:46,480 >> Así que si lo hago imágenes Trabajador Portuario, voy a ver todas las imágenes que tengo a nivel local. 523 00:31:46,480 --> 00:31:52,160 Y uno de ellos se llama mi nombre de usuario, y el nombre de la imagen, 524 00:31:52,160 --> 00:31:56,050 y la representing-- etiqueta sobre todo es una etiqueta de versión. 525 00:31:56,050 --> 00:31:58,040 >> Así que ahora si quiero correr ella, lo hago plazo ventana acoplable. 526 00:31:58,040 --> 00:32:06,040 527 00:32:06,040 --> 00:32:14,960 Y yo sólo quiero hacer un -P -d. Haga v1. 528 00:32:14,960 --> 00:32:18,500 Así que puedo ver ahora que tengo dos contenedores de correr, el que acabo de 529 00:32:18,500 --> 00:32:21,230 creado y el hola Docker uno que me dieron pasado. 530 00:32:21,230 --> 00:32:24,320 >> Y se puede ver aquí que asignado un puerto diferente. 531 00:32:24,320 --> 00:32:30,710 Así que si voy a la misma IP, pero asigno un puerto: diferente espero que no lo hice. 532 00:32:30,710 --> 00:32:33,060 Así que ahora se trata de la aplicación que acabo desplegado. 533 00:32:33,060 --> 00:32:35,980 534 00:32:35,980 --> 00:32:43,900 >> Si quiero hacer cambios, me puede editar rápidamente el código fuente 535 00:32:43,900 --> 00:32:49,050 y haga lo siguiente. 536 00:32:49,050 --> 00:32:55,170 Hagamos hola Harvard. 537 00:32:55,170 --> 00:32:57,989 Así que ahora lo que está pasando a suceder es que yo soy 538 00:32:57,989 --> 00:32:59,905 va a etiquetar con un diferente version-- oh, 539 00:32:59,905 --> 00:33:03,080 No esta guy-- Etiquétalo con una versión diferente. 540 00:33:03,080 --> 00:33:05,735 Y usted va a ver-- hacen ustedes esperáis 541 00:33:05,735 --> 00:33:11,020 a tomar la misma cantidad de tiempo para construir una segunda vez o no? 542 00:33:11,020 --> 00:33:14,470 Muy bien, y nadie sabe por qué? 543 00:33:14,470 --> 00:33:15,020 Hablar alto. 544 00:33:15,020 --> 00:33:16,350 >> AUDIENCIA: [inaudible] 545 00:33:16,350 --> 00:33:19,830 >> NICOLA kabar: Es básicamente nos sólo cambian uno de los pasos posteriores. 546 00:33:19,830 --> 00:33:23,110 Y por lo tanto se va a utilizar el caché y utilizar cada una de esas capas. 547 00:33:23,110 --> 00:33:27,080 Y eso es realmente algo de la características asesinas de Docker 548 00:33:27,080 --> 00:33:32,930 es la forma en que realmente utiliza y reutilizaciones hacerse cargo 549 00:33:32,930 --> 00:33:36,950 su disco para el mismo piezas exactas de información. 550 00:33:36,950 --> 00:33:40,700 >> Así que si hacemos lo mismo, tardó apenas un par de segundos. 551 00:33:40,700 --> 00:33:48,860 Si queremos redeploy-- ahora Debería tener tres contenedores. 552 00:33:48,860 --> 00:33:56,160 Pero éste está siendo que se presentan en el-- siete uno. 553 00:33:56,160 --> 00:33:58,860 Así que ahora es el tercer recipiente. 554 00:33:58,860 --> 00:34:02,580 Todo el mundo entiende lo que acabo de hacer aquí? 555 00:34:02,580 --> 00:34:06,320 >> Así que ahora si desea compartir esta contenedor muy rápido con sus amigos, 556 00:34:06,320 --> 00:34:14,840 sólo puede hacerlo ventana acoplable empujar el nombre del contenedor, con suerte. 557 00:34:14,840 --> 00:34:20,130 Así que ahora que va a empujarlo a-- No me inscribí aquí. 558 00:34:20,130 --> 00:34:33,511 559 00:34:33,511 --> 00:34:34,219 Lo siento por eso. 560 00:34:34,219 --> 00:34:39,219 Pero yo no voy a solucionar esto ahora. 561 00:34:39,219 --> 00:34:42,780 Pero, básicamente, que un comando es justo subiendo empujarlo. 562 00:34:42,780 --> 00:34:45,670 Y tú vas a ser capaz de ver si vas a Docker Hub 563 00:34:45,670 --> 00:34:48,587 Y se conecte, eres va a ser capaz de verlo. 564 00:34:48,587 --> 00:34:50,420 Y entonces usted puede simplemente apuntar todo el que está pasando 565 00:34:50,420 --> 00:34:52,750 usar esa imagen para ir y tire de ella. 566 00:34:52,750 --> 00:34:55,460 Y pueden usarlo. 567 00:34:55,460 --> 00:34:57,760 >> Con eso, con suerte Yo como que demostré 568 00:34:57,760 --> 00:35:01,230 lo fácil que es trabajar con Docker. 569 00:35:01,230 --> 00:35:06,610 Y yo sólo voy a devolvérselo a Mano. 570 00:35:06,610 --> 00:35:11,760 Y él va a partir de aquí. 571 00:35:11,760 --> 00:35:13,990 >> MANO MARCAS: Muy bien gracias, gracias Nico. 572 00:35:13,990 --> 00:35:18,700 573 00:35:18,700 --> 00:35:20,614 ¿Entonces qué? 574 00:35:20,614 --> 00:35:24,410 Así que una de las cosas que querido hacer es poner juntos 575 00:35:24,410 --> 00:35:28,820 por qué esto es un important-- qué Docker y por qué 576 00:35:28,820 --> 00:35:33,000 contenedores son tal novedad importante, 577 00:35:33,000 --> 00:35:36,890 una nueva manera de hacer realmente software. 578 00:35:36,890 --> 00:35:41,300 >> Y antes que yo, me voy a solo introducir unas pocas estadísticas. 579 00:35:41,300 --> 00:35:42,790 No voy a leer todo esto. 580 00:35:42,790 --> 00:35:52,540 Pero esto muestra mucho sobre cómo popular este se encuentra en la comunidad. 581 00:35:52,540 --> 00:35:56,310 Las tecnologías básicas Docker son de código abierto. 582 00:35:56,310 --> 00:36:03,560 Así que eso es Docker motor, Compose, Swarm, un montón de otras cosas 583 00:36:03,560 --> 00:36:05,210 es todo código abierto. 584 00:36:05,210 --> 00:36:10,590 Y tenemos, ¿qué hice decir, 1.300 colaboradores. 585 00:36:10,590 --> 00:36:15,630 Estás viendo ahora, si nos fijamos en la número de ofertas de trabajo, la última vez 586 00:36:15,630 --> 00:36:19,640 buscamos, que estaba a unos 43 mil empleos aberturas mencionar específicamente 587 00:36:19,640 --> 00:36:22,230 familiaridad con Docker. 588 00:36:22,230 --> 00:36:26,450 Cientos de millones de imágenes tienen sido descargado de Docker Hub. 589 00:36:26,450 --> 00:36:31,870 Y, bueno, mucho más grandes estadísticas. 590 00:36:31,870 --> 00:36:34,770 >> Para los que tengan curiosidad, se fue escrito originalmente en Python 591 00:36:34,770 --> 00:36:37,730 y luego reescrita en Ir. 592 00:36:37,730 --> 00:36:40,320 Y sólo han pasado abrir source-- es sólo 593 00:36:40,320 --> 00:36:44,950 sido puesto en libertad por cerca de 2 y 1/2 años, lo que significa que en 2 y 1/2 años, 594 00:36:44,950 --> 00:36:48,020 hemos visto una enorme cantidad de crecimiento y la importancia 595 00:36:48,020 --> 00:36:50,190 de esta en la comunidad. 596 00:36:50,190 --> 00:36:52,400 Y por eso quiero hablar un poco sobre por qué. 597 00:36:52,400 --> 00:36:54,940 598 00:36:54,940 --> 00:36:59,880 >> Así que sólo reiterar algunos de Puntos clave de Nico, Docker es rápido. 599 00:36:59,880 --> 00:37:00,630 Es portátil. 600 00:37:00,630 --> 00:37:02,500 Es reproducible. 601 00:37:02,500 --> 00:37:06,130 Y en ella se establece un entorno estándar. 602 00:37:06,130 --> 00:37:13,370 >> Y qué-- ésta es mi mierda erradicar monolitos slide-- lo 603 00:37:13,370 --> 00:37:17,990 está ayudando a la gente, que una gran cantidad de la industria del software 604 00:37:17,990 --> 00:37:21,400 empezado a hacer en el década de 2000, se está moviendo 605 00:37:21,400 --> 00:37:24,200 a partir de estos monolítica aplicaciones individuales 606 00:37:24,200 --> 00:37:28,590 donde cada dependencia tenía que ser probado antes de que toda la aplicación tenía 607 00:37:28,590 --> 00:37:31,280 para ser desplegado, que podría significar una página web 608 00:37:31,280 --> 00:37:36,240 Sólo nos dieron una vez desplegado cada tres meses, o más, 609 00:37:36,240 --> 00:37:42,650 a un servicio mucho más arquitectura orientada 610 00:37:42,650 --> 00:37:46,090 o escribe en componentes diferentes de la arquitectura de la aplicación. 611 00:37:46,090 --> 00:37:48,610 Y así permitiendo éstos tipo de arquitecturas 612 00:37:48,610 --> 00:37:52,250 que aprovechan Docker se ejecute en estos tres 613 00:37:52,250 --> 00:37:58,450 áreas principales de desarrollo, que se desarrollo escribiendo su código real, 614 00:37:58,450 --> 00:38:00,140 probar su código, y su despliegue. 615 00:38:00,140 --> 00:38:03,000 616 00:38:03,000 --> 00:38:05,420 >> Entonces, ¿por qué es importante? 617 00:38:05,420 --> 00:38:09,920 Si eres A-- permítanme darles un ejemplo. 618 00:38:09,920 --> 00:38:13,600 Si usted es una página web desarrollador dispositivo, eres 619 00:38:13,600 --> 00:38:19,020 el desarrollo de un sitio web que se basa en la base de datos que David produce aquí. 620 00:38:19,020 --> 00:38:20,490 Lo sentimos, David, te estoy llamando. 621 00:38:20,490 --> 00:38:22,984 622 00:38:22,984 --> 00:38:24,900 Si quería implementar toda la cosa, que te 623 00:38:24,900 --> 00:38:28,870 que esperar bajo un tradicional desarrollo de software monolítico 624 00:38:28,870 --> 00:38:32,710 medio ambiente, que tendría que esperar hasta que se hizo con la base de datos 625 00:38:32,710 --> 00:38:36,030 antes de poder realmente hacer cualquier cambio en su sitio web. 626 00:38:36,030 --> 00:38:40,900 Habría que volver a implementar el toda solicitud para hacerlo. 627 00:38:40,900 --> 00:38:45,490 >> ¿Y qué Docker le ayuda a hacer es cada trabajo persona en diferentes componentes 628 00:38:45,490 --> 00:38:52,990 y actualizarlos a medida que avanzan, sólo hacer asegurarse de que las interfaces permanecen igual. 629 00:38:52,990 --> 00:38:56,350 Así que lo que ha hecho se está desplazada personas 630 00:38:56,350 --> 00:39:03,950 de hacer estos masiva monolítica software con arquitectura que 631 00:39:03,950 --> 00:39:07,610 desplegado cada mes a un continuo integración y desarrollo continuo 632 00:39:07,610 --> 00:39:08,490 ambiente. 633 00:39:08,490 --> 00:39:12,580 >> Ahora bien, esto no es exclusivo de Docker, pero Docker hace que sea mucho más fácil, 634 00:39:12,580 --> 00:39:16,620 lo que significa que es, básicamente, constantemente el despliegue. 635 00:39:16,620 --> 00:39:20,690 Hablamos con empresas que son la implementación de aplicaciones de revestimiento públicos 636 00:39:20,690 --> 00:39:30,180 miles de veces al día, ya que ven el valor en sólo hacer 637 00:39:30,180 --> 00:39:33,740 pequeños cambios, y siempre ya que se ejecuta a través de las pruebas, 638 00:39:33,740 --> 00:39:35,900 dejar que se salga a producción. 639 00:39:35,900 --> 00:39:41,890 Nico siempre me decía anteriormente que en muchos entornos, 640 00:39:41,890 --> 00:39:46,580 el ciclo de vida normal de un recipiente se mide en segundos, 641 00:39:46,580 --> 00:39:50,460 mientras que una máquina virtual podrían ser medido en meses. 642 00:39:50,460 --> 00:39:54,590 643 00:39:54,590 --> 00:39:58,690 >> Quería tomar un ligero gire aquí porque soy 644 00:39:58,690 --> 00:40:00,170 en una institución educativa. 645 00:40:00,170 --> 00:40:06,670 Quería dar un ejemplo de cómo esto funciona en una investigación educativa 646 00:40:06,670 --> 00:40:07,670 situación. 647 00:40:07,670 --> 00:40:10,930 Así que hay una organización llamados bioboxes. 648 00:40:10,930 --> 00:40:15,450 Bioboxes hace ADN análisis para los investigadores. 649 00:40:15,450 --> 00:40:22,029 >> Ahora lo que encontraron fue que cuando un researcher-- y esto no es 650 00:40:22,029 --> 00:40:24,070 la falla de cualquier particular, researcher-- pero cuando 651 00:40:24,070 --> 00:40:31,240 un investigador desplegado un algoritmo para analizar, 652 00:40:31,240 --> 00:40:36,670 De manera particular, una muestra de ADN, escribirían el software, 653 00:40:36,670 --> 00:40:39,980 publicar eso, tal vez a GitHub o en otro lugar, 654 00:40:39,980 --> 00:40:42,680 y luego fueron hechas. 655 00:40:42,680 --> 00:40:47,440 >> Bueno, el problema era que No era necesariamente reproducible. 656 00:40:47,440 --> 00:40:51,610 Porque el fin de entender el software, 657 00:40:51,610 --> 00:40:54,830 se les prepara para el entorno exacta desarrollo 658 00:40:54,830 --> 00:41:00,460 que el investigador que utiliza, por lo general su ordenador portátil o un servidor, o datos 659 00:41:00,460 --> 00:41:04,280 centro que estaban usando. 660 00:41:04,280 --> 00:41:11,530 Y, en consecuencia, era muy difícil para reproducir resultados de la investigación cuando 661 00:41:11,530 --> 00:41:16,910 el análisis de muestras de ADN para buscar las cosas como incidence-- 662 00:41:16,910 --> 00:41:23,830 comparar la incidencia de ataques cardíacos sobre la base de ciertos genes que están presentes, 663 00:41:23,830 --> 00:41:28,900 por ejemplo, o el riesgo de cáncer, o cualquiera de los otros tipos de cosas. 664 00:41:28,900 --> 00:41:33,900 >> Así que en lugar de lo que hicieron fue empezaron a crear contenedores. 665 00:41:33,900 --> 00:41:39,380 Y usted puede ir a bioboxes.org, que es una gran organización. 666 00:41:39,380 --> 00:41:43,900 Y lo que hacen es que producen contenedores basan en la investigación. 667 00:41:43,900 --> 00:41:46,840 Y entonces cada vez que alguien envía en su muestra, que pueden ejecutarlo. 668 00:41:46,840 --> 00:41:52,770 Y tiene todo el entorno necesario para ejecutar el algoritmo 669 00:41:52,770 --> 00:41:55,370 y producir los resultados. 670 00:41:55,370 --> 00:41:58,250 Y están encontrando que son mucho más probable y mucho 671 00:41:58,250 --> 00:42:01,300 más rápidamente capaz de devolver resultados a la gente. 672 00:42:01,300 --> 00:42:06,860 >> Y de hecho, lo que la gente está haciendo se están ejecutando sus propios análisis de ADN, 673 00:42:06,860 --> 00:42:11,220 enviar que para bioboxes, y entonces Biobox simplemente toma los datos, 674 00:42:11,220 --> 00:42:15,350 corre contra la variedad de diferentes contenedores 675 00:42:15,350 --> 00:42:19,030 para ver resultados diferentes basado en diferentes investigaciones. 676 00:42:19,030 --> 00:42:21,860 Así que es una muy poderosa forma en que los investigadores 677 00:42:21,860 --> 00:42:28,070 puede hacer una sola instancia que permite otras personas para tratar de reproducir 678 00:42:28,070 --> 00:42:28,650 Los resultados. 679 00:42:28,650 --> 00:42:31,710 680 00:42:31,710 --> 00:42:34,360 >> Entonces, ¿cómo empezar? 681 00:42:34,360 --> 00:42:37,950 682 00:42:37,950 --> 00:42:39,800 Estamos bien soportado en Linux. 683 00:42:39,800 --> 00:42:43,070 Así que si desea instalar nada en Linux, 684 00:42:43,070 --> 00:42:45,620 usted utiliza su norma gestor de paquetes para instalar. 685 00:42:45,620 --> 00:42:47,600 Si usted está utilizando una Debian, es get apt. 686 00:42:47,600 --> 00:42:50,500 CentOS es muy rico. 687 00:42:50,500 --> 00:42:53,500 Fedora Red Hat es rpm-- no me acuerdo. 688 00:42:53,500 --> 00:42:56,070 De todos modos, todo está ahí. 689 00:42:56,070 --> 00:42:59,610 Apoyamos una gran variedad de las distribuciones de Linux. 690 00:42:59,610 --> 00:43:01,150 Puede comprobar ésos hacia fuera. 691 00:43:01,150 --> 00:43:06,370 >> También tenemos opciones para que usted podría funcionar en Mac o Windows. 692 00:43:06,370 --> 00:43:10,670 Ahora Nico mencionó anteriormente que sólo se admite en Linux. 693 00:43:10,670 --> 00:43:18,180 Eso es cierto, ya que necesita un kernel de Linux. 694 00:43:18,180 --> 00:43:20,540 Pero, se puede ejecutar en una máquina virtual. 695 00:43:20,540 --> 00:43:25,290 Y lo que el Docker Toolbox hace, que se puede descargar, 696 00:43:25,290 --> 00:43:27,610 que te da esa máquina virtual. 697 00:43:27,610 --> 00:43:37,260 >> Así que sólo un rápido 48 segundo, creo, descargo. 698 00:43:37,260 --> 00:43:40,670 Sólo busca en Docker Caja de herramientas, descargarlo a la Mac, 699 00:43:40,670 --> 00:43:43,910 y esta parte es de curso acelerado porque quién 700 00:43:43,910 --> 00:43:47,620 quiere ver una señal de descarga? 701 00:43:47,620 --> 00:43:54,190 La instalación estándar de Mac, y entonces estás 702 00:43:54,190 --> 00:43:59,795 ir a ver a Jerome puso en su contraseña. 703 00:43:59,795 --> 00:44:00,670 Eso es muy emocionante. 704 00:44:00,670 --> 00:44:03,510 705 00:44:03,510 --> 00:44:06,230 Y luego de que se instale un todo grupo de herramientas. 706 00:44:06,230 --> 00:44:10,010 Y particularmente, se hará instalar una línea de comandos. 707 00:44:10,010 --> 00:44:14,220 Y entonces se podía ver Jerome probar sus imágenes. 708 00:44:14,220 --> 00:44:19,050 709 00:44:19,050 --> 00:44:22,640 >> Y a continuación, sobre esta base, se puede ver que YouTube 710 00:44:22,640 --> 00:44:27,420 piensa que Nico le interesa Star Wars, El show de Jimmy Kimmel, 711 00:44:27,420 --> 00:44:29,020 y creo que Ellen. 712 00:44:29,020 --> 00:44:34,130 Creo que eso último es un clip de un show de Ellen. 713 00:44:34,130 --> 00:44:37,760 >> Así Docker Toolbox viene aunque con algo más que la máquina Docker. 714 00:44:37,760 --> 00:44:39,840 Así Docker máquina es lo que ayuda a 715 00:44:39,840 --> 00:44:43,710 se configura una virtuales máquina en su Windows 716 00:44:43,710 --> 00:44:52,080 o Mac-- su caja de Windows o Mac box-- y le ayuda a hacer el aprovisionamiento, 717 00:44:52,080 --> 00:44:54,040 >> Pero también viene con Enjambre y Compose, 718 00:44:54,040 --> 00:45:00,840 que están diseñados para ayudarle a hacer grande despliegues a escala de su aplicación. 719 00:45:00,840 --> 00:45:04,000 Así que si usted desea gestionar grupos de nodos, 720 00:45:04,000 --> 00:45:08,450 racimos de contenedores, componer y Enjambre son el camino a seguir al respecto. 721 00:45:08,450 --> 00:45:11,430 >> Y por supuesto que viene con Docker Motor y Kitematic, 722 00:45:11,430 --> 00:45:13,250 que es la interfaz gráfica de usuario de escritorio. 723 00:45:13,250 --> 00:45:17,060 También debo mencionar Docker Registro, que no se incluye en la caja de herramientas, 724 00:45:17,060 --> 00:45:23,150 pero es una manera para que pueda ejecutar su propio registros de Docker Imágenes como Docker 725 00:45:23,150 --> 00:45:28,970 Hub, pero también puede simplemente usar Docker Hub como una manera de hacer eso. 726 00:45:28,970 --> 00:45:32,955 >> Y, giro de la trama, que se está viendo que se ejecuta en un contenedor. 727 00:45:32,955 --> 00:45:34,830 Y así es como estamos distribuir nuestras diapositivas. 728 00:45:34,830 --> 00:45:38,610 Toda esta presentación es en realidad un conjunto de diapositivas HTML. 729 00:45:38,610 --> 00:45:43,170 Y se está ejecutando en un contenedor, que puede obtener por-- 730 00:45:43,170 --> 00:45:45,596 >> NICOLA kabar: Sí, por lo que es correr a tiempo completo en mi Max. 731 00:45:45,596 --> 00:45:47,540 Y estoy presentando de ella. 732 00:45:47,540 --> 00:45:50,910 Y usted acaba de hacer Docker después instalar su caja de herramientas. 733 00:45:50,910 --> 00:45:57,340 Usted sólo puede hacer una carrera ventana acoplable y hacerlo, y utilizar las diapositivas. 734 00:45:57,340 --> 00:45:58,830 >> MANO MARCA: ¿Y eso es todo. 735 00:45:58,830 --> 00:46:02,160 Así que gracias a todos por haber venido. 736 00:46:02,160 --> 00:46:03,990 Y estamos dispuestos a responder a las preguntas. 737 00:46:03,990 --> 00:46:07,810 Debo mencionar antes de que nadie deja existe camisetas allá. 738 00:46:07,810 --> 00:46:10,940 Lo sentimos cualquiera que esté viendo esto en Livestream o vídeo, 739 00:46:10,940 --> 00:46:12,820 pero tenemos Docker Camisetas allá. 740 00:46:12,820 --> 00:46:16,250 Y sabemos estudiantes Docker, y en mi experiencia, 741 00:46:16,250 --> 00:46:18,940 profesores también, como la ropa gratis. 742 00:46:18,940 --> 00:46:22,490 >> Así que gracias a todos por venir. 743 00:46:22,490 --> 00:46:27,050 Y síguenos en Twitter si quieres, o no lo hace. 744 00:46:27,050 --> 00:46:27,910 No me importa. 745 00:46:27,910 --> 00:46:29,430 También siga Docker en Twitter. 746 00:46:29,430 --> 00:46:31,890 Eso también es interesante. 747 00:46:31,890 --> 00:46:32,990 Y entonces eso es todo. 748 00:46:32,990 --> 00:46:33,490 Docker.com. 749 00:46:33,490 --> 00:46:35,410 Gracias. 750 00:46:35,410 --> 00:46:39,360 >> [APLAUSOS] 751 00:46:39,360 --> 00:46:41,625