Hello guys, if you are a developer or software engineer then you might have heard about Docker and containers. Being an author of a Java and Programming blog, I daily receive a lot of questions about Docker like what is Docker? what is Docker compose, which Docker commands should I learn, what is Docker Hub, How can I migrate my application to Docker and how can I deploy Docker container on AWS, Azure, and GCP. These are also some of the common doubts of programmers across the world. Let's start with What is Docker and why a Programmer should learn Docker in 2020? Simply speaking, Docker programming language makes project management and deployment seem easy.