I have rewritten the Docker based development environment to use the images provided by Docker4Drupal (http://docker4drupal.org). So some of the comments below become outdated. The comments about using symlinks or vfs are uninteresting, as the use of symlinks/vfs in that way are not the docker way.
Drush for Developers, Second Edition, takes common challenges in Drupal projects and solves them using Drush. This book starts with the different installation approaches for Drush and its command structure. It then moves on to perhaps the trickiest challenge in Drupal projects: keeping code and configuration together during a project's lifetime. Next, we will deep dive into the tasks needed to keep a website under control and learn how to run, automate, and monitor them effectively.
Error validating and debugging our Drush commands is a must and this book has a whole chapter on that topic. The magic of managing remote Drupal projects through Drush site aliases is explained in the following chapters through a practical example. Finally, the book wraps up by putting in practice all the concepts covered in previous chapters in order to implement a development workflow for a team.