A good understanding of Linux Kernel’s features will be helpful for learning Docker. These features include resource allocation, memory management, store organization and program communication. This is because the main purpose of Docker is to manage several features of the Kernel, including Cgroups, Namespaces, Copy-on-Write and bind mounting. Further, a basic understanding of networking concepts such as socket, routing, IP protocol, iptables, and server/client architecture will also be helpful. There are a few Docker tutorials available which will guide you through these concepts in an easy to understand method.