La analogía cotidiana
Piensa en un contenedor de transporte marítimo. Pongas lo que pongas dentro, tiene una forma estándar, así que cualquier barco, camión o grúa puede transportarlo sin importarle el contenido. Un contenedor Docker hace lo mismo con el software: envuelve tu aplicación y sus dependencias en un paquete estándar, de modo que cualquier sistema compatible puede ejecutarlo de forma idéntica — sin sorpresas del tipo "en mi máquina funciona".