Speaking as someone who doesn't like docker (or containerisation in general) and thinks it gets wildly overused in places it doesn't belong, I also have to say it's very impressive.
chroot
jails give you filespace separation, but not network namespace, PID space, or any of the other separations that full virtualisation brings. Full virtualisation gives you near-total separation from other instances running on the same hardware, but you have to set aside a kernel's-worth of memory (and to a lesser extent, CPU) for each VM spun up. Containers in general give you a higher level of separation than anything before (save virtualisation) offered, but unlike full virtualisation they're so light that any old desktop can accommodate tens of them without pain.
Docker in particular adds to that copy-on-write file systems and thereby the ability to quickly and cheaply sandbox any number of different code changes, before deciding which to keep and bake into the FS image, and which to discard and roll back. Though I am not a developer, I can dimly see how powerful a technique this must be for ultra-rapid prototyping.
You haven't asked about the problems, so I won't start into my production-sysadmin rant. But even as someone who doesn't like some of the ways these tools are used, it seems very clear to me why they've spread so rapidly, and become so popular. If I had to do what developers do, I think I'd find them a superb tool, too.