profile

Ivan on the Server Side

Ivan on the Server Side


Hey there! πŸ‘‹

It's time for the monthly iximiuz Labs update. Lots of good learning materials on Docker, Kubernetes, and eBPF inside. I'll try to keep it brief, so you can spend more time studying and practicing.


Shoutout to our sponsor of the month - Creem. I usually turn down sponsorship offers because reputation is invaluable, but this time I was happy to make an exception because Creem is the service I actually use. Creem is the Merchant of Record behind iximiuz Labs, handling payments, global taxes, and compliance, so I can focus on building labs instead of fighting VAT forms. Do recommend if you sell products online.


iximiuz Labs docs keep getting better

Over the past two weeks, the recently added labs.iximiuz.com/docs section got (quite) a few new posts. Below are the key ones.

The How to SSH into Playgrounds article shows how to set up an alias so that you can access playgrounds from the local terminal with a handy ssh remote-host command. Being able to use the standard ssh command becomes a necessity when you need to integrate SSH access to a playground VM into third-party tools or scripts. The two most prominent use cases are:

  • Developing in a playground VM using your local IDE (VS Code, Cursor, etc)
  • Using a playground VM as a remote Docker context (e.g., for building container images)

The How to Expose HTTP/HTTPS Ports article shows how to make HTTP(S) applications running in a playground VM available via a public URL. The post includes copy/paste-able examples of:

  • How to expose published ports of Docker containers
  • How to expose Kubernetes applications (with a NodePort service and with kubect port-forward)
  • How to expose the Kubernetes API server

The How to Forward Local Ports article shows how to securely expose TCP & UDP services running in the playground VM to your local machine. For example, you can use this capability to connect a local development server to its upstream dependencies running in the playground, or to connect to a remote database using a local GUI client.

Conversely, the How to Forward Remote Ports post shows how to make a service running on your local machine accessible to the playground VM using standard SSH remote port forwarding. For example, you can use it to expose Chrome's debugging port (9222) to a coding agent running in the sandbox VM (see Chrome DevTools MCP). Or you can combine it with exposing HTTP/HTTPS ports to make a local web server accessible on a public URL.

Sometimes, you may want to run containers on a remote VM without having to SSH into it. It may be useful when your local machine lacks sufficient resources to run containers, is on a slow network, or you just want to keep your local machine clean and free of Docker-related clutter. The How to use Playgrounds as Remote Docker Hosts recipe shows how to set up a remote Docker context and then use it to run containers and build images in sandboxed VMs.

Last but not least, Adam Leskis published a dev.to post describing his experience with creating custom rootfs images​ πŸ‘, which was then condensed into a dedicated documentation section.

Docker 101: Build Container Images

In February, I prepared almost a dozen new hands-on challenges, all centered on a single theme: getting started with writing Dockerfiles and building container images. They have all been added to the Docker roadmap, and for an even better learning experience, I also prepared a dedicated skill path:

​Docker 101: Build Container Images​

This skill path will help you learn Dockerfile authoring from the ground up, starting with the simplest possible image and building up to production-grade multi-stage builds. You'll see how to:

  • Build and publish a container image to a registry
  • Write Dockerfiles using core instructions: FROM, COPY, RUN, and CMD
  • Handle application and system-level dependencies in a Dockerfile
  • Compile and build applications inside a Dockerfile
  • Inspect container image internals (layers, sizes, digests)
  • Optimize images with multi-stage builds to produce smaller, cleaner production artifacts

By the end of this skill path, you'll be comfortable writing Dockerfiles for real-world applications and understand how to keep your images lean and efficient. Give it a shot πŸ› οΈ

A new batch of Kubernetes challenges

​Omkar Shelke is a Kubernetes enthusiast and certified CKA & CKAD expert, who has prepared over 30 hands-on challenges on iximiuz Labs to date. This is Omkar's most recent batch, and I thoroughly enjoyed solving all of them πŸ‘

If you're preparing for a CKA/CKAD certification, the above challenges will definitely come in handy.

eBPF + Networking = πŸ–€

Teodor Podobnik continues his eBPF programming series, with the focus gradually shifting to higher-level concepts like Service Mesh.

If you've ever used Istio or Cilium, you've likely seen what feels like "magic": you deploy an app, add an annotation, and suddenly traffic between services is encrypted, L7 observability appears, and fine-grained network policies can be enforced - all without changing a single line of application code.

If you want to understand how this "magic" is implemented, check out these two recent posts by Teodor:

Full Ubuntu Desktop in Browser

Quite a few people have asked if it's possible to run GUI applications in playgrounds. And while the answer has always been a "yes", there was a significant "but" - you'd need to figure out how to set up a remote desktop yourself. But thanks to Arjun Dandagi, there is now a prebaked playground with XRDP and Apache Guacamole. Starts in no time and lets you access the familiar Ubuntu UI right in the browser.

Check out Arjun's blog post as well - he describes the setup in great detail.

Coder Development Environments on iximiuz Labs

It was pretty cool to see Coder spinning up a Dockerized dev environment within an iximiuz Labs sandbox. Many thanks to Mohammed Uzair for preparing this community playground: Coder Development Environment Playground.

Wrapping up

That is it for February. In March, I'm planning to continue my work on the Docker roadmap - two tutorials on container images are almost ready for publication, so keep a close eye on your inbox in the coming days. And since it's KubeCon month, I'll also try to fit in a few hands-on Kubernetes challenges. Ah, and I've overheard that MΓ‘rk, Constanze, Teodor, and Adam are working on some gems, too. Exciting times πŸš€

Happy hacking!

Ivan

P.S. Daily revenue has recovered, almost immediately after I restored the lifetime plan and started an unplanned sale. Revenue for the past 30 days remains slightly down because the "great dip" of Feb 6th-14th is still fully within the moving window range. But in a week, it'll stop impacting the figures, so I'll give it a shot and turn off the recovery sale. Let's hope this time the revenue won't drop that drastically 🀞 Thanks a lot for supporting my work!​

Ivan on the Server Side

A satellite project of labs.iximiuz.com - an indie learning platform to master Linux, Containers, and Kubernetes the hands-on way πŸš€

Share this page