Long ago, some programming languages supported image files, which were the running code and data, placed in a file for reloading later. Wikipedia is vague on the details, but I believe the major benefit was load speed—an image could restore already-compiled code from a single, more-linear file instead of needing to read and evaluate the sources again.
In modern DevOps, we use images all the time. We even call them images. The only difference is that these images are built at the level of the filesystem and designed for an external OS/hypervisor to run. Or if you're willing to give up some of the "can run anything" capability, they can be built without the filesystem. Just your app and a hypervisor.