Ramon Antonio Campos Valencia
Juan David Cordoba Mosquera
me salvaste la vida con el aporte del espacio después del sitio jaja
Amin Espinoza
ProfesorQue loco!!! Muy buen material Ramón! Gracias!
Crear imágenes en Docker desde un archivo Dockerfile marca un paso esencial y más fluido tras superar la fase inicial de configuración. Si ya tienes listo tu Dockerfile, ahora puedes dar vida a tu aplicación construyendo imágenes que podrás compartir o desplegar en distintos entornos.
¿Cómo crear una imagen Docker desde el Dockerfile?
La construcción de una imagen Docker se realiza desde la línea de comandos en la misma ubicación donde se encuentra tu archivo Dockerfile. Para confirmarlo, usa el comando básico de Linux ls, que verifica que el archivo esté presente en la carpeta. Luego, ejecuta:
docker build .
Este comando indica que la creación se hará utilizando los pasos establecidos en tu Dockerfile desde la posición actual. Docker realizará automáticamente cada instrucción detallada dentro del archivo, por ejemplo, descargar una imagen base o copiar archivos específicos.
¿Por qué poner nombre y etiqueta a la imagen Docker?
Al generar una imagen de la forma más rápida, esta aparece por defecto sin nombre ni etiqueta, mostrando None en ambos espacios. Aunque es posible, no es recomendable, ya que dificulta la identificación y gestión de tus imágenes.
Por lo tanto, es mejor práctica etiquetar explícitamente tus imágenes. Para etiquetar la imagen desde un principio, usa el comando:
docker build -t sitio_web:latest .
Usando -t, estableces un nombre claro (en este caso "sitio_web") y una etiqueta "latest", que indica la última versión disponible de tu contenido. Esto mejora sustancialmente la administración cuando tienes múltiples versiones o variaciones del mismo sitio o aplicación.
¿Cómo eliminar una imagen Docker?
Si creaste una imagen sin etiqueta o con un nombre incorrecto, puedes eliminarla para mantener tu trabajo ordenado. Utiliza para esto el comando siguiente:
docker rmi -f <identificador_de_la_imagen>
El parámetro -f representa una eliminación forzada, especialmente útil si existen dependencias involucradas. Tras eliminar, puedes nuevamente recrear tu imagen utilizando el nombre y la etiqueta adecuados.
Te invitamos a practicar continuamente estos comandos y mantener el orden adecuado en tu entorno Docker. Deja en los comentarios cualquier duda adicional que tengas sobre trabajar eficazmente con Dockerfiles e imágenes Docker.
Ramon Antonio Campos Valencia
Juan David Cordoba Mosquera
me salvaste la vida con el aporte del espacio después del sitio jaja
Amin Espinoza
ProfesorQue loco!!! Muy buen material Ramón! Gracias!
Kevin Daniel Mora Gonzalez
Un Dockerfile es un archivo de texto con instrucciones que define cómo construir una imagen de Docker. Imagina que es la receta de una torta: describe los ingredientes y pasos necesarios para crearla.
La imagen de Docker es el resultado final de ese Dockerfile, como la torta ya horneada. Es un paquete listo para usarse que contiene todo lo necesario para ejecutar una aplicación.
Los contenedores son las instancias en funcionamiento de esas imágenes, como porciones de la torta que se sirven en platos. Puedes ejecutar múltiples contenedores de la misma imagen, cada uno aislado y listo para funcionar.
Así que, en resumen:
José Antonio De La Paz Fonseca
Ojalá el profe hubiese explicado los fundamentos
Antonio Riera
Después de mucho dolor y lagrimas, lo logré lo que me faltó fue integrar desde docker desktop on Ubuntu.
Blanca Segura Garcia
Felicitaciones! Aún no lo logro en Ubuntu.
Junior Antonio Calvo Montañez
Si no les funciona con la ruta sitio
pueden realizarlo asi:
FROM nginx:latest
# Path: /usr/share/nginx/html
COPY . /usr/share/nginx/html
Jorge Fonca
Hola, claro pero eso solo te funciona por que Amin al principio no explicó como tenía configurado su entorno para trabajar.
El tiene la carpeta Clase6 y dentro de esta está "sitio", en Clase6 creó el Dockerfile y en la carpeta de "sitio" tiene el linktree.html, por eso es que no funcionaba según lo que nos dijo que corrieramos.
Clase6 |Dockerfile |sitio |linktree.html
Sergio Danilo Palacios Castillo
Sí al ejecutar
docker images
No les muestra ninguna imagen en la lista. Utilicen
docker images -a
Parece que docker oculta las imágenes que no tienen un tag definido
Juan Miguel Jimenez
Me pasó lo mismo, al no tener etiquetas no se mostró nada aunque las veía en la versión Desktop
Eriksen Lezama
A mi me falló en mac M2 con: FROM nginx:latest
Al ir a la web de docker hub vi que no usaban el latest y me funcionó
From nginx
COPY static-html-directory /usr/share/nginx/html
Jhonny Alexander Cañon Peralta
a mi igual, tienen un paso a paso de instalación para MAC ? porfa
Francisco Jalaf
Pude solucionar este error realizando un login desde la terminal, si bien la versión Desktop tenía accesos, la terminal no.
Gregorio Osorio
[+] Building 0.0s (1/1) FINISHED docker:desktop-linux
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 2B 0.0s
ERROR: failed to solve: failed to read dockerfile: open Dockerfile: no such file or directory
View build details: docker-desktop://dashboard/build/desktop-linux/desktop-linux/yg3wj1e7ap5eqkxnsaq1n7xd9
Para solucionar este error, Debes de cambiarle el nombre al archivo.
Debes de DockerFile
a
dockerfile
Alfredo Olmedo
docker rmi -f
En el contexto de Docker, los flags (o indicadores) son argumentos adicionales que se utilizan para modificar el comportamiento de un comando.
En el caso del comando docker rmi -f, veamos qué significan:
docker rmi: Este comando se utiliza para eliminar imágenes de Docker. La opción -rmi significa “remove image” (eliminar imagen).
-f: El flag -f o --force se utiliza para forzar la eliminación de una imagen. Sin este flag, Docker no eliminará una imagen si hay contenedores en ejecución que la utilizan.
Al agregar -f, Docker eliminará la imagen incluso si está en uso por algún contenedor.
En resumen, docker rmi -f es una forma de eliminar una imagen de Docker de manera forzada, incluso si hay contenedores que la están utilizando.
Es importante usarlo con precaución, ya que puede afectar la continuidad de los contenedores en ejecución.
Daniel Barros Garces
Pregunta : no me esta funcionando el docker build . ? hago lo mismo que el profesor tengo los mismo archivos en visual studio, segui paso a paso pero al correr el programa me sale ? => ERROR [internal] load metadata for docker.io/library/nginx:latest
no se que mas hacer?
Amin Espinoza
ProfesorEsto es un problema al importar la imagen de Docker de Nginx, solo checa la sintaxis.
Rolando Jose Lugo Palomino
Hola vi que tenias el mismo problema que yo, por aca otro compañero dejo esta ayuda
Juan Pablo Poblete MartinezEstudiante•hace 2 meses
Los que tengan un error relacionado con: ERROR [internal] load metadata for docker.io/library/nginx:latest.
deben verificar su cuenta de docker en la pagina, yo fui a la opcion de two-factor en settings.
Juan Pablo Poblete Martinez
Los que tengan un error relacionado con: ERROR [internal] load metadata for docker.io/library/nginx:latest.
deben verificar su cuenta de docker en la pagina, yo fui a la opcion de two-factor en settings.
Rolando Jose Lugo Palomino
Gracias, eso era justo lo que me hacia falta
Ronald Miguel Serrano Hernández
Que genial, esta clase me encantó, gracias.
Alan Yahir Juárez Rubio
Nombrar una Imagen de Docker
Para nombrar una imagen de docker creada, no es necesario eliminarla y crearla con -t. Puedes ejecutar el siguiente comando:
docker tag <image_id> <name>:<tag>
Por ejemplo:
docker tag 5b39880d0aca sitioweb:latest
Docker Files con Múltiples Tags
Una imagen de docker puede tener múltiples tags, por ejemplo, ejecutando varias veces el comando docker tag sobre el mismo <image_id>. Si en dado caso quisieras eliminar un tag de un docker file, puedes ejecutar cualquiera de los siguientes comandos:
docker rmi <name>:<tag> docker image rm <name>:<tag>
Por ejemplo:
docker rmi sitioweb:latest docker image rm sitioweb:latest
Los comandos docker rmi y docker image rm son equivalentes. En esencia lo que hacen es eliminar una imagen, pero si la imagen tiene al menos dos tags, solo remueve el tag de la imagen
Marcos Sarmiento Loarte
En esta clase, se usaron los siguientes comandos:
ls: Para verificar que el archivo Dockerfile esté en la ruta actual.docker build .: Para construir una imagen Docker sin nombre ni etiqueta.docker images: Para listar las imágenes Docker existentes.docker rmi -f [ID de la imagen]: Para eliminar una imagen Docker de forma forzada usando su ID.docker build -t sitio-web:latest .: Para construir una imagen Docker con el nombre sitio-web y la etiqueta latest.Libardo Arturo Arroyave Bustos
🚀 De Dockerfile a Imagen: El Camino hacia la Automatización
Esta es una guía paso a paso por la transición más importante en el mundo de Docker: pasar de un Dockerfile a una Docker image lista para ser desplegada. A continuación, encontrarás un desglose temático con ejemplos, recomendaciones y buenas prácticas.
🛠️ La importancia del Dockerfile
El Dockerfile es la base de todo. Haberlo configurado correctamente representa el mayor reto inicial en el ecosistema Docker.
Ejemplo hipotético:
Un Dockerfile que parte de nginx:alpine y copia los archivos HTML de tu proyecto.
Esto marca la pauta para crear imágenes reproducibles, portables y consistentes.
📦 Construcción de la primera imagen
El comando clave es:
docker build .
El punto (.) indica que el Dockerfile está en el directorio actual.Durante la construcción:
1/2 FROM nginx, 2/2 COPY ...).Ejemplo real de salida:
Se descarga la imagen base nginx y se copian los archivos del proyecto dentro de la nueva imagen.
🔍 Inspección de imágenes
Con el comando docker images, se puede verificar la creación de la imagen:
Esto genera confusión porque no hay forma clara de identificar la imagen creada.
Problema: Una imagen sin nombre ni etiqueta dificulta la gestión y versionado.
🗑️ Eliminando imágenes sin nombre
Para evitar acumulación de imágenes huérfanas, lo recomendable es eliminarlas:
docker rmi -f <IMAGE_ID>-f (force) asegura el borrado aunque existan dependencias.Consejo práctico: Mantener limpio tu entorno Docker ayuda a evitar errores en despliegues posteriores.
🏷️ Nombrando y etiquetando imágenes
La buena práctica es siempre nombrar y versionar tus imágenes:
docker build -t sitio-web:latest .Beneficios:
sitio-web identifica el proyecto.latest indica la versión más reciente.Ejemplo de escalabilidad:
sitio-web:v1.0.0sitio-web:v1.1.0De esta forma, se pueden mantener varias versiones de una misma aplicación sin conflictos.
🌍 Preparando la imagen para despliegues
Una vez construida y etiquetada, la Docker image está lista para:
La imagen es el artefacto portable que garantiza que el código se ejecute igual en cualquier lugar.
✅ Conclusiones y recomendaciones prácticas
-t para asignar nombre y etiqueta a tus imágenes.docker rmi.latest.Este proceso marca la transición esencial: de una receta estática (Dockerfile) a un artefacto portable (Docker image) que se convertirá en contenedor y, más adelante, en un servicio productivo.
José Galvis
Cómo quedo? No soy Picasso, Miguel Angel ni Da Vinci!
Iván Andrés Pineda Salazar
Falta algo muy importante:
Por ejemplo, si vas a usar WSL de Ubuntu para ejecutar los comandos de Docker, es necesario instalar Docker también en la terminal de Ubuntu, ya que no será suficiente tener activado solo el motor basado en WSL 2 en Docker Desktop. Los comandos de Docker no funcionarán de esa manera.
- Para instalar la terminal de Ubuntu en Windows: wsl --install
- Para instalar Docker en la terminal:
Amin Espinoza
ProfesorDe hecho, una vez que instalas Docker Desktop y habilitas su compatibilidad con WSL 2 entonces instalará de manera automática todos los comandos necesarios ahorrándote así estos pasos. Es más sencillo así.
Iván Andrés Pineda Salazar
Si tutor así debe ser, pero en mi caso por algún error no me funciono entonces me toco de esta manera, en otra maquina si me funciono perfectamente al habilitar la compatibilidad con WSL 2 sin necesidad de instalar todo esto, de igual deje el comentario por si alguien mas le sucede, y como ahora no se pueden editar los comentarios.
Hector Gonzalez
¿Cuál es la mejor forma de versionar?
La estrategia más profesional es combinar el tag latest para tu código más reciente en desarrollo, junto con un sistema de versionado semántico (como 1.0.0) para los lanzamientos oficiales. En lugar de dejar que Docker asigne nombres aleatorios, acostúmbrate a estructurar tus comandos como docker build -t proyecto:version . desde el primer día. Esto transforma tu lista de imágenes en un catálogo ordenado y predecible, facilitando enormemente la orquestación y el despliegue en servidores reales.
Samuel Garcia
Crear imágenes desde la terminal: Cortisol alto.
Desde Docker Desktop: Cortisol bajo.
César Augusto Calad Hernández
Al ejecutar el comando:
docker build .
Y les retorna el siguiente error:
The command 'docker' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.
For details about using Docker Desktop with WSL 2, visit:
Eso es debido, porque deben tener abierto el programa Docker Desktop, y vuelven a ejecutar el mismo comando en la terminal y listo, sin errores
aporte 15:12:23
crear un docker file
FROM nginx:latest
# obtiene la ultima version
#Path: /usr/local/nginex/html/
COPY /sitio /usr/share/nginx/html
#es importante dejar el espacio entre /sitio y usr/... porque son dos argumentos
para correr el docker file:
docker build .
luego se puede comprobar que se haya creado: en terminal
docker images
se obtiene
!Untitled!Untitled!Untitled!Untitled!Untitled!Untitled!Untitled
esto se puede corroborar el interfaz gráfica en la pestaña imagenes
!Untitled
no es buena práctica que el nombre y el tag esten vacíos o none por lo que vamos a borrar esta imagen, para esto usamos :
docker rmi -f <image ID>
la f es para forzar la eliminación y el image ID se copia, en este caso empieza con 13f0209…
entonces creamos una nueva imagen pero con nombre y tag:
docker build -t sitioweb:latest .
esto crea una imagen con nombre sitioweb y tag latest
!Untitled
es importante el tag porque puede haber varias imagenes del mismo sitio web
con esto cumplimos la segunda etapa de docker, que es crear docker image
yo he usado los comentarios y vi una buena oportunidad de regresar los aportes