1 00:00:01,649 --> 00:00:22,410 Bien, vamos a continuar, vamos a hacer una cosa, vamos a crear un contenedor, entonces bueno, aquí he empezado a hacer un poco el comando, para crear un contenedor, fijaos, antes hemos visto como traíamos, hacíamos un pool de una imagen del registro y yo ya tenía algunos contenedores hechos, tenía uno de Ubuntu y lo que hacía era lanzar el contenedor, 2 00:00:22,410 --> 00:00:27,129 entonces en este caso no quiero eso, lo que quiero es crear ese contenedor de nuevas desde una imagen 3 00:00:27,129 --> 00:00:36,090 fijaos que curioso como funciona docker, yo le voy a decir un docker run, con todo este run le voy a decir que voy a crear un contenedor nuevo 4 00:00:36,090 --> 00:00:46,789 este menos id quiere decir que el contenedor una vez lanzado, una vez creado, lo voy a lanzar, se va a lanzar y además se va a lanzar, se va a arrancar de forma interactiva 5 00:00:46,789 --> 00:00:48,149 a través de una consola 6 00:00:48,149 --> 00:00:50,189 con menos menos name 7 00:00:50,189 --> 00:00:52,609 esto me va a facilitar mucho las cosas 8 00:00:52,609 --> 00:00:53,869 esto lo quiero explicar bien 9 00:00:53,869 --> 00:00:56,990 acordaos como en el anterior vídeo yo tenía que hacer referencia 10 00:00:56,990 --> 00:00:58,789 a los ids tanto de imágenes como 11 00:00:58,789 --> 00:01:00,969 de contenedores para poder trabajar con ellos 12 00:01:00,969 --> 00:01:02,710 eso es bastante engorroso porque 13 00:01:02,710 --> 00:01:04,269 es un numerazo ahí un poco largo 14 00:01:04,269 --> 00:01:06,870 y poco descriptivo, entonces yo puedo ponerle nombre 15 00:01:06,870 --> 00:01:08,230 en este caso a mi contenedor 16 00:01:08,230 --> 00:01:09,670 este nombre va a ser 17 00:01:09,670 --> 00:01:12,450 simplemente ejemplo1 18 00:01:12,450 --> 00:01:14,870 vamos a ponerle ejemplo1 19 00:01:14,870 --> 00:01:16,709 y finalmente 20 00:01:16,709 --> 00:01:45,670 Evidentemente, al final del comando vamos a poner evidentemente la imagen de la que quiero crear yo el contenedor. En este caso le voy a hacer una imagen de Fedora. Fedora es una distribución de Linux. Entonces, ¿qué va a ocurrir? Como yo esta imagen no la tengo descargada en local, no la tengo en mi registro local de mi ordenador, lo que va a hacer Docker es que se va a ir al registro de Docker Hub, se va a descargar la imagen, va a crear un nuevo contenedor basado en esa imagen y va a lanzar en interactivo este contenedor. 21 00:01:45,670 --> 00:02:01,969 Cuando le damos a enter, fijaos, me dice no puedo encontrar esta imagen de Fedora latest, siempre busca este tag de latest localmente, no lo puedo encontrar en este registro. ¿Dónde me voy a ir? Me voy a ir a hacer un pooling en la librería de Fedora, en el registro. 22 00:02:01,969 --> 00:02:15,530 Fijaos que aquí, bueno, pues otra vez se saca el SHA, lo descarga y aquí tenemos cómo está metido ya en el contenedor que acaba de crear en interactivo para trabajar con él. 23 00:02:15,530 --> 00:02:27,090 Si os fijáis, tenía aquí otra consola. Si yo aquí en esta consola hago un docker ps, es muy curioso porque yo aquí tengo, no lo hago desde aquí evidentemente porque estoy dentro del contenedor, ¿de acuerdo? 24 00:02:27,090 --> 00:02:29,009 estoy dentro del contenedor que me ha creado, este contenedor 25 00:02:29,009 --> 00:02:30,810 es este de aquí, tiene este identificador 26 00:02:30,810 --> 00:02:33,090 fijaos, aquí lo veis muy bien 27 00:02:33,090 --> 00:02:35,310 al hacer aquí el docker ps 28 00:02:35,310 --> 00:02:37,189 me saca el contenedor 29 00:02:37,189 --> 00:02:38,990 que tengo activo en este momento y aquí 30 00:02:38,990 --> 00:02:39,530 está su id 31 00:02:39,530 --> 00:02:42,830 que concuerda perfectamente 32 00:02:42,830 --> 00:02:44,729 con el que aparece en el prompt, eso quiere decir que está 33 00:02:44,729 --> 00:02:46,990 rulando, que está funcionando de forma interactiva perfectamente 34 00:02:46,990 --> 00:02:48,909 además está lanzado 35 00:02:48,909 --> 00:02:50,030 el comando barra bin barra más 36 00:02:50,030 --> 00:02:52,310 que es el intérprete de comandos 37 00:02:52,310 --> 00:02:54,909 yo aquí podría trabajar y esto realmente 38 00:02:54,909 --> 00:02:56,530 es una imagen de Fedora, es decir yo aquí puedo 39 00:02:56,530 --> 00:03:10,509 tengo un main.ls, yo puedo hacer un ame y un name para menos a, para ver un poco la información del linux que tengo aquí, ¿vale? Bueno, pues ahí lo tenemos. 40 00:03:12,780 --> 00:03:24,400 Y bueno, pues si yo hago un exit, si me salgo de este contenedor, es muy curioso porque vais a dar cuenta de que al hacer aquí un docker ps, vais a ver que 41 00:03:24,400 --> 00:03:34,979 evidentemente ya no lo tengo, es decir, cuando yo creo el contenedor y lo lanzo en interactivo, si yo me salgo de ese contenedor, automáticamente desaparece, ¿vale? 42 00:03:34,979 --> 00:03:44,340 Está en el sistema, no es que desaparezca, sino simplemente se para, ¿vale? Cuando hago el exit, se para, es el equivalente a hacer un stop, hacer un docker stop del propio 43 00:03:44,340 --> 00:03:51,740 contenedor. Si yo ahora recordar el docker ps-a, aquí me aparecen los contenedores que 44 00:03:51,740 --> 00:03:58,360 yo he tenido y fijaos como aquí, ¿veis? Aparece con este nombre el contenedor que 45 00:03:58,360 --> 00:04:06,460 he creado. Yo puedo hacer ahora un docker start y referirme a este contenedor con el 46 00:04:06,460 --> 00:04:11,599 nombre que le he puesto. No como con el id que poníamos antes. Y además le puedo decir 47 00:04:11,599 --> 00:04:13,259 que lo haga en interactivo, ¿vale? 48 00:04:13,620 --> 00:04:15,479 docker start menos i y decirle 49 00:04:15,479 --> 00:04:16,920 ejemplo 1 50 00:04:16,920 --> 00:04:19,540 y de esta forma arranco 51 00:04:19,540 --> 00:04:21,139 de una forma más sencilla que antes 52 00:04:21,139 --> 00:04:23,019 ese contenedor 53 00:04:23,019 --> 00:04:25,339 de forma interactiva para poder trabajar 54 00:04:25,339 --> 00:04:27,259 con él y hacer lo que me dé la gana con mi fedora 55 00:04:27,259 --> 00:04:29,360 ahora me puedo salir 56 00:04:29,360 --> 00:04:31,000 de él, si hago ahora 57 00:04:31,000 --> 00:04:32,220 un docker ps 58 00:04:32,220 --> 00:04:35,800 pues ya no lo voy a tener 59 00:04:35,800 --> 00:04:36,459 ¿de acuerdo? 60 00:04:37,480 --> 00:04:38,180 ahí lo tenéis 61 00:04:38,180 --> 00:04:40,939 más cosas 62 00:04:40,939 --> 00:04:43,220 fijaos que tenemos 63 00:04:43,220 --> 00:04:44,959 el menos a 64 00:04:44,959 --> 00:04:46,519 tenemos los contenedores aquí 65 00:04:46,519 --> 00:04:49,240 creados, estos contenedores 66 00:04:49,240 --> 00:04:51,079 son míos, los tengo aquí en 67 00:04:51,079 --> 00:04:53,319 mi máquina, para eliminar contenedores 68 00:04:53,319 --> 00:04:55,079 tenemos el comando docker 69 00:04:55,079 --> 00:04:57,000 rm 70 00:04:57,000 --> 00:04:58,019 remove 71 00:04:58,019 --> 00:05:01,040 hago un docker rm 72 00:05:01,040 --> 00:05:02,939 y el nombre del contenedor o el id 73 00:05:02,939 --> 00:05:05,120 yo puedo eliminar un contenedor 74 00:05:05,120 --> 00:05:06,480 como ejemplo 1 75 00:05:06,480 --> 00:05:09,019 y directamente 76 00:05:09,019 --> 00:05:10,699 lo dejo de tener, ahí está 77 00:05:10,699 --> 00:05:19,959 o lo puedo, evidentemente, borrar con el ID correspondiente que le asigna el sistema a la hora de crearlos. 78 00:05:20,319 --> 00:05:27,379 Aquí el botón derecho, recordad que aquí es el engorro este de tener que aprender un poco el ID de cada uno de ellos, ¿de acuerdo? 79 00:05:27,639 --> 00:05:30,600 Y ahora tendríamos todo eso. Ahí lo tenemos. 80 00:05:31,379 --> 00:05:36,620 Lo mismo que tenemos la posibilidad de borrar, de pulgar, de remover todos los contenedores, 81 00:05:36,620 --> 00:05:38,779 recordemos que tengo docker 82 00:05:38,779 --> 00:05:39,459 imágenes 83 00:05:39,459 --> 00:05:42,839 fijaos que ahora tengo varias, porque tengo 84 00:05:42,839 --> 00:05:44,680 el engines que hicimos antes, el fedora 85 00:05:44,680 --> 00:05:45,819 este fedora 86 00:05:45,819 --> 00:05:48,899 es el de la última, o contenedor que ha creado, recordad 87 00:05:48,899 --> 00:05:50,720 que para crear el contenedor se descarga 88 00:05:50,720 --> 00:05:52,540 la imagen, si no la encuentra local 89 00:05:52,540 --> 00:05:54,300 se la descarga local y luego crea el contenedor 90 00:05:54,300 --> 00:05:56,680 entonces, para remover, para 91 00:05:56,680 --> 00:05:58,980 borrar imágenes 92 00:05:58,980 --> 00:06:01,120 tengo el comando rmi 93 00:06:01,120 --> 00:06:02,519 remove image 94 00:06:02,519 --> 00:06:04,959 entonces lo mismo, en este 95 00:06:04,959 --> 00:06:16,589 caso lo que le diríamos es el, en este caso, a ver si hace con engines, vale, un momento, 96 00:06:17,089 --> 00:06:23,759 clear, ahí lo tenemos, me ha removido la imagen que tenía de engines con el comando 97 00:06:23,759 --> 00:06:29,800 rmi, podríamos eliminar por ejemplo la de fedora también, utilizando puedo trabajar 98 00:06:29,800 --> 00:06:35,720 también con el id, vamos a hacerlo también así, docker rmi y borrar también a través 99 00:06:35,720 --> 00:06:58,990 Bueno, pues esto era simplemente lo que quería ver en este pequeño vídeo, que era simplemente la forma de crear contenedores, no lanzarlo como al principio, sino ya crearlo explícitamente en concreto con una imagen que yo no tenía en local. 100 00:06:58,990 --> 00:07:11,029 Y para que veáis cómo directamente se descarga la imagen, se la descarga en local y crea el contenedor correspondiente. Y luego con ese juego de interactivo, de salir, de lanzar, volver a lanzar de una forma un poco distinta. 101 00:07:11,189 --> 00:07:13,230 Seguimos en el siguiente vídeo.