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

  • Matt The Horwood@lemmy.horwood.cloud
    link
    fedilink
    English
    arrow-up
    2
    ·
    4 hours ago

    I would start with a Debian os base, install docker and turn it into a swarm manager. Then look at stacks and how services work, if you find your running your host too hard. You can add a work host and stread out.

    Once you have docker swarm running, get portainer running. I use portainer as a visual whats happening on my swarm, but I use the docker cli to start and update all my stacks. I have my stacks in a git repository so that I have a backup and history of what changes I did.

    Now your a docker master, of sorts.

  • Dust0741@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    6 hours ago

    Anything.

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

    • funkajunk@lemm.ee
      link
      fedilink
      English
      arrow-up
      1
      ·
      5 hours ago

      Yep, Debian and then add Portainer - for me this is the easiest setup to manage.

    • foremanguy@lemmy.mlOP
      link
      fedilink
      English
      arrow-up
      1
      arrow-down
      1
      ·
      6 hours ago

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

      • lka1988
        link
        fedilink
        English
        arrow-up
        5
        ·
        6 hours 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
        link
        fedilink
        English
        arrow-up
        3
        ·
        6 hours 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
          5 hours ago

          Are they starting automatically at boot?

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

          • atzanteol
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            4 hours 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
        ·
        6 hours 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.