Onafhankelijke vergelijking · geen betaalde rankings
Home / Blog / Gids / Docker om een ​​applicatie te hosten: aan de slag zonder containers te stapelen

Docker om een ​​applicatie te hosten: aan de slag zonder containers te stapelen

Een schoon Dockerfile en een enkele app-container zijn vaak voldoende om te implementeren. Reserveer multi-service docker-compose voor echte behoeften – niet voor mode.

Redactie Hébergeurs.eu 5 min Bijgewerkt 19 jul. 2026

U leest een zelfstudie: Node-applicatie, Redis, PostgreSQL, Nginx, worker - vijf gekopieerde en geplakte docker-compose-containers. Op een VPS met 8 GB RAM start de stapel op... en stort vervolgens in onder echte belasting, omdat niemand de bronnen heeft gedimensioneerd of de gezondheidscontroles heeft geconfigureerd. Docker was niet het probleem. Voortijdig stapelen was het geval.

Docker lost een specifieke pijn op: “het werkte op mijn machine”. Het bevriest afhankelijkheden en opstartopdrachten. Als u een webapplicatie wilt hosten, begint u met een goedgebouwde applicatiecontainer – niet een gasfabriek.

Stap 1: een leesbaar Dockerbestand

Begin met een officiële basisimage met een bevroren versie (node:20-alpine, php:8.3-fpm). Gebruik een build in meerdere fasen: één fase om de assets samen te stellen, een minimale uitvoeringsfase. Voer het laatste proces uit met een niet-rootgebruiker, voeg een eenvoudige HTTP HEALTHCHECK toe en onderhoud een agressieve .dockerignore - geen lokale node_modules of ingebedde .git repository.


FROM-knooppunt: 20-alpine AS-build

WERKDIR /app

KOPIEER pakket*.json./

RUN npm ci

KOPIE. .

RUN npm run-build



FROM knooppunt: 20-alpine

GEBRUIKERsknooppunt

WERKDIR /app

KOPIËREN --from=build /app/dist ./dist

KOPIËREN --from=build /app/node_modules ./node_modules

BLOOT 3000

CMD ["node", "dist/server.js"]

Een Dockerfile is een uitvoeringscontract. Als het langer is dan één pagina, vereenvoudig dan de aanvraag of splits de services later op.

Stap 2: Gegevens buiten de container

Uploads mogen niet in de kortstondige laag van de container voorkomen: gebruik een volume- of objectopslag. De SQL-database mag niet draaien zonder een benoemd volume, tenzij u de voorkeur geeft aan een database die door de host wordt beheerd. Logboeken kunnen worden uitgevoerd naar standaarduitvoer, maar zijn gepland voor externe aggregatie. Geheimen mogen nooit in de afbeelding worden gebrand: injecteer ze tijdens runtime, zoals de gids Deployment secrets ons eraan herinnert.

Bij een klein project vermijdt Docker-applicatie, PostgreSQL beheerd door de host het gebruik van een database op dezelfde VPS.

Stap 3: docker-compose alleen indien nodig

Compose is zinvol voor lokale ontwikkeling of een kleine single-tenant VPS met twee of drie gekoppelde services. Bewaar deze in productie als u Redis en de applicatie zelf op dezelfde machine beheert, of als u een intern app ↔ redis-netwerk nodig heeft zonder Redis openbaar te maken. Anders is een enkele app-service achter een reverse proxy (Caddy of Nginx op de host, of een enkele reverse proxy-container) voldoende.

Implementeren op VPS: eenvoudig patroon

Bouw de image in continue integratie, push deze naar een register (GHCR, Scaleway Registry...), voer vervolgens op de VPS docker pull en docker run uit met volumes en --restart tenzij-stopped. Beëindig TLS op een reverse proxy van de host die naar de containerpoort verwijst. Centraliseer logs via docker logs of een agent, en update ze door een getagde afbeelding opnieuw te implementeren - nooit :latest zonder een expliciete pincode.

Containerized PaaS (Clever Cloud, Fly.io, Render) absorbeert registratie en lichtgewicht orkestratie als u VPS-beheer liever vermijdt.

Fouten vanaf de productie

Vermijd :latest zonder een vaste versie: de implementatie wordt niet reproduceerbaar. Voer de container niet uit als root: een ontsnapping is gevaarlijker. Stel geheugenlimieten in: een stille OOM-kill kan verrassend zijn. Kopieer geen ontwikkelingsverbinding naar productie met blootgestelde poorten en zwakke wachtwoorden. Ten slotte: verwar Docker niet met orkestratie: Docker alleen biedt geen hoge beschikbaarheid van meerdere knooppunten - Kubernetes bevindt zich in een andere klasse.

De top: Docker vereenvoudigt de implementatie, niet de architectuur

Vraag vóór het stapelen: wat moet er apart geladen worden? Als het antwoord “nog niets” is, is één container voldoende.

Beslis en ga vooruit zonder blinde vlek

Schrijf een Dockerfile met meerdere fasen met een niet-rootgebruiker, externaliseer de database en zware bestanden en reserveer Compose voor echt op dezelfde locatie gelegen services. Sluit continue integratie aan om de image te bouwen en te pushen, en trek vervolgens een getagde versie naar de VPS. Vergelijk Docker- en PaaS-hosts via de overzicht en de PaaS of server handleiding om de complexiteit indien nodig ergens anders te plaatsen.

Veelgestelde vragen

Vervangt Docker een klassieke VPS?

Nee. Docker kapselt de applicatie in; je hebt nog steeds een hostmachine nodig. Het standaardiseert de uitvoeringsomgeving zonder de infrastructuur te vervangen.

Vanaf het begin een container of docker-compositie?

Vaak is een applicatiecontainer met een beheerde database voldoende. Compose wordt handig als Redis of PostgreSQL op dezelfde machine draait als de applicatie.

Waar kunnen persistente gegevens worden opgeslagen?

Docker-volumes of beheerde services – niet alleen het kortstondige bestandssysteem, anders gaan gegevens verloren bij het opnieuw opstarten.

Docker op gedeeld?

Zelden verkrijgbaar. Docker richt zich op VPS, dedicated of gecontaineriseerde PaaS.


Docken om een applicatie te hosten gaat niet over het verzamelen van containers. Het is een inzetbaar artefact – en dan net zoveel services als uw architectuur daadwerkelijk nodig heeft.

Vergelijk Europese providers

Filter op compliance, locatie en gebruikssituatie — open daarna de fiches om het echte bereik te controleren.

Blader door het overzicht
Blog

Gerelateerde lectuur

Alle artikelen →