Learning Containers for Home Lab - Suggestions?

I have a few Raspberry Pi’s and some old desktops and laptops that I can use to create a home lab to learn and play. Currently, I have in the home lab:

  • RPi running PiHole
  • Old Dell Desktop (i3, 4GB of RAM, Fedora 33 Server) running Syncthing (all computers in home and personal computers at work sync to this server) and a play ground for my teenage programming son who has VS Code being served so he can program from anywhere even on a Chromebook.
  • Old Laptop (i3, 4GB or RAM Debian Stable) serving a web based CMS.

Because of my limited and older hardware, I’ve been thinking it might be neat to learn how to work with containers and use containers to add additional web based services. I’ve watched @jay series on Docker at learnlinux.tv , but Fedora 33 uses Podman which seems similar, and I have seen information about LXD.

What would be the best to learn at this time? Docker, Podman, or LXD with my older hardware? I would like to run it on the Debian Laptop, but I noticed that Podman isn’t available for Debian Stable at least in the repos, and LXD seems primarily an Ubuntu technology. I’m not opposed to running Ubuntu Server if that is a better route to go down for learning.

I don’t really do any containers, might want to post over at https://community.learnlinux.tv/

My humble one random guy opinion would be to start with docker. If you are a beginner and just starting with containerization, docker is going to probably offer more sources of information and examples than the other two technologies. Docker and in particular docker-compose has a very broad assortment of packages and projects you can take advantage of using the docker-hub repository. The learning curve isn’t too steep either. Podman seems more supported by Fedora and derivatives.

1 Like

@kevdog I think you might be right. Considering that I want to give this a try on an older Pi (running Raspberry PI OS Lite) and the Debian laptop. I can get Docker up and running on both of those. Learning Docker also seems to transfer some of your knowledge over to Podman because the main commands are compatible. Thanks for your thoughts.

I would agree with @kevdog that Docker is one of the best places to start.

You can start learning Docker without a lot of hardware. I am actually running it by way of a VM on my Unraid server since I didn’t want to buy a new host just for Docker. The VM is allocated with 2 vCPUs, 8GB of RAM, and a 50GiB vDisk. I’m running Ubuntu Server 20.04 LTS. I use Docker compose for my Docker containers.

Definitely check out Jay’s videos on YouTube. Jay is a great resource for learning about Docker and Linux in general.

One thing to explore is Kubernetes/K8s. I don’t know a lot about it, but I think it’s prudent to mention before I “sell” you on Docker. Many people say that K8s is more modern than Docker specifically if you’re looking to build clusters, whereas Docker swarm is not as actively developed these days. I don’t use clusters (yet) so this isn’t something that I know a lot about, just figured I’d mention since K8s and Docker are very similar and I think anyone who is interested in one may want to check out the other to see which is best for their needs.

That being said, Docker is awesome and I think the learning curve is very manageable for new users.

You also don’t need a home lab for running containers. AWS, Azure, and GCP all have free tiers where you can run it.

I use LXC extensively…keep it simple!

Of course, I’ve run BSD jails since the early 2000s, so this “new” container stuff really isn’t new, just new to non BSD users…

If your question is about where the puck is moving, the puck for home labs is moving to a Rancher-managed stack. I find native Docker to be both incomprehensible and unmanagable. Docker Compose makes it very slightly more comprehensible, but still lacks anything one could consider to be a modern management interface.

Kubernetes was supposed to fix that, but it fixed only one half of the equation: it made it technically possible to comprehensively manage containers. While leaving the UX as incomprehensible as before.

Rancher fixed that. Rancher is to containers what TrueNAS is to iSCSI and Samba config files.

If you look at the entirety of home lab tech content on YouTube, the leading edge stack has begun focusing in on Proxmox, TrueNAS, Rancher (and the massive container stack underneath it), Home Assistant, pfSense or OPNSense as the router, Guacamole as your single pane of glass access portal, and a few other bits and pieces.

I’ve spent the last 36 hours playing with the TrueNAS Scale alpha release. I wouldn’t recommend doing so. The bugs are annoying and many, but it is clear even at this eary stage of release readiness that TrueNAS Scale will not augment, but replace TrueNAS Core. What container management tool does it ship with under license? Rancher.

Just some data points,
– Lucky

I have been curious about K8s/Rancher. The only content I’ve seen talking about K8s/Rancher on YouTube is from a channel called TechoTim. The guys over on the SelfHosted Show podcast talk about Docker compose a lot.

Do you know of anyone who produces really good content the way Tom does that focus on K8s / Rancher? (not just the “monkey see, monkey do” videos that many people make saying “ok click this, click here, type that”)

Maybe I need to push myself to give K8s/Rancher a shot… I’ve been hesitating because I’m telling myself one thing at a time. I’ve already started learning Docker, look into K8s after I develop a fundamental understanding of Docker.

I’ve been really wanting to learn K8s but haven’t really found a great resource. Unlike Docker/Docker-compose, K8s seems really complex with a large learning curve and the fact there are not a lot of resources and examples out there for beginners probably speaks to it’s complexity.

Rancher to my knowledge sits ontop of K8s – correct me if I’m wrong. TrueNAS scale is going to run a rancher type interface and I believe use K8s below. Any type of abstraction layer always kinds of scares me since eventually something is going to break, and the fixes will require interaction with the lower layer and not the abstraction layer. If I don’t know the layer below – it makes it really hard to debug and fix.

And lastly I’m running a homelab and I believe this purpose of this post was regarding learning containers for Home Lab. I oftentimes ask myself do I really need K8s knowledge if running a homelab?? This might be one of those times where the rabbit hole is starting to get very deep.

Thanks everyone, I have enjoyed this discussion, and it really does appear that my hobby time will be well spent learning Docker well, then perhaps Docker Compose, and then from there try running Rancher for fun.

I’m not in IT, just a Linux enthusiast, that would like to dip my toe into the waters of containers to experiment with server hosted apps that make life fun in the home lab like having the following in containers: gitea, a wiki, a static site, mpd with a web client, NextCloud if I get adventurous all running on the same Debian server.

1 Like

Agree that TechnoTim publishes informative and catchy videos. I can’t really think of anyone on YouTube that offers videos of a similar style. For hardware builds, Proxmox, TrueNAS, that direction, Craft Computing is pretty good. But Jeff doesn’t cover containers. Intermit.tech is worth having in your computer tech shows rotation.

Not to give the wrong impression, I am not a container guy myself. Perhaps that’s because I’ve been using VMs since VMware appeared on the scene. Back then my primary hobby server OS was FreeBSD and I didn’t take to FreeBSD jails, either.

As such, my views are largely based on what I am seeing happening in the marketplace (and my personal impression of Docker and Docker Compose. YMMV). I get the benefits of using containers instead of VMs, but I don’t believe one should have to learn arcane Docker, Docker Compose, etc. to use containers. Sure, given enough time and motivation, which I am most definitely lacking, I could implement my home lab router on Ubuntu using iptables. Instead, I use pfSense, which among a great many other features offers a convenient GUI. I have a GUI for my VMs. I am expecting as convenient a GUI for containers.

The question thus is what you are seeking to learn from the YouTube videos. Do you want to learn how Docker or K8 work internally? There exist decent multi-hour / multi-episode training videos for both on YouTube that are reasonably easy to find. If you can’t find them PM me since I unfortunately rarely have the time to check into the many interesting forums out there, and may not see a reply.

Or are you seeking to learn how to employ containers and rather not deal with the internals of config files? If so, you may wish to consider trying Portainer and Rancher, the top two contenders out there to manage containers higher up the stack. I.e., look for videos on Portainer and Rancher. Watch a few videos on each to get a sense. Still, there is no substitute for trying software yourself as different individuals will have different preferences and goals. Therefore, my recommendation would be to install whatever your top contenders are and tying out each of them. See which one you like best.

for example
https://www.cloudsavvyit.com/8911/how-to-get-started-with-portainer-a-web-ui-for-docker/

Idk guys – I honestly thought learning Docker and subsequently Docker Compose was actually pretty easy. There is a lot of examples and tons of information out there. I like portainer a lot – however I just use this tool for management rather than creation of the actual containers. I like to know what’s going on at a lower level and not have portainer abstract this level, since as everyone is aware, something always breaks eventually and you’ll be forced to fix. @mowest – getting Nextcloud running throught docker isn’t very hard, but just be sure to setup your volumes right. I’m not sure about the other things you want to accomplish.

1 Like

A nice and simple Raspi based and IoT oriented tutorial about containers from Andreas Spiess: