Estoy un poco confundido acerca de estas dos opciones. Parecen estar relacionados. Sin embargo, no son realmente compatibles.
Por ejemplo, parece que usar Dockerfiles significa que realmente no debería comprometerse con las imágenes, porque realmente debería rastrear el Dockerfile en git y hacer cambios en eso. Entonces no hay ambigüedad sobre lo que es autorizado.
Sin embargo, las confirmaciones de imágenes parecen realmente agradables. Es tan bueno que podría modificar un contenedor directamente y etiquetar los cambios para crear otra imagen. Entiendo que incluso puede obtener algo como un sistema de archivos diferente de un historial de confirmación de imagen. Increíble. Pero entonces no deberías usar Dockerfiles. De lo contrario, si realizó una confirmación de imagen, tendría que volver a su Dockerfile y realizar algún cambio que represente lo que hizo.
Así que estoy desgarrado. Me encanta la idea de las confirmaciones de imágenes: que no tienes que representar el estado de tu imagen en un Dockerfile, simplemente puedes rastrearlo directamente. Pero me preocupa renunciar a la idea de algún tipo de archivo de manifiesto que le brinde una descripción general rápida de lo que hay en una imagen. También es desconcertante ver dos funciones en el mismo paquete de software que parecen ser incompatibles.
¿Alguien tiene alguna idea sobre esto? ¿Se considera una mala práctica utilizar confirmaciones de imágenes? ¿O debería simplemente soltar mi archivo adjunto para manifestar archivos de mis días de Puppet? ¿Qué tengo que hacer?
Actualización :
Para todos aquellos que piensan que esta es una pregunta basada en opiniones, no estoy tan seguro. Tiene algunas cualidades subjetivas, pero creo que es principalmente una pregunta objetiva. Además, creo que una buena discusión sobre este tema será informativa.
Al final, espero que cualquiera que lea esta publicación comprenderá mejor cómo los archivos Dockerfiles y las confirmaciones de imágenes se relacionan entre sí.
Actualización - 2017/7/18 :
Recientemente descubrí un uso legítimo para las confirmaciones de imágenes. Acabamos de configurar una canalización de CI en nuestra empresa y, durante una etapa de la canalización, nuestras pruebas de aplicaciones se ejecutan dentro de un contenedor. Necesitamos recuperar los resultados de cobertura del contenedor salido después de que el proceso de ejecución de prueba los haya generado (en el sistema de archivos del contenedor) y el contenedor haya dejado de ejecutarse. Usamos confirmaciones de imagen para hacer esto confirmando el contenedor detenido para crear una nueva imagen y luego ejecutando comandos que muestran y vuelcan el archivo de cobertura a stdout. Así que es útil tener esto. Aparte de este caso muy específico, utilizamos Dockerfiles para definir nuestros entornos.