this post was submitted on 28 Apr 2025
2 points (100.0% liked)

Selfhosted

60409 readers
343 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:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details.

Resources:

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

Questions? DM the mods!

founded 3 years ago
MODERATORS
2
What is Docker? (lemmy.world)
submitted 1 year ago* (last edited 1 year 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!

top 9 comments
sorted by: hot top controversial new old
[–] Ozymandias88@feddit.uk 1 points 1 year ago

I don't think I really understood docker until I watched this video which takes you through building up a docker-like container system from scratch. It's very understandable and easy to follow if you have a basic understanding of Linux operating systems. I recommend it to anyone I know working with docker:

https://youtu.be/8fi7uSYlOdc

Alternative Invidious link: https://yewtu.be/watch?v=8fi7uSYlOdc

[–] grue@lemmy.world 0 points 1 year ago (1 children)

A program isn't just a program: in order to work properly, the context in which it runs — system libraries, configuration files, other programs it might need to help it such as databases or web servers, etc. — needs to be correct. Getting that stuff figured out well enough that end users can easily get it working on random different Linux distributions with arbitrary other software installed is hard, so developers eventually resorted to getting it working on their one (virtual) machine and then just (virtually) shipping that whole machine.

[–] Scrollone@feddit.it 1 points 1 year ago* (last edited 1 year ago) (3 children)

Isn't all of this a complete waste of computer resources?

I've never used Docker but I want to set up a Immich server, and Docker is the only official way to install it. And I'm a bit afraid.

Edit: thanks for downvoting an honest question. Wtf.

[–] dustyData@lemmy.world 1 points 1 year ago

On the contrary. It relies on the premise of segregating binaries, config and data. But since it is only running one app, then it is a bare minimum version of it. Most containers systems include elements that also deduplicate common required binaries. So, the containers are usually very small and efficient. While a traditional system's libraries could balloon to dozens of gigabytes, pieces of which are only used at a time by different software. Containers can be made headless and barebones very easily. Cutting the fat, and leaving only the most essential libraries. Fitting in very tiny and underpowered hardware applications without losing functionality or performance.

Don't be afraid of it, it's like Lego but for software.

[–] EncryptKeeper@lemmy.world 1 points 1 year ago* (last edited 1 year ago)

If it were actual VMs, it would be a huge waste of resources. That’s really the purpose of containers. It’s functionally similar to running a separate VM specific to every application, except you’re not actually virtualizing an entire system like you are with a VM. Containers are actually very lightweight. So much so, that if you have 10 apps that all require database backends, it’s common practice to just run 10 separate database containers.

[–] couch1potato@lemmy.dbzer0.com 1 points 1 year ago (1 children)

I've had immich running in a VM as a snap distribution for almost a year now and the experience has been leaps and bounds easier than maintaining my own immich docker container. There have been so many breaking changes over the few years I've used it that it was just a headache. This snap version has been 100% hands off "it just works".

https://snapcraft.io/immich-distribution

[–] AtariDump@lemmy.world 0 points 1 year ago (2 children)

Interesting idea (snap over docker).

I wonder, does using snap still give you the benefit of not having to maintain specific versions of 3rd party software?

[–] Colloidal@programming.dev 1 points 1 year ago

Snap is like Flatpak. So it will store and maintain as many versions of dependencies as your applications need. So it gives you that benefit by automating the work for you. The multiple versions still exist if your apps depend in different versions.

[–] couch1potato@lemmy.dbzer0.com 1 points 1 year ago

I don't know too much about snap (I literally haven't had to touch my immich setup) but as far as I remember when I set it up that was snap's whole thing - it maintains and updates itself with minimal administrative oversight.