Talking about Docker, it is a container which wraps a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server.
Why choose Docker ?
You like using the docker CLI, and ecosystem tools. The reason why you like using docker CLI is that you want to get the native Docker API experience and compatibility.
You prefer an imperative system (along with declarative tools). You are badass and want to tweak what happens in your orchestration process
Mix cloud-native and legacy apps in containers. Run both applications designed for the cloud, and legacy apps that were not
You have a giant cluster. The cluster design is extremely scalable, and easily supports thousands of nodes
Why choose Kubernetes?
You prefer a declarative system.
You don’t want to change what happens in your orchestration process.
You only care about cloud-native applications
Your web and mobile app workloads were built for the cloud.
You have a pretty big cluster. Let's say if you have a large number of clusters such as about 200 hosts or so, Kubernetes will work great for you.
If you want to learn any of the Kubernetes and Docker then you must take up the following Docker Training Course and Kubernetes Training Course. I am also mentioning a video tutorial for you which you must watch to learn all the basics of these two technologies.