Container vs service
Container vs service
I am by no means an expert on this, but infind containerization/docker advantageous for two reasons:
Its (relatively) easy to configure and spin up a container to try something out and/or put it into production. I prefer it with docker compose but you’ve got straight CLI options, GUI options like portainer, or OS deployments like yunohost or proxmox.
The isolation and dependency management. Everything you need is in the container. No dependency conflicts with other things running on the system. And removing a container leaves the system nice and clean. Just prune your images and volumes and it’s like it was never there.
The pro/con has more to do with how you want to run your system and manage changes.
Containerization is primarily about repeatability and declarative configuration management. If you want to repeat the same configuration with every deployment and/or upgrade, containers are the way to go.
If you want to tweak and manage the software the way you want it and aren’t concerned with configuration drift, then install it as a service.
Cannot recommend container approach enough. The learning curve isn’t too bad, initially it can be daunting but best way is to jump straight in and try it.
Few things I recommend:
Please use Dockge instead of Portainer.
Dockge makes it much easier to actually see what’s happening in the deployment process and debug any issues, instead of presenting the error on a small popup that vanishes after 0.3 seconds, and it gives you much better feedback when you misconfigure something in your compose file. It also makes it much easier to interact with your setup from the command line once you feel comfortable doing that. And the builtin docker run to docker compose feature is really handy.
Newbies will find Dockge much friendlier, and experienced users will find that it respects their processes and gets out of the way when you want it out of the way.
That too, but no, I was referring to the data/config folders for each container.
For example, radarr it would be the config volume you mounted. Generally, the *arrs use a volume called ‘config’, but other containers will differ.
I’ve only had to recover from backups twice in 5 years, once was my fault after fiddling with databases. But if you’re using the development/nightly branches, it’s best to be cautious and avoid having to reconfigure.
There are different ways to run container. I run them via podman-systemd services. For me, the main benefits of running a container over an executable on the host system are the following:
~/.config/containers/systemd/), instead of having them across multiple /etc/* directoriesFor the arr stack, I run Jellyfin-server, radarr, prowlarr, jellyseer and sonarr in containers using docker compose. For updates, I just crontab a script once a week that does a “docker compose down && docker compose pull && docker compose up -d” in each of the compose directories.
Bit of faff setting everything up, but once it’s done, it’s very solid.
My very limited takes:
Having recently switched from baremetal Ubuntu Jellyfin to Docker, use docker. With Docker I know exactly where Jellyfin is storing my data because I tell it where. This means I can move it and spin it up from any machine the same every time. Moving my files over from Ubuntu was painful because they store it in weird locations and it’s spread across the file system, plus my media mount locations are different. This would have not been a problem on Docker.
It’s not the ‘one click’ solution some people claim, but the up front trouble is worth it for easier management, in my opinion.
The world is container now.
Anyone suggesting service for these apps is stuck in a bygone age.