How I learned Docker
I am a startup enthusiast full of great ideas. I am currently working as a software engineer.
Why I wanted to learn Docker
I just heard about the concept of containers and containerised applications but couldn't really use it for long because of not so good documentation anywhere. Finally when I actually needed to work on a cluster of 4 machines without making them dirty with left code, data, passwords etc. I thought to finally invest some hard time and learn the stuff.
How I approached learning Docker
I first tried to directly learn form docker documentation, but trust me it is not for newbies. May be the recent getting started section might help, but at that time there was none. Docker is adding new features daily, it is good but it is also becoming hard to catch up.
I first tried to understand the concept of what containers are and what can they really do from youtube videos. I actually have habit of learn while doing because it helps a lot. Then I moved back and forth between docker documentation to digital ocean articles to medium articles to actually understand the gist of it.
Finally I explored the concept of shared volumes, network layout of docker, compose, swarm cluster etc. it was a worthwhile journey thereafter.
Challenges I faced
Didn't find a good getting started guide or documentation.
Understanding networking in a swarm cluster is a challenge in itself.
After you learn everything and actually deploy your own already deployed application on docker, it just feels right, like this is the right way I have been doing wrong all this time. In fact, I have stopped running local servers on my laptop, I start a docker machine instance, spun up some containers from compose file using dev environment and voila. I have stopped saying, "My code worked on my pc, but I don't know why it is not working in production".
Tips and advice
Just go for it, don't wait for it, even if you are not going to use it in your company. The love of it will make you use it in every project.
Start with docker getting started, if you find it to be difficult don't loose hope. Try finding a little more basic explanation of docker and related stuff.
Sometimes just believe that the things are working and avoid questioning everything at first. If you will do that, you will loose interest, first just understand and gain confidence in using it, your questions can wait to get answered. You will start finding it on your own.
Watch short videos on youtube about docker, it will help you just understand what a newbie should understand.
Final thoughts and next steps
Currently I am still juggling my docker stack, which I currently am confident enough to say is beautifully designed.
My next learning goal would be airflow. It is a silent killer. It is being used by some big companies and handles everything a scheduling and monitoring system should have but again same issue, no great articles, no great documentation. It will take me some time to get used to this technology.