Docker: O que é, como funciona e por que usar no desenvolvimento de software