this post was submitted on 28 Apr 2025
79 points (94.4% liked)

Selfhosted

46360 readers
617 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
79
What is Docker? (lemmy.world)
submitted 6 hours ago* (last edited 4 hours ago) by [email protected] to c/[email protected]
 

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
[–] [email protected] 4 points 3 hours ago

good answers already so i will give you a different example.

my basic understanding of it is that docker was created originally for developers. im not sure if anyone planned for it to be a way to package up software for end users.

before docker existed you would have this issue where devs would be working on an app, say jellyfin, but each dev might be on a different platform (windows, mac, linux), or be using a different OS version, or different versions of whatever software... which meant it happened often that the app would work for one dev but not another. maybe one dev updated C# to version 2.3 and told everyone else to update, but someone missed the memo and is still running version 2.2 and now jellyfin wont work for them and time would be wasted trying to figure out where the mismatch was

so docker was a way to fix that "version hell" problem. every single thing that is needed for the app to run is kept inside the container. one dev will update something to a new version, then that container is shared to all other devs and each dev only has to worry about updating to the newest container before they start working on something.

app settings are kept in a separate location and the app data in another. in the case of jellyfin, the app data would be the movies or tv shows folder for example. then when you start the docker container, it will symlink those 2 locations/folders inside the container and the jellyfin app can access them as if they were folders that were actually stored inside the container.

so having the settings and data separate like that makes it very easy to update the container to a new version, or for a developer is probably useful being able to rollback to an older container for testing. its similar to how say windows puts the program files in one location and settings in the appdata folder

for end users its handy if theres a new version of jellyfin or whatever that isnt released yet but you want try it out, you can run 2 containers at the same time and both of them can access the same settings and data. (maybe with the newer one in read-only mode so it doesnt mess up your settings or data!)