this post was submitted on 24 Mar 2024
17 points (100.0% liked)
Jellyfin: The Free Software Media System
5855 readers
6 users here now
Current stable release: 10.10.3
Matrix (General Information & Help)
Matrix (Off-Topic) - Come get to know the team and blow off steam!
Matrix Space - List of all the available rooms on Matrix.
Discord - Bridged to our Matrix rooms
founded 4 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I have a couple of vms on my server - truenas, pihole, etc. One is for my media - arrs in docker containers and Jellyfin installed (not at container as it wasn't binding to the media dir properly)
But why in a vm?
Why not in a VM? All my stuff runs in VM's.
Doesn't the vm produce an overhead? More power consumption and it can't use the full capabilities of the machine?
There are many benefits to VMs. You can limit how much RAM is available to each one, so one app doesn't eat all of your RAM. Same with CPU. Virtual Machines can be backed up, uploaded to remote storage, and restored. When it's time to do a big update on your main machine (either changing OS or getting new hardware), restoring VM's is super simple compared to the alternative.
You can limit them in docker as well
https://phoenixnap.com/kb/docker-memory-and-cpu-limit You can spin up the same container on another machine with one command.
Docker seems to be easier, not?
Docker is great, and I have it running in multiple VM's. For me to restore everything without VM's would be a little tedious.
I'd have to search for Docker install instructions, follow the instructions like importing keys, adding the repository, doing the post-install stuff (adding my user to the docker group), etc. Not a big deal, but it's something.
Then I'd start copying data, making sure to keep the same folder structure so my compose files work. Then I start running all the commands to get all the containers back up and running (or in my case, creating 20+ stacks in Portainer).
This is all a bit tedious for me compared to opening the web interface for Proxmox, clicking on the backup (which is just "there" because it's on a hard drive (or a ZFS pool in my case)), and clicking "restore". Once restored it just boots up and my Docker stuff is good to go.
Can run multiple different os's - I have truenas, windows server, Ubuntu server for docker, etc
This can be done with containers and you don't get the overhead of virtualizing a whole operating system for every service/app you might be hosting.
This can also be done with containers in a more elegant way as there's no need to back up any VM/OS data.
E.g. I have a docker compose file that can nearly immediately stand up a container with the right settings/image, point it to my restored data and be up and running in no time. The best part is i don't need to back up the container/OS because that data is irrelevant.
With the alternative you just restore your data and run
docker-compose up -d
. Docker will handle the process of building, starting and managing the service.Simple example: Your minecraft server died but you have backups. You just restore the data to
/docker/minecraft
. Then (to keep things really simple) you just run:docker run -d -p 25565:25565 --name minecraft -e EULA=TRUE -v /docker/minecraft:/data itzg/minecraft-server
and in a few minutes your server is ready to go.
If that's the way you'd prefer to do it, I highly recommend taking that approach.
VMs can also do something called https://en.wikipedia.org/wiki/Kernel_same-page_merging - meaning a single machine could run something like 52 instances of Windows XP on 1gb of RAM
So for example, say I needed to run a bunch of ARK servers - I could put them all in VMs, and since they're all loading mostly the same assets, I could run a lot of them in the very tiny amount of memory.
Thats crazy
Why do you guys do it?