Una imagen de Docker es un paquete portátil y autónomo que incluye todo lo necesario para ejecutar una aplicación, incluidas sus dependencias, bibliotecas y configuraciones.
El archivo dockerfile permite crear una imagen de docker ya que dentro de este archivo declaramos una serie de instrucciones que le indican a docker como construir la imagen, esta va a variar dependiendo del entorno en el que se utilice los dos entornos mas comunes es el de desarrollo y producción.
Un contenedor de Docker es una instancia en tiempo de ejecución de una imagen de Docker. Los contenedores de Docker son ligeros, portátiles y aislados entre sí y del sistema operativo anfitrión. Cada contenedor se ejecuta en su propio espacio de nombres de sistema y tiene su propia interfaz de red virtual. Esto significa que los contenedores no afectan a otros contenedores o al sistema operativo anfitrión.