My succint summary of the Docker best practices according to the link below.

https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#Each container should have only one concern

  • Containers should be ephemeral - it can be terminated and a new one launched with a minimum effort to set-up and configuration
  • Use multi-stage builds to reduce image size
  • Avoid installing unnecessary packages
  • Each container should have only one concern
  • Minimize the number of layers