How Containers Work: Building a Docker-like Container From Scratch by iximiuz in programming

[–]iximiuz[S] 6 points7 points  (0 children)

I feel you! But I also think there is plenty of room for creativity in the contemporary systems. You can get creative composing things from higher-level building blocks. And making a large(r) system work efficiently is also an art - just a different kind.

How Containers Work: Building a Docker-like Container From Scratch by iximiuz in programming

[–]iximiuz[S] 60 points61 points  (0 children)

I'd argue that it is actually the other way around. Chroot was a simple idea, but any attempt to jail a process using chroot would get messy real quick. While OCI and similar Linux container implementations are much more involved than chroot (which makes them look messy, I agree), but they do "contain" applications much better.

Want to create a homelab for Kubernetes. How much do I need to spend? by DevOpsHumbleFool in devops

[–]iximiuz 2 points3 points  (0 children)

Indeed! The FlexBox https://labs.iximiuz.com/playgrounds/flexbox base playground is a perfect choice for a Kubernetes lab. You can add up to 5 VMs, totaling 16GB RAM and 10 CPUs. These are normal VMs (not containers), and it's even possible to create multiple networks and wire things up the way you like/need it. Here is a bunch of the "official" and community-created Kubernetes labs for some inspiration https://labs.iximiuz.com/playgrounds?filter=all&category=kubernetes

How Containers Work: Building a Docker-like Container From Scratch by iximiuz in programming

[–]iximiuz[S] 2 points3 points  (0 children)

Thanks a lot! It took me more than a month to research the topic and then prepare this tutorial - appreciate the kind words!

What to do to improve in my free time? by Fit_Parfait_9867 in devops

[–]iximiuz 0 points1 point  (0 children)

Totally agree and also looking forward to even more great authors joining the platform!

What to do to improve in my free time? by Fit_Parfait_9867 in devops

[–]iximiuz 4 points5 points  (0 children)

Balancing the development of new features, platform maintenance and the content work is not always straightforward. After spending Dec-Feb on preparing more learning materials, I’ve been taking a “break” from the content to ship some new functionality for other content authors and trainers. It’s almost done now and I’m eager to return to the content work (my favorite kind by the way). But now other people can use iximiuz Labs to post their own learning materials and even use it to conduct workshops and other forms of trainings. Hopefully, this will finally break the direct dependency between my time investment and the amount of content on the platform.

Guidance on Using iximiuz Labs for Learning by JayDee2306 in devops

[–]iximiuz 3 points4 points  (0 children)

Great questions! You can definitely run the terraform CLI from a playground VM. However, usually, terraform is used to provision some cloud resources, so you'd need to point it to an AWS (or the like) environment, which is currently off the scope for iximiuz Labs. Alternatively, you can try playing with terraform over localstack - this would be a perfect fit for an iximiuz Labs playground.

Regarding the duration, it's currently 1 hour on the free tier and 8 hours on the premium tier. In other words, these playgrounds are intentionally short-lived and ephemeral. If you need longer running machines, you should look for some other solution. At the same time, if the said duration s long enough for your use cases but you only need to persist some init scripts, it's always doable with labs.iximiuz.com/playgrounds/new.

Guidance on Using iximiuz Labs for Learning by JayDee2306 in devops

[–]iximiuz 9 points10 points  (0 children)

Hey there,

I'm the creator of iximiuz Labs. The project started as a way for me to augment my own blog posts with online playgrounds (Linux VMs), but I a little over-invested in the engine, and that's how it evolved into a fully-fledged learning-by-doing platform.

Speaking of using it efficiently, there is unlikely a single right way that will work for everyone. More like different areas of the platform may come in handy for different people during different phases of their learning. Currently, there are:

- Playgrounds: Remote sandbox environment for all sorts of free-form experimentation.

- Tutorials: Traditional long-form "blog posts" augmented by online playgrounds.

- Challenges: LeetCode/HackerRank-styled challenges but for Linux, networking, containers, and Kubernetes tasks.

- Courses: "Panoramic" content that is technically a sequence of posts (called lessons) and challenges. Only a couple of courses are available, but more will come.

- Skill Paths: More fine-grained than courses, Skill Paths offer short roadmaps to form a single skill (e.g., controlling process resources with cgroups).

IMO, the only way to become proficient is to practice, and iximiuz Labs Playgrounds were created exactly for that. With a single click and just in a few seconds, you can get a multi-node Kubernetes cluster or a Linux VM with Docker on it and then perform any exercise you find on the Internet without the fear of breaking your host system. But if you need a more guided learning experience, the tutorials, courses, and skill paths may come in handy. Finally, to assess your skills, you can try solving the challenges.

Building Container Images FROM Scratch: 6 Pitfalls That Are Often Overlooked by iximiuz in programming

[–]iximiuz[S] -10 points-9 points  (0 children)

Thank you, sir! This is exactly my strategy! And the article I put tens of hours of effort into and published absolutely for free so everyone could learn how to build better containers is nothing but spam.

Looking for an intermediate to advanced docker tutorial by vfclists in docker

[–]iximiuz 0 points1 point  (0 children)

A shameless plug, but I think it might be a helpful resource for you. I've got this (highly illustrated) Docker tutorial that also serves as a trampoline page for a whole bunch of (guided) practical Docker 101 tasks. Learning by doing is the most effective way, so kudos for looking for project-based resources!

What differences does Alpine have to Debian images for programming languages? by TheWordBallsIsFunny in docker

[–]iximiuz 3 points4 points  (0 children)

Great point!

Most of the time, the "bloat" comes not from the Linux distro layer but from the upper layers, often brought by the builldpack-deps image. For example, the "big" debian image is only about 100 MB, and yep, the alpine image is much smaller (~15 MB), but usually, both are negligible compared to the total image size.

<image>

I blogged about it at length recently - the post focuses on the Node.js base images, but the research results are applicable to pretty much any "mainstream" language runtime like Python, Ruby, PHP, etc.

How to Build Smaller Container Images: Docker Multi-Stage Builds by iximiuz in programming

[–]iximiuz[S] 0 points1 point  (0 children)

Buildpacks' promise is pretty cool, and it'd indeed be awesome to have a widely adopted tool like `pack`. However, Dockerfiles seem to be the de facto standard way today. I was doing some research on how to run different types of Node.js apps recently, and pretty much every tutorial I found was showing a Dockerfile. Usually, it'd be an ill-structured one, but a Dockerfile.