this post was submitted on 28 Apr 2025
170 points (95.2% liked)

Selfhosted

46385 readers
907 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
170
What is Docker? (lemmy.world)
submitted 16 hours ago* (last edited 15 hours ago) by Jofus@lemmy.world to c/selfhosted@lemmy.world
 

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!

you are viewing a single comment's thread
view the rest of the comments
[–] akilou@sh.itjust.works 1 points 4 hours ago (3 children)

But why can I "just install a program" on my windows machine or on my phone and it is that easy?

[–] GnuLinuxDude@lemmy.ml 2 points 1 hour ago (1 children)

You might notice that your Windows installation is like 30 gigabytes and there is a huge folder somewhere in the system path called WinSXS. Microsoft bends over backwards to provide you with basically all the versions of all the shared libs ever, resulting in a system that can run programs compiled from decades ago just fine.

In Linux-land usually we just recompile all of the software from source. Sometimes it breaks because Glibc changed something. Or sometimes it breaks because (extremely rare) the kernel broke something. Linus considers breaking the userspace API one of the biggest no-nos in kernel development.

Even so, depending on what you're doing you can have a really old binary run on your Linux computer if the conditions are right. Windows just makes that surface area of "conditions being right" much larger.

As for your phone, all the apps that get built and run for it must target some kind of specific API version (the amount of stuff you're allowed to do is much more constrained). Android and iOS both basically provide compatibility for that stuff in a similar way that Windows does, but the story is much less chaotic than on Linux and Windows (and even macOS) where your phone app is not allowed to do that much, by comparison.

[–] pressanykeynow@lemmy.world 1 points 1 hour ago

In Linux-land usually we just recompile all of the software from source

That's just incorrect. Apart from 3 guys who have no better things to do no one in "Linux-land" does that.

[–] kieron115@startrek.website 1 points 1 hour ago

Caveat: I am not a programmer, just an enthusiast. Windows programs typically package all of the dependency libraries up with each individual program in the form of DLLs (dynamic link library). If two programs both require the same dependency they just both have a local copy in their directory.

[–] SirQuack@feddit.nl 1 points 1 hour ago* (last edited 1 hour ago)

In case of phones, there's less of a myriad of operating systems and libraries.

A typical Android app is (eventually) Java with some bundled dependencies and ties in to known system endpoints (for stuff like notifications and rendering graphics).

For windows these installers are usually responsible for getting the dependencies. Which is why some installers are enormous (and most installers of that size are web installers, so it looks smaller).

Docker is more aimed at developers and server deployment, you don't usually use docker for desktop applications. This is the area where you want to skip inconsistencies between environments, especially if these are hard to debug.