Honest question as an outsider: What did Docker introduce that wasn't better addressed by other technologies? E.g. wasn't reproducibility the main point and already properly solved by nix?
Dockerfiles are far simpler than the Nix language. Likewise, sure, FreeBSD had jails first (and for a long time!), but they are more difficult to set up.
Docker allowed reproducibility to be accomplished by a person who likes the idea of it, but will shelve it if it doesn't work within an evening. This describes me, for example. I think it took off for that reason.
IMHO, it was the whole package: One tool that could configure and wrangle all the various kernel namespaces in order to make containers work.
They also benefited significantly from the splash they made and the tech excitement factor. I still run into people in my consulting work that are fairly new to containers, but brand recognition on Docker is through the roof. Everybody has heard of them even if they don't know what it can do for them.
Docker allowed reproducibility to be accomplished by a person who likes the idea of it, but will shelve it if it doesn't work within an evening. This describes me, for example. I think it took off for that reason.