“Docker run” es un comando que se utiliza para crear un nuevo contenedor Docker e iniciar un proceso en él. Este comando toma la imagen Docker de la que quieres hacer un contenedor e inicia la ejecución del contenedor.
“Docker exec”, por otro lado, se utiliza para ejecutar un nuevo comando en un contenedor Docker que ya está en ejecución. Este comando puede ser útil para depurar un contenedor existente si ha surgido algún problema.
Finalmente, “Docker attach” se utiliza para adjuntarse a un contenedor Docker en ejecución. Esto podría ser útil si tienes un contenedor que ya se está ejecutando en segundo plano y quieres interactuar con él. Al adjuntarte a un contenedor, puedes interactuar con su salida estándar, entrada estándar y salida de error estándar.
En resumen, “run” es para crear e iniciar contenedores, “exec” es para ejecutar comandos en contenedores ya en ejecución y “attach” es para conectarse o interactuar con contenedores en ejecución.