I use it and love it every day in both dev and prod, but I also really kind of hate it.
I'll keep my complaints short.
There should not be a system-wide daemon. (Or any daemon).
It should not require root at all (no setuid either).
From outside the container, the container and its processes should be a single process (with threads). (Like glueing a bunch of processes together.)
The containers should be nest-able to arbitrary depth without performance loss (at least to say, hundreds of nestings deep.)
Docker-compose should not exist, instead it should be replaced by nesting of containers.
Basically, I think it needs to follow the UNIX philosophy better by providing simple abstractions that can be combined easily. The containers would visually look a bit more like an old virtual machine (single process) than our current containers.
These changes probably require a bunch of kernel hacking, but I think it would be worth it long-term for a cleaner architecture.
It appears there are some movements into this direction thanks to podman, but it's really not there yet, especially with nesting.
Also, it wouldn't really be a product at all but just a built-in tool on Linux systems.