I initially wanted to learn Docker because of the hype surrounding it but it wasn’t until we started using it at work for a web application that I started learning it properly. In this article, I would like to share the resources I discovered that helped me learn about it.
Assumed knowledge
To get the most out of these resources you should have some experience deploying software and you should be comfortable using the terminal. In the context of web application development, you should also have an understanding of client-server communication. If you feel some knowledge is lacking you might get something out of:
Resources
Docker, FROM scratch - Aaron Powell
I would recommend starting here to see what Docker has to offer.
- Type: Video
- Length: 1 hour
Get started with Docker
The starting point for the official documentation. I would recommend only doing parts 1 and 2 for now.
- Type: Tutorial
- Length: <1 hour
Get started with Docker Compose
If you plan on using multiple Docker containers it’s worth starting with the official documentation.
- Type: Tutorial
- Length: <1 hour
Dockerizing a React App - Michael Herman
If you plan on using Docker with your React app this will put you on the right path.
- Type: Tutorial
- Length: <1 hour
- Assumed knowledge: Learn React with these Resources
Dockerizing a Node.js web app - Node.js Guides
This helped me set up a Docker container that serves a node.js app.
- Type: Guide
- Length: <1 hour
- Assumed knowledge: Learn JavaScript with these resources
Don’t install Postgres. Docker pull Postgres - Syed Komail Abbas
This helped me replace a local installation of PostgreSQL with a Docker image.
- Type: Article
- Length: 4 minutes
Applying the knowledge
In order to consolidate what I consumed from the above resources, I created the following:
- docker-node serves a node.js app.
- docker-postgres serves as a PostgreSQL database.
- docker-nginx serves static content.
Final thoughts
I wouldn’t say I am an expert on Docker but the above resources gave me the confidence to use it in production and make me a more effective developer. I hope it does the same for you!