Basically, their functions are different. Leiningen is simply a tool to build Clojure codes whereas Docker is a tool that wraps up a piece of software in a complete filesystem that contains everything it needs to run: code, runtime, system tools, system libraries. If you want to learn Docker then I would suggest you must take up the following Docker Training Course. I am also mentioning the docker tutorial so if you like reading the things then you can read it. Here is a video tutorial which you must watch to clear all your concepts regarding Docker.