If you really require a full OS – init system, desktop environment, and all – it sounds like you’re looking for more like a standard virtualization system. VirtualBox is a straightforward option that runs on most mainstream operating systems.
When you start saying “ISO image” and “mount into a container” you’ve gotten well outside the space Docker is good at. I’d recommend reading Docker’s official tutorial on building and using custom images. If this doesn’t sound like something you could readily adapt for your use case then I’d focus more on full virtualization solutions.
Docker is good when you control your application’s build system; you have simple TCP-based (often HTTP) services; communication between services is only over the network, not shared files; you don’t need much from your OS beyond a language runtime
VMs are good when you need to run multiple components with shared filesystem state; you need a complex network topology; your application needs complex OS interactions like mounting filesystems or a local service bus
Host applications are good for software developers; when you need to directly manage the host; when you need access to the host’s hardware devices; for interactive desktop applications