So, in general, tools like Docker are crap because they're like the Apple iPod equivalent of old standard Unix-style tools: bloated monolithic slapped together crap that's crammed with non-extensible non-intuitive extras, designed for people who don't want to know anything about how the sausage is made. But if you do want to do fancy production things, it's nice to have a tool that thousands of people have used for thousands of different things, and bake in all the weird fixes for weird problems over thousands of iterations of testing and bug-fixing.
However. If what you want is to simply understand what's going on under the hood, this is a great way to do it. The only thing better that I would recommend is to actually make your own Docker. It's not that difficult, you're basically just slapping together some system calls and execvp()ing some other standard tools, which is what Docker does, and you don't need to support any of the extra fancy features. But you gain an intimate understanding of what could be going on when stuff in production is breaking.