I have been reading about Docker for quite some time now. This term would pop up very often whenever I was checking something regarding Django.

It wasn’t until recently that I actually made time to read up about it and understand what Docker is. Needless to say, I was missing out.

I have now started using Docker with every project, and it makes the development process a lot more manageable. Obviously, I probably understand about 10% of all the features, but I am learning and already these 10% are of tremendous help.

What is Docker?

Docker is a popular tool for managing and deploying applications. We can think of it as a large virtual environment that contains everything our Django project needs - databases, dependencies, caching services or any other tools.

It allows us to simulate production environment on our local machines.

Running all the tools required for production (PostgreSQL, Redis..) on your local machine is very error-prone, and the setup is very time-expensive. Docker makes this process a lot simpler.

Another awesome feature is, you can just ship the whole container into production together, which can make deployment a lot easier. I know I have wasted a lot of time trying to deploy basic apps to AWS servers.

Not to mention other benefits, such as working in a team. Docker ensures every developer works on the same setup.

Main benefits of using Docker

  1. Isolation of dependencies
  2. Easy deployment
  3. Scaling - you can pretty much spin up additional Docker containers to handle increased traffic
  4. Development workflow

I will sum up my process of starting dockerized Django app soon, but just wanted to share what I have recently learned and encourage every beginner Django developer to start using Docker as soon as possible.