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
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
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…
in a docker compose file you can set the option “restart: unless-stopped”
https://docs.docker.com/reference/compose-file/services/#restart
The Docker documentation is pretty terrible, but it’s a decent start. Start by looking at docker-compose.yml files for the services you want to run and the write-ups for those.
Something nobody ever told me, that I had to figure out myself, is that docker-compose.yml files can be placed anywhere you want.
Should I make the docker compose files or pull the image from hub.docker.com?
Your compose file will pull the image when you run it, from the registry it’s in
At its simplest:
docker run -d --name servicename --restart unless-stopped container
That’ll get you going. Youi’ll have containers running, they restart, etc. There are more sophisticated ways of doing things (create a systemd file that starts/stops the container, use kubernetes, etc.) but if you’re just starting this will likely work fine.
Are they starting automatically at boot?
EDIT : how do you run a container with a simple name instead of using his id?
Yes - they’ll start automatically. There are other options for “restart” that define the behavior.
You can give whatever you like to “servicename” and use that rather than the ID.
For example:
docker run -d --name mysite --restart unless-stopped nginx docker stop mysite docker start mysite
thx
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.