What is Docker and How does it work?