“As far as we’re concerned, a container image is just a stack of tarballs and a blob of configuration (we layer additional configuration in as well).”
Fly takes your Docker image and never runs Docker. It unpacks the tarballs into a block device and boots a Firecracker VM. That is what a container image always was. Docker the company sold the packaging as a platform, and everyone else kept the format and dropped the runtime.