HACKER Q&A
📣 maticzav

Should I learn Docker in 2022?


To clarify, I am not asking if I should learn what Docker is, but rather if I should learn "Advanced Docker" and how you'd go about learning it.

By advanced docker I mean especially the automatic deployments where CI builds the image, pushes it to a registry and then multiple instances around the world pick it up and update themselves either in AWS or any other service.

My main concerns are 1) I don't know any good article on the topic ("how-to", "why"), 2) It feels like more and more companies are targeting CI and code distribution (Render, Fly.io, Terraform (I guess)), 3) Docker is getting less "open" (https://news.ycombinator.com/item?id=17804916), 4) New alternatives are emerging (like nixos).


  👤 ellen364 Accepted Answer ✓
If I’ve correctly understood the second paragraph, I think you want to learn about completely automated deployments? If that’s the case, I’m not sure you’d learn a lot more about Docker itself. You’d be doing things like

- choosing and setting up an image registry

- learning how to write CI pipelines (e.g. the ins and outs of gitlab—ci.yml) to build images and push them to the registry

- learning how your cloud provider can be trigger to deploy when there’s a new image

- thinking about many deployment considerations (e.g. Do you need to avoid downtime? Do you have multiple servers sharing one database? If yes, are there changes to data structure that will cause errors if only some servers are running the new code?)

With that in mind, learning about general deployment practices (blue-green deployments, rolling deployments, etc) is probably going to be more useful than learning about Docker.


👤 brudgers
If you want to learn Docker, learn Docker.