‫Los requisitos para esta conferencia incluyen conocer los conceptos básicos sobre qué es un
‫contenedor y una imagen en Docker y comprender las
‫capas, o al menos los conceptos básicos de las capas. Conozca algunas cosas sobre Docker Hub.
‫Esta conferencia versará sobre las etiquetas de imagen y sobre cómo subirlas a Docker Hub.
‫En realidad, hay muchas etiquetas porque no son tan intuitivas como
‫podrías pensar cuando comienzas a usarlas. Necesitan estar realmente en un formato específico para trabajar
‫con un registro, específicamente con Docker Hub. Luego, hablaré con usted sobre la relación entre las etiquetas
‫que están asignadas a sus imágenes y los ID de esas imágenes.
‫Entonces empecemos.
‫Primero, hablemos del etiquetado. etiqueta de imagen de acoplador --ayuda. Las imágenes técnicamente no tienen un nombre aunque nos refiramos
‫a ellas de esa manera cuando hablamos casualmente.
‫Si hacemos una imagen
‫de ventana acoplable, observa que no hay una columna de nombre.
‫Además de la identificación de la imagen, que ninguno de nosotros recordará, ¿verdad?
‫Tenemos que referirnos a ellos por tres diferentes piezas de información.
‫En esta pantalla para el comando ls de la imagen, en realidad solo vemos dos de ellos. estamos viendo la etiqueta.
‫A la izquierda,
‫estamos viendo el repositorio, luego El repositorio en realidad está formado por el nombre
‫de usuario o por la organización que corta el repositorio.
‫Aquí solo nos ocupamos de las imágenes oficiales del repositorio,
‫por lo que solo veremos el nombre real del repositorio.
‫Anteriormente mencionamos que las imágenes especiales que se consideran oficiales son las únicas que tienen derecho a
‫que se las denomine simplemente su nombre del repositorio, no el nombre real del depósito de barras
‫de la organización.
‫Pero si nos dirigimos a Docker Hub y realizo una búsqueda en mysql, descubriremos que en realidad hay
‫una organización, no solo la oficial mysql, que se conoce como mysql, sino que también
‫está la organización SQL con un servidor mysql, que parece ser bastante popular ya que, bueno,
‫tiene más de un millón de descargas. Parece que lo que está aquí es que este es en
‫realidad el mismo servidor MySQL pero en realidad lo creó el equipo de MySQL en Oracle.
‫Si realmente quisiera descargarlo, verá que aquí, a
‫la derecha, tengo que hacer un docker pull mysql / mysql-server. De hecho, puedo hacer clic
‫en el botón Copiar y copiarlo. acoplador, verá que el nombre del repositorio incluye el nombre de la organización.
‫De hecho, descargará esta imagen única basada en la organización y si vuelvo a hacer una imagen del
‫En mi cuenta en Docker Hub, soy conocido como bretfisher. Puedes verlo desde la esquina superior derecha.
‫Entonces, si tuviera que mirar mi tablero y mirar mis imágenes que tengo que son
‫públicas, por ejemplo, echemos un vistazo al nodemongoapp.
‫Si fuera a descargar
‫esto, necesitaría hacer docker pull bretfisher / nodemongoapp.
‫Ahora que entendemos cómo se nombra el repositorio, ¿para qué sirve la etiqueta?
‫La etiqueta no es una versión completa y no es una rama, pero se parece mucho a las etiquetas Git.
‫Entonces es un poco de ambos.
‫En realidad, es solo un puntero a una confirmación de imagen específica, y realmente podría ser cualquier cosa, en ese repositorio.
‫Si volvimos a Docker Hub por un minuto, y fuimos a la imagen oficial de mysql, verá en la página principal
‫que tiene estas etiquetas diferentes. Lo que están tratando de decir aquí es que el 8. 0. 0
‫y el 8. 0 y 8 son todas etiquetas para la misma ID de imagen.
‫Si me desplazo hacia arriba y miro el botón de etiquetas, obtengo una lista detallada de todas las
‫etiquetas que han dado al mysql.
‫Así que vamos a Nginx, que es en lo que hemos estado trabajando mucho.
‫Veremos aquí que no solo son números, sino también nombres.
‫Es importante señalar que en realidad son todas exactamente la misma imagen y
‫Docker es lo suficientemente inteligente como para saberlo. Voy a mi línea de comandos y veo que ya he descargado el nginx más reciente.
‫Si miré la página web, veo la última etiqueta aquí mismo, pero también se llama mainline.
‫Entonces, ¿qué pasa si hago un docker pull nginx: mainline? Lo que esto nos dice es que en realidad ya sabía que, en función de la
‫identificación de la imagen, esta imagen ya está en mi caché. Ahora si vuelvo a hacer una
‫imagen de docker, veré dos nginx diferentes. Notarás que tienen exactamente la misma ID de imagen porque en realidad no están almacenados dos veces en la
‫caché y, una vez más, esto se debe a muchos de los ahorros. ellas apunten a la misma.
‫Estas etiquetas son solo etiquetas que apuntan a una identificación de imagen real y podemos hacer que
‫muchas de
‫Entonces, ¿cómo hago nuevas etiquetas?
‫Bueno, podría hacer mi propio archivo Docker y crear mi propia imagen personalizada, pero también
‫podemos volver a etiquetar las imágenes existentes de Docker para poder hacer una etiqueta
‫de imagen de portón nginx bretfisher / nginx. El formato de este comando es la imagen a la que le voy
‫a dar una etiqueta nueva y luego la etiqueta nueva que quiero darle.
‫solo para actualizar su memoria, muestra SOURCE_IMAGE y una etiqueta opcional y luego NEW_IMAGE una etiqueta opcional.
‫Si hice
‫una etiqueta de imagen de ventana acoplable --help nuevamente,
‫Por lo tanto, si no especifica la etiqueta, siempre será la última predeterminada. Lo último no siempre significa lo último porque
‫técnicamente podría tomar algún software antiguo y etiquetarlo como último.
‫No tiene nada de especial, pero es el tipo predeterminado. Realmente, me gustaría que
‫lo llamaran por defecto y no lo último.
‫oficiales, puede confiar en
‫que la última es generalmente la última versión estable del software que desea usar.
‫Por lo tanto, es un poco confuso, pero generalmente en Docker Hub, especialmente cuando usa imágenes
‫Así que hagamos una imagen
‫de docker de nuevo. Observe lo que sucedió
‫He agregado una nueva etiqueta a una imagen existente que no hice.
‫Muestra la misma identificación de imagen
‫y ahora está etiquetada con mi nombre de usuario y un nuevo repositorio que todavía no existe en Docker Hub.
‫Si fuimos y miramos mi
‫tablero, no tengo nada llamado bretfisher / nginx.
‫Entonces, ¿qué pasa si hago un empuje de imagen de docker, similar a como un empuje de Git, bretfisher / nginx?
‫denegado: se niega el acceso solicitado al recurso.
‫Así que claramente intentó subir lo que acabo de crear, intentó subir esa etiqueta, pero me dio
‫acceso denegado.
‫Eso es porque en realidad no me he conectado.
‫Entonces, si miras a la ventana acoplable, verás un comando de inicio de sesión y de salida. No hemos usado esos todavía. Entonces, lo que esto realmente hizo fue que se escribió esto en un archivo, que por defecto está en mi perfil debajo de cat. docker / config. json, y en realidad almacenó una clave
‫Entonces, una vez que tenga su propia cuenta de Docker Hub gratuita, puede iniciar sesión desde el inicio de sesión de la línea de comando. de autenticación que permitiría a mi CLI de docker local acceder
‫a Docker Hub como yo.
‫Este es un punto importante sobre el que aprenderemos más adelante en la producción es que siempre que inicie sesión con la CLI de Docker, de forma predeterminada,
‫va a almacenar
‫esta clave de autenticación para su cuenta en el perfil de ese usuario.
‫Así que solo se consciente de eso.
‫Si está utilizando una máquina en la que no confía, cuando termine solo escriba el cierre de sesión de Docker.
‫Entonces, ahora que estamos conectados, voy a presionar la flecha hacia arriba para intentar presionar esa imagen nuevamente.
‫DE ACUERDO.
‫Entonces parece que ya está hecho.
‫Pasemos a Docker Hub y pulse actualizar. Ahí
‫está, bretfisher / nginx. Nuevamente, no tuve que
‫crear esto desde cero para subirlo.
‫Simplemente le di una nueva etiqueta a una imagen existente y cuando la cargué, creó automáticamente un nuevo repositorio basado en esa
‫etiqueta.
‫Por supuesto, podría completar toda la información aquí, y verá que entró en default al último
‫nombre de etiqueta porque no especifiqué uno. Así que, en realidad, podría volver atrás y hacer
‫la flecha hacia arriba hasta que llegue a mi etiqueta y podría darle una etiqueta diferente.
‫Agregaremos una etiqueta adicional a esa misma imagen y la llamaré prueba. Si hacemos una imagen de
‫acoplador, verá que ahora tengo tres con la
‫misma ID de imagen.
‫Si hice una
‫imagen de docker push bretfisher / nginx: testing, y esta vez especifiqué las pruebas, observe cómo dice que las capas ya existen.
‫Eso es parte de nuestra increíble tasa de ahorro.
‫Cuando estamos descargando y cargando imágenes, que ya existen
‫capas, no molestará volverlas a cargar.
‫Si retrocedemos y pulso actualizar, verá que ahora tengo otra etiqueta.
‫Pero, por supuesto, si acabo
‫de hacer una imagen de acoplador, vemos como si viéramos que es la misma identificación de imagen y ambos lados de esta conexión lo saben. Si quería que esto fuera un repositorio privado, porque esa es
‫una característica admitida de Docker Hub, lo que probablemente querría hacer es crear primero el repositorio,
‫y cuando lo creé, especifiqué que fuera privado.
‫Luego, cuando lo presioné, el código nunca se publicaría públicamente en Internet.
‫Wow, hay muchas imágenes y sus etiquetas.
‫Así que hagamos una revisión rápida.
‫Como puede ver, puede etiquetar casi cualquier cosa en las imágenes, pero tienen que
‫estar en un formato específico para trabajar con Docker Hub. No puede simplemente llamar a algo nginx y
‫luego cargarlo porque no va a funcionar a menos que tenga su ID de cuenta o ID de organización al frente.
‫Luego, hablé de cómo puedes tener muchas etiquetas para la misma ID de imagen y
‫simplemente porque vuelves a etiquetar o etiquetar de manera diferente una imagen existente, en realidad no cambia esa ID de imagen.
‫Recuerde que la última etiqueta es realmente la etiqueta predeterminada.
‫estándar allí, que las personas usan la última etiqueta como una forma
‫de indicar la última versión estable de su imagen.
‫No hay nada intrínsecamente especial en ello, pero asumimos en Docker Hub, es un Le mostré cómo iniciar sesión rápidamente y salir de Docker Hub desde la CLI. Recuerde que almacena una ID de sesión en su configuración local si
‫está en una máquina Linux y se asegura de que cierre la sesión
‫para eliminarla si está
‫en una máquina Linux compartida o en un host, como un servidor. Entonces, solo un recordatorio, si desea crear una imagen privada de Docker
‫Hub, probablemente debería crear
‫el repositorio primero antes de subirlo.
‫