Continuando con el post Para los que empiezan: crear y ejecutar una imagen propia en un contenedor Docker (1/2), en la que os conté cómo crear un Dockerfile en base a una imagen que nos proporciona Docker, os voy a contar cómo construir una nueva imagen partiendo de ese dockerfile y cómo ejecutarla.
Así que comenzamos.
Construir una imagen a partir de nuestro Dockerfile
En primer lugar vamos a asegurarnos de que el Dockerfile está en el directorio actual escribiendo $cat Dockerfile.
Ahora vamos a construir nuestra nueva imagen escribiendo el comando $docker build –t docker-whale . en el terminal (¡¡no olvides el punto!!)
Este comando tarda varios segundos en ejecutarse y finalmente reporta sus resultados. Como se puede observar en la imagen anterior, analiza los tres pasos que había en el Dockerfile (step 0, step 1, step2) y finalmente podemos ver como se ha construido satisfactoriamente.
El comando $docker build –t docker-whale . coge el archivo Dockerfile del directorio actual, y construye una imagen llamada docker-whale en local. El comando tarda alrededor de un minuto en terminar su ejecución y reporta los resultados.
En la siguiente imagen podemos ver una breve explicación de cada una de las partes de este comando:
A continuación, vamos a analizar el resultado de este comando para comprender su comportamiento.
Primero Docker se asegura de que tiene todo lo que necesita para construir. Es el mensaje:
Una vez comprobado, Docker carga la imagen Whalesay (ya que nuestra imagen se basa en esta imagen de Docker, se puede ver en la siguiente imagen). Ya tenemos la imagen en local de un al ejecutarla al principio de la parte 1 del post, por lo que Docker no necesita descargarlo.
El siguiente paso que hace Docker es actualizar el gestor de paquetes apt-get. El mensaje que saca por terminal contiene una gran cantidad de líneas, pero no es necesario mencionarlas todas aquí. No obstante, empieza cuando pone “Step 1…”.
Seguidamente, Docker instala el software “fortunes”.
Por último, Docker termina la construcción y reporta sus resultados pudiendo ver que ha construido nuestra imagen satisfactoriamente.
Ejecutar tu nuevo docker-whale
En este paso, vamos a comprobar que nuestra nueva imagen esté en el equipo y luego vamos a ejecutarla.
Para comprobar que nuestra imagen está en el equipo ejecutamos $docker images, podemos observar cómo esta nueva imagen la tenemos en local ya.
Una vez hemos comprobado que tenemos nuestra nueva imagen en local, vamos a ejecutarla. Para ello escribimos en el terminal $docker run docker-whale.
Como se puede ver en la imagen anterior, tenemos una ballena mucho más inteligente. Nos muestra dichos, y como comenté anteriormente, la línea de comando para ejecutar la imagen es mucho más corta. También se puede observar que Docker no ha tenido que descargar nada, y esto es porque la imagen se construyó a nivel local y ya está disponible sin descargarla.
Y hasta aquí el post. Con esta serie de dos post, hemos aprendido a construir una imagen y ejecutarla en un contenedor y para ello hemos usado Linux desde el Mac.
Quizá más adelante siga escribiendo sobre Docker, ya que tiene muchas más cosas de las que yo os he contado aquí.
- Debes crear apps sin saber programar (no hay que saber nada) + Crea Test con IA + Scrum es el nuevo Excel - 12 septiembre, 2024
- Las 6 técnicas prompting + 1ª Ley del Manager Oscuro + Mantenlo sencillo, estúpido - 5 septiembre, 2024
- Guía de Métricas Ágiles (versión agosto 2024) - 22 agosto, 2024
Excelente!
Hola, me gustaron muchos tus post parate 1 y 2
Solo para resaltar: es importante no copiar y pegar las instrucciones desde aquí, porque si no, no funciona.
y en efecto la línea 1 del archivo build es con d minúscula: FROM: docker/whalesay:latest
Muchas gracias por los tutoriales estoy empezando con esto y poco a poco voy entendiendo.
Una duda que tengo cuando ejecuto docker run docker-whale me funciona, pero cada vez me crea un nuevo container, he intentado usar docker start y me lo ejecuta ya que en la lista ps -a aparece que se ha parado hace 1 sg, pero no veo nada por pantalla, que hay que hacer para ver de nuevo la imaen con la frase?
Gracias
porque usas imágenes para ilustrar las interacciones de la consola?