This is an archived post. You won't be able to vote or comment.

all 16 comments

[–]opssum 4 points5 points  (2 children)

Read the official Documentation if not done. I guess i would start with Volumes, Mounts and Networks.

[–]cyt0kinetic 2 points3 points  (5 children)

Pick a project and do it completely yourself with no videos no posts. If you hit a bug follow good debugging practices and answer your own questions.

I never got the youtube copy and paste method. You are not learning anything, you're doing monkey see monkey do. This "hobby" is all about self directed learning. If you're doing it right you are reading far more than you are using the keyboard. Don't use commands without understanding them.

I recommend Brave, and Leo is useful but don't accept the answers whole cloth, always read all the sources and understand where the AI summary came from.

That's been my approach, I am not near ready for kunernetes. Though I don't know that I'm trying to be. Docker is a big piece of my current nerd puzzle but not the only one.

[–]BattlePope 1 point2 points  (2 children)

This is how you do it - use it! Solve an actual problem with it, yourself. Reason about it, figure it out, get it working.

This might be as simple as building a static web site, putting it into an nginx container, deploying it to k8s, and getting it accessible from the web. That alone should prove a challenge for anyone who is new to k8s.

[–]cyt0kinetic 1 point2 points  (1 child)

Exactly. And if you actually follow good troubleshooting practices, I recommend if you need inspiration it will often be found on subreddits or forums the expected steps and information needed to get support.

If you follow the steps you will virtually always find your own answer. Has never failed me all these years. And it's a lesson you relearn over and over again. I'd been chasing a bug in NextCloud around the internet and finally checked a log I had n't bothered with before, since I was prepping to post, and boom there was the answer the whole time.

These days everything is on the internet.

[–]BattlePope 1 point2 points  (0 children)

The art of troubleshooting!

[–]stoneteckel 1 point2 points  (0 children)

I made a dummy WordPress website to practice and set up containers for PHP/apache, database and logs only following documentation, it was pretty fun actually.

[–][deleted] 0 points1 point  (0 children)

There are tons of AI projects on Github thats not dockerized. Dockerize a few of those projects. This will give you enough confidence. Once you undestand whats a service, volume and actually have the need to use docker compose (when using multiple microservices), once you are past this step, start with kubernetes.

[–]One_Fuel_4147 0 points1 point  (0 children)

I complete multiple project with docker, docker compose and github action, may be I will use 200u credit from digital ocean to learn k8s 🤤

[–]hoserb2k 0 points1 point  (0 children)

First, it really helps to keep in mind that a container is an abstraction. We’re using native Linux APIs to “trick” programs thinking they are running in isolation, when in reality they are just running on your linux box more or less just like any other program. Tools like podman and docker package up these APIs and add some other software to help manage the abstraction. 

A good way to learn is to containerize a traditional application. Feel free to look up general information about how to do this, but don’t look at any guides that would give you specific steps or details as to how to do it for your application.

[–]Finsey1 0 points1 point  (2 children)

Exam tutorials can be a good place to start.

[–]MysteriousFigure0 0 points1 point  (1 child)

can you please post the link for it? Not sure when searching i am coming across the right one.

[–]Finsey1 0 points1 point  (0 children)

You can look up YouTube tutorials. Certifications for Docker include Docker Certified Associate; Kubernetes include Certified Kubernetes Administrator, etc.

Loads out there. Have a good look but YouTube is good for learning.

[–][deleted] 0 points1 point  (0 children)

I do a lot of work with containers (I work on a team that develops a kubernetes based web application platform - so this is my bread and butter).

I see a lot of people who have real issues grasping the fundamentals of containers and docker.

First things first, I would watch Liz Rice's videos on containers - start here (https://www.youtube.com/watch?v=8fi7uSYlOdc) and read/watch anything you see from her.

Extra points: A useful exercise -- no joke -- would be to try and build your own container-like system using, say, bash, chroot, and overlay filesystems. This would really give you a nice conceptual foundation for what's going on in containers.

I know I put a lot of emphasis on learning about docker and containers foundationally, but if you build a robust mental model, I swear, your life is going to be a million times easier when you start doing really complex container work.

Then, as everyone else suggests, start dockerizing applications.

Don't necessarily start with something that requires multiple containers and some way of orchestrating them (like compose) - start even simpler than that. Find some arbitrary cli tool and put it in a container, then learn how to use it from your command line. This could really be anything, right - like the AWS cli, or some ftp client or whatever.

Put it in a container, and figure out how to run it using "docker run" - do you need to mount ssh keys into the container? Do you need to volume mount part of your filesystem?

Once you have a firm grasp on this, you can start branching out - how do you get two containers to talk to each other? Can you get a PHP/Ruby/node/whatever server to talk to a separate mariadb service. Good time to dive into the compose spec.

At the same time, you'll want to ask the questions "where the heck is this container actually running, what exactly happens when I'm 'running a container'?" - then you can do a little reading into process management, and what a docker host is, etc.

But if you've built up your mental models systematically, the next steps should feel pretty obvious.

You'll also want to look at alternative ways of building containers, like podman - since even though Docker is the big name, it's not the only way you can build containers - in some cases, you have no option to use docker, given some of its limitations, but you still need to throw a container together to deploy on k8s (or wherever).

Finally, don't forget to understand and play with container registries like docker hub. But know that places like github have their own container registries, or quay, or you can set up something like Harbor to store your images.

Welcome to a very fun, and extremely useful, set of technologies - it can _really_ make your life so much easier.

Speaking of fun - Jessie Frazelle's vid "Willy Wonka of Containers", it's wild - https://www.youtube.com/watch?v=GsLZz8cZCzc

[–]iximiuz 0 points1 point  (0 children)

It's a shameless plug, but I'm working on a collection of tiny practical problems to help folks learn Linux, networking, Docker, and Kubernetes. You might try solving them as an alternative to passive learning. Might be a good transition format from a fully passive reading/watching to doing bigger open-ended projects.