Creación de imágenes con Dockerfile
Crear imágenes con el método anterior tiene algunos inconvenientes:
- No se puede reproducir la imagen. Si la perdemos tenemos que recordar toda la secuencia de órdenes que habíamos ejecutado desde que arrancamos el contenedor hasta que teníamos una versión definitiva e hicimos
docker commit
. - No podemos configurar el proceso que se ejecutará en el contenedor creado desde la imagen. Los contenedores creados a partir de la nueva imagen ejecutaran por defecto el proceso que estaba configurado en la imagen base.
- No podemos cambiar la imagen de base. Si ha habido alguna actualización, problemas de seguridad, etc. con la imagen de base tenemos que descargar la nueva versión, volver a crear un nuevo contenedor basado en ella y ejecutar de nuevo toda la secuencia de órdenes.
Por todas estas razones, el método preferido para la creación de imágenes es el uso de ficheros Dockerfile
y el comando docker build
.
En el apartado Docker File puedes ver cómo realizarlo
Con este método vamos a tener las siguientes ventajas:
- Podremos reproducir la imagen fácilmente ya que en el fichero
Dockerfile
tenemos todas y cada una de las órdenes necesarias para la construcción de la imagen. Si además eseDockerfile
está guardado en un sistema de control de versiones como git podremos, no sólo reproducir la imagen si no asociar los cambios en elDockerfile
a los cambios en las versiones de las imágenes creadas. - Podremos configurar el proceso que se ejecutará por defecto en los contenedores creados a partir de la nueva imagen.
- Si queremos cambiar la imagen de base esto es extremadamente sencillo con un
Dockerfile
, únicamente tendremos que modificar la primera línea de ese fichero tal y como explicaremos posteriormente.