superbart
(SuperBart)
1
So, I’m standing up a new home server. It’s partly for a file-storage server and partly a home-lab server. I was looking at methods of using it for storage access from personal devices (like ownCloud) and came across something about setting up a Docker container to run the service. I went down the rabbit-hole a bit and came across the following tutorial on how to set it up:
I’m curious about the idea, but want to know is it worth it. With that said, if I do go down this road, where should I install it.
My server is Win2016 STD. I have it running Hyper-V and it’ll host a IIS webserver, and 1 or two game servers. It’ll also host whatever “labs” I throw at it, but those won’t always be running. It’s has 8 cores and 64GB RAM, so it’s not huge. It does have plenty of storage.
So, what are the community’s thoughts?
16 Spice ups
Rod-IT
(Rod-IT)
2
I run nextcloud as a docker container on my QNAP NAS, it has 25% of the CPU allowed and 1GB ram, this connects to a MYSQL container with similar resource restrictions in place.
Containers are much smaller, less resource intensive and easier to upgrade,
I use my NAS as i can point the data to a folder on the NAS meaning that if the container failed, I wouldn’t lose my data
2 Spice ups
bbigford
(bbigford)
3
To consider what a container is, think about a physical server becoming a virtual server. When you setup a VM, you’re not having to also manage the physical hardware as part of the VM management (it’s decoupled, separate). A container, for an app of some kind, abstracts the guest OS below it.
Jrx1216
(Jrx1216)
4
I’ve never been a fan of containers for my labs, but I also have plenty of compute power and heaps of RAM (anyone see what I did there?)
I generally prefer actually setting up a full dedicated VM for each my services like Nextcloud (which is a fork of owncloud) and just about everything else I run, though I do have a set of VMs setup to work as a kubernetes cluster for when I do want to play with containers. Similarly to Rod-IT’s comment above, though, I typically point the actual data & config storage for VMs at my network storage so the VM is basically disposable.
Containers are not the right solution for most workloads in the SMB, which is what you should be modeling a home lab on IMO. A container is nothing like a virtual machine.
The best uses for containers are development or stateless workloads. If you have stateful data such as with Nextcloud, then Docker or some other container is not the right solution. Developers love Docker because it makes things easy to make “the same,” which is good from their point of view. But it is a horrible choice for so many workloads in production.
(A) Docker is definitely worthwhile to learn, as it is in demand everywhere
(B) Just as a VM host will share your PC hardware among all of the VMs running on the host, Docker will share your OS and drivers among all the Docker containers.
So instead of having 10 VMs, each with its own copy of Windows on it, you’d have one VM (or physical machine) with one copy of Windows and ten Docker containers. So you’d save the compute, RAM and storage resources that would have been spent on all those OS images, while still maintaining a tight isolation of the contents of all the containers.
It can be highly useful in situations where you want to spin up multiple instances of an app (web server application, for example) that can then be shared across various hosts with different hardware.
And when it comes to managing all those containers, start investigating Kubernetes. That’s the go-to orchestration package most often used to manage docker installations.
T
1 Spice up