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

  • ikidd@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    14 days ago

    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.

      • ikidd@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        11 days ago

        I found dozzle a bit rudimentary as it only does logs, but I liked that there was an android app to interface it.

        Lazydocker is more like Portainer on running stacks in that you can see logs, configs, stats and do operations on the stacks and components all from an SSH TUI.

  • Dust0741@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    14 days ago

    Anything.

    Personally I use Debian. But Docker doesn’t care. I chose Debian because it is very stable and simple

    • foremanguy@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      1
      ·
      14 days ago

      And what is the good way of deploying it? After pulling the image, how do we autostart it etc…

      • lka1988@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        5
        ·
        14 days ago

        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.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        3
        ·
        14 days ago

        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.

        • foremanguy@lemmy.mlOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          14 days ago

          Are they starting automatically at boot?

          EDIT : how do you run a container with a simple name instead of using his id?

          • atzanteol@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            14 days ago

            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
            
      • Itwasthegoat@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        14 days ago

        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.

  • AustralianSimon@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    13 days ago

    Ubuntu server is pretty user friendly and has more frequent updates op. Plenty of info out there. My preference is uninstall snaps.