You don't have to use it. You can use docker save and docker import:
docker save alpine:3.19 > alpine.tar
docker load < alpine.tar
But now I have to manage that tar file, have all my systems be aware of where it is, how to access it, etc. Or, I could just not re-invent the wheel and use what docker already has provided.