I just start using my homelab to host some new good services, and I want to know what is the approach of a docker setup, what is the best distro for? How to deploy them correctly? Basically I’m a real noob in this subject. Thank you
Ubuntu server is pretty user friendly and has more frequent updates op. Plenty of info out there. My preference is uninstall snaps.
Anything.
Personally I use Debian. But Docker doesn’t care. I chose Debian because it is very stable and simple
Yep, Debian and then add Portainer - for me this is the easiest setup to manage.
would prefer to not use portainer
I just said what works best for me. Use the command line and compose files if you want.
I love the one click pull from git option. Don’t like the corporate direction they seem to be taking.
I haven’t seen aby alternative docker GUI managers that have the git pull for the compose.
I can appreciate this. You might want to look at Lazydocker as a SSH TUI management tool.
And what is the good way of deploying it? After pulling the image, how do we autostart it etc…
Create a systemctl service for it, create a cron, or of there is a lot of interconnectivity between your containers look at something like K3S.
Debian with the docker convenience script. Stay away from Ubuntu server, for the love of dog.
Make a folder such as /stacks and put everything there by building docker compose stacks. I bind mount everything local to a subfolder with the docker-compose.yml for that application so when I restore it, it’s all in one spot, not spread all over the hell like docker likes to do if you don’t use bind mounts.
Add lazydocker for getting easy log and stats access for each stack.
Avoid bare docker run commands. It makes an unmanageable mess when you get more that a couple containers running.
Consider using the nextcloud AIO master container. It runs docker containers inside a master container compose file, and it is by far the easiest way to manage and run nextcloud.
What is so bad about Ubuntu server?
When I tried it last (a couple years ago), the docker snap was an untroubleshootable mess. I don’t like the idea of running Docker that way, in whatever version of a container that Canonical has come up with for snaps. It’s just looking for problems. Run an application with Snap if you want, but a whole container system? No thanks.
I just don’t use snaps and it works great for me. For docker I add their apt repository and install it like that.
Well, I wasn’t using snaps and it still decided to install Docker snap on me. 2 days of troubleshooting before I figured out that the snap existed and was having a war with my apt install of docker. Never again.
I avoid apt because it does silly stuff. Always use apt-get. I suppose having to know that quirk is a con of the distro.
Oh those are not the same?! TIL. Just thought they made it more convenient.
I wrote a script to remove snaps and install Docker as per the docker website. Works great mate.
Plus you get the benefit of frequent updates.
One of their frequent updates completely broke docker on my system. Fortunately they did push the fix by the time I realized what happened.
Is that because you installed it via snaps instead of apt?
It was from docker’s apt repo, so a newer version than provided through Ubuntu’s channels I assume.
APT install is the same for Debian as it is for Ubuntu. Ubuntu delivers docker through APT or Snap but defaults snap.
I don’t need what Ubuntu offers to run server applications, and Debian is rock solid and predictable. Might as well go to the source since it’s Debian all the way down anyway, just with added cruft.
What do you want to do with containers? That’s sort of the driver for making architectural decisions.
Network and services containers. Nextcloud, Homepage, filesharing, …