Scalability is key
I think the persistence problem has already been solved.
Containers mean it's simple to scale an application be it the front end or the back end and the database element is no different. If you are using a clustered DB its easy to kill of a node or two and still have a fully replicated version of the db on the other nodes. Whole server instances can be ephemeral as long as your DB cluster is large enough.
The bit that does not fit the container paradigm are standalone dbs as by their very nature cannot be easily destroyed meaning they do become pets again. Examples to use rather than traditional state storage techs such as mysql are mongo, Cassandra, rabbitmq, hadoop, hdfs or kafka if your still needing rdbms try crate.
I'm not saying this works for every use case but I'm yet to find one that it could not help with or make simpler to deploy (even if it means more setup and config on your build/ci boxes to get there)
Also is anyone thinking about testing here. That's the real reason I started using docker in the first place. Being able to spin up an entire application stack including database network and configuration and run tests against that (where the testes images are the exact ones that would be deployed) on every build was a bit of a pipe dream before docker. (For us anyway)
Obviously it's just a tool and people can use it in a million different ways but for us its been an enabler to more tested code, configuration management and continuous delivery.