There is some problem in networking with Docker and complexity with routing UDP used in gossip protocols when containers were restarted, as an example. In this age of Kubernetes, this is less of a problem. There is an accurate measurement of memory consumption of Java processes in docker when the JVM also uses native off-heap memory for applications, is very tricky. But this problem is not that issue because Docker has a lot of advantages which enables you to choose Docker. If you wish to learn Docker I would suggest you must take up the following Docker Training Course. I am also mentioning a video tutorial for you which you must watch to learn all the basics about Docker. .