Hi! Im new to self hosting. Currently i am running a Jellyfin server on an old laptop. I am very curious to host other things in the future like immich or other services. I see a lot of mention of a program called docker.

search this on The internet I am still Not very clear what it does.

Could someone explain this to me like im stupid? What does it do and why would I need it?

Also what are other services that might be interesting to self host in The future?

Many thanks!

EDIT: Wow! thanks for all the detailed and super quick replies! I’ve been reading all the comments here and am concluding that (even though I am currently running only one service) it might be interesting to start using Docker to run all (future) services seperately on the server!

  • jagged_circle@feddit.nl
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    13
    ·
    2 days ago

    Its an extremely fast and insecure way to setup services. Avoid it unless you want to download and execute malicious code.

      • jagged_circle@feddit.nl
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        6 hours ago

        Package managers like apt use cryptography to check signatures in everything they download to make sure they aren’t malicious.

        Docker doesn’t do this. They have a system called DCT but its horribly broken (not to mention off by default).

        So when you run docker pull, you can’t trust anything it downloads.

        • Darioirad@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          14 hours ago

          Thank you very much! For the off by default part i can agree, but why it’s horribly broken?

          • jagged_circle@feddit.nl
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            6 hours ago

            PKI.

            Apt and most release signing has a root of trust shipped with the OS and the PGP keys are cross signed on keyservers (web of trust).

            DCT is just TOFU. They disable it because it gives a false sense of security. Docker is just not safe. Maybe on 10 years they’ll fix it, but honestly it seems like they just dont care. The well is poisoned. Avoid. Use apt or some package manager that actually cares about security

            • Darioirad@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              2 hours ago

              So, if I understand correctly: rather than using prebuilt images from Docker Hub or untrusted sources, the recommended approach is to start from a minimal base image of a known OS (like Debian or Ubuntu), and explicitly install required packages via apt within the Dockerfile to ensure provenance and security. Does that make sense?

        • ianonavy@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          ·
          20 hours ago

          A signature only tells you where something came from, not whether it’s safe. Saying APT is more secure than Docker just because it checks signatures is like saying a mysterious package from a stranger is safer because it includes a signed postcard and matches the delivery company’s database. You still have to trust both the sender and the delivery company. Sure, it’s important to reject signatures you don’t recognize—but the bigger question is: who do you trust?

          APT trusts its keyring. Docker pulls over HTTPS with TLS, which already ensures you’re talking to the right registry. If you trust the registry and the image source, that’s often enough. If you don’t, tools like Cosign let you verify signatures. Pulling random images is just as risky as adding sketchy PPAs or running curl | bash—unless, again, you trust the source. I certainly trust Debian and Ubuntu more than Docker the company, but “no signature = insecure” misses the point.

          Pointing out supply chain risks is good. But calling Docker “insecure” without nuance shuts down discussion and doesn’t help anyone think more critically about safer practices.

          • jagged_circle@feddit.nl
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            5 hours ago

            Oof, TLS isnt a replacement for signatures. There’s a reason most package managers use release signatures. x.509 is broken.

            And, yes PGP has a WoT to solve its PKI. That’s why we can trust apt sigs and not docker sigs.

    • festus@lemmy.ca
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      2 days ago

      Entirely depends on who’s publishing the image. Many projects publish their own images, in which case you’re running their code regardless.