{ "id":"eeeb2d01-8315-454e-b33f-3d6caa25db42", "title":"some title matches the query", "authors":["Moeid Heidari","Denis Gorbanov"], "summary":"Lorem Ipsum is simply dummy text of the printing and typesetting industry...", "tags":["tag1","tag2","tag3"], "content":"## Introduction\nIn this article we will go through a list of best practices to write a Dockerfile to containerize your projects regardless to the technology and programming language used.\nFirstly lets see why we need to containerize our projects and why we should use docker or in one word why we do need Dockerization (Containerization + Docker).\nAs for Portability we can deploy our containerized application to any other systems where we can find a container engine system installed without being worry about the dependencies and required tools the application depends on. When we prefer containers to virtual machines actually we loook to have a quicker to start, faster to create, and a system with much smaller footprints. These properties of a container system means that it bring a higher performance. We can also be confident about the Agility and responsiveness of your software development process while using containers. When we talk about Isolation again containerization takes our attention as it Isolates what ever required to run the application as a block box. It is also scalable as it is possible to create an unlimitted number of instantiations without any conflict with each other. Overall these properties of a containerized application helps us to make a container orchestration system dream come true in the future.\nDocker as an open platform for developing, shipping, and running applications has almost all the features we expect from a container engine. It is an OS-level virtualization and it has a much smaller footprints compared virtual machines which are a copy of the whole OS kernel. It means docker would use the same kernel on your machine and just makes the application layer for us.\nTo deploy our applications as a docker container we need to write a Dockerfile for the project containing all the configuration to fetch, build and run all the dependencies of our project.\nBelow you can see a Dockerfile example which is the most simple one." }