Docker gjorde Proxmox-serveren min nyttig på en helt ny måte


Jeg har en hjemmeserver som kjører på en gammel bærbar PC, som er perfekt for så mange forskjellige selvhostede apper. Jeg har hatt en flott tid i 2026 med å finne ut hvordan alt fungerer og generelt gjøre livet mitt lettere, smidigere og mer privat som et resultat.

Et spørsmål jeg ofte får, er imidlertid «Hva er Docker?» og hvorfor bruker du det når du allerede har en server klar?

Men det er en grunn til det, og å forstå det gjør at selvhosting gir mening på en måte som vil endre hvordan du tenker på å kjøre programvare.

Hva Docker egentlig er

Ikke en virtuell maskin, og det er viktig

Den enkleste måten å forstå Docker på er å tenke på en virtuell maskin. En VM er en full datamaskin som kjører inne i datamaskinen din; den har sitt eget operativsystem, sin egen kjerne, sin egen tildelte maskinvare, og den koster en betydelig del av RAM og CPU bare for å eksistere.

Docker-beholdere er like, men har noen spesifikke egenskaper som gjør dem forskjellige.

De deler vertsoperativsystemets kjerne i stedet for å kjøre sin egen, noe som betyr at de er mye lettere på ressursfronten, noe som gjør dem enklere å bruke på eldre maskinvare, og utmerket å sette i gang på moderne maskiner.

Docker-beholder

Virtuell maskin

Oppstartstid

Sekunder

Minutter

Minnebruk

Titalls MB

Hundrevis av MB til GB

OS

Deler vertskjerne

Full OS per VM

Isolasjon

Prossesnivå

Maskinvare-nivå

Portabilitet

Enkelt compose-fil

Stor VM-bilde

Best for

Kjørende tjenester

Kjører forskjellige operativsystemer

Den mest brukte analogien for Docker-containere er fraktcontainere... og det fungerer virkelig. Før standardiserte fraktcontainere eksisterte, måtte lasten lastes og losses manuelt, og deretter pakkes om for hvert skip, hver havn, hver lastebil.

Fraktcontainere endret det ved å lage en standardboks som fungerer overalt, uavhengig av hva som er inni. Docker gjør i utgangspunktet det samme, men for programvarepakker, og gjør det enkelt å kjøre på et stort antall enheter, og standardiserer prosessen.

Bilder, containere og volumer

Du trenger alle disse for å kjøre dine selvhostede Docker-apper






Docker har to begreper som er enkle å forveksle i starten: bilder og containere.

Bildet er blåkopien. Det er som en skrivebeskyttet mal som definerer programvaren, avhengighetene, hvordan den skal kjøre, og så videre.

En container er en kjørende instans av et bilde. Du kan kjøre flere containere fra det samme bildet, stoppe og starte dem uten å miste data, og slette dem helt uten å berøre selve bildet. Når noe går galt (og la meg fortelle deg, det vil det definitivt gjøre) sletter du containeren, ikke serveren. Bildet er fortsatt der, klart til å starte en ny instans.

Deretter har du også volumer, som i hovedsak er den vedvarende lagringen til en Docker-container. Docker er nyttig fordi hver forekomst du åpner kan bruke vedvarende lagring for dataene som opprettes og kreves av bildet og handlingene dine.

Men som standard forsvinner alt som er skrevet inne i en container når containeren fjernes. Men volumer løser dette ved å koble en plassering inne i containeren til en plassering på vertsmaskinen, slik at data vedvarer uansett hva som skjer med containeren.

Så, for eksempel, når du setter opp en Mealie self-hoster Docker-instans, er en del av konfigurasjonen å opprette en volum. Du skriver inn en linje i konfigurasjonsfilen som lyder:

volumes:
  • mealie-data:/app/data

Da blir alt Mealie skriver til /app/data inne i containeren faktisk lagret i et Docker-administrert volum på verten. Det betyr at selv om du sletter og oppretter containeren på nytt, vil oppskriftene dine fortsatt være der.

Hvorfor Docker er så bra for en selv-hostet server

Isolasjon, bærbarhet og oppdateringer som ikke ødelegger alt

Det er litt av bakgrunnen for hva som gjør Docker så nyttig. I tillegg kjører nesten alle de beste selvhostede appene og verktøyene også på Docker, noe som gjør det til det foretrukne for alt mulig. Du kan til og med begynne å avbryte de dyre abonnementene dine når du får de selvhostede Docker-kontainerne dine opp og gå.

Men det er mer enn det også. Før Docker var det å selv være vert for apper en mye mer komplisert prosess. Avhengig av appen, måtte du installere en blanding av forskjellige avhengigheter manuelt, slik som Python, Node, PostgreSQL og Redis, og håpe at ingen av dem kom i konflikt med noe annet du hadde installert.

Så, når det kom til oppdatering, ville det å trykke på knappen innebære en viss grad av frykt; en dårlig oppdatering kunne ødelegge flere tjenester samtidig, og etterlate deg med timer med feilsøking for å finne ut nøyaktig hva som kolliderte og hva annet den ødela.

En del av det som gjør Docker så flott, er at det stort sett bare omgår alt det bryet. På serveren min hoster jeg for tiden Mealie for oppskrifter og måltidsplanlegging, Immich for selvhostet bildebakup, og AdGuard for DNS.

Men fordi hver av Docker-containerne tar med seg sine egne avhengigheter, trenger jeg ikke å bekymre meg for at de forstyrrer hverandre. Hvis Mealie sin container går galt, fortsetter Immich å kjøre. Hvis jeg vil prøve et nytt selvhostet prosjekt, setter jeg opp en container, og hvis jeg ikke liker det, sletter jeg containeren, og maskinen er nøyaktig som den var før.

Docker gjør selvhosting latterlig enkelt

Den isolasjonen er også grunnen til at det gir mening å kjøre Docker inne i en LXC-beholder på Proxmox — du får et ekstra lag med separasjon, ryddig administrasjon gjennom Proxmox-nettgrensesnittet, og muligheten til å ta øyeblikksbilder eller sikkerhetskopiere hele beholderens tilstand før du gjør endringer.

Det er også derfor så mange flere mennesker engasjerer seg i selvhosting. Når du har det installert og kjenner noen av det grunnleggende, kan du raskt bygge opp ditt utvalg av selvhostede apper gjennom det enorme kataloget, og terskelen for bare å prøve noe blir praktisk talt null.

Relaterte artikler