Invoering
Docker is een van de meest populaire technologieën geworden voor het implementeren en beheren van applicaties in moderne serveromgevingen. Door applicaties en hun afhankelijkheden in geïsoleerde containers te verpakken, Docker biedt consistentie tijdens de ontwikkeling, testen, en productieomgevingen terwijl het verbruik van hulpbronnen wordt geminimaliseerd.
In combinatie met een Virtuele privéserver (VPS), Docker biedt een krachtig, flexibele, en kosteneffectief platform voor het hosten van websites, API's, databases, ontwikkelomgevingen, en microdiensten.
In deze handleiding wordt uitgelegd wat Docker is, waarom het gunstig is voor VPS-hosting, en hoe je Docker op een Ubuntu VPS installeert en configureert.
Wat is Docker?
Docker is een open-source containerisatieplatform waarmee applicaties kunnen worden uitgevoerd in geïsoleerde omgevingen die containers worden genoemd.
In tegenstelling tot traditionele virtuele machines, Docker-containers vereisen geen apart besturingssysteem. In plaats van, containers delen de kernel van het hostbesturingssysteem terwijl de isolatie tussen applicaties behouden blijft.
Deze architectuur biedt verschillende voordelen:
WordPress-webhosting
Vanaf $ 3,99/maandelijks
- Lager gebruik van hulpbronnen
- Snellere implementatie
- Consistente omgevingen
- Vereenvoudigd applicatiebeheer
- Verbeterde schaalbaarheid
Hoe Docker werkt
Docker gebruikt verschillende belangrijke componenten:
Afbeeldingen
Docker-images dienen als sjablonen die worden gebruikt om containers te maken.
Een afbeelding bevat:
- Applicatiecode
- Runtime-omgeving
- Bibliotheken
- Afhankelijkheden
- Configuratiebestanden
Afbeeldingen zijn onveranderlijk en herbruikbaar.
Containers
Containers voeren exemplaren van Docker-images uit.
Op dezelfde VPS kunnen meerdere containers tegelijk draaien zonder dat ze elkaar hinderen.
Goedkope VPS-server
Vanaf $ 2,99/maandelijks
Dockerbestand
Een Dockerfile is een tekstbestand met instructies die worden gebruikt om Docker-images automatisch te bouwen.
Voorbeeld:
FROM ubuntu:24.04
RUN apt update && apt install -y nginx
CMD ["nginx", "-g", "daemon off;"]
Docker-register
Docker-registers slaan Docker-images op en distribueren deze.
Populaire registers zijn onder meer:
- Docker-hub
- GitHub-containerregister
- Quay.io
- Privé registers
Waarom Docker gebruiken op een VPS?
Docker en VPS-hosting werken uitzonderlijk goed samen.
Efficiëntie van hulpbronnen
Containers verbruiken aanzienlijk minder bronnen dan traditionele virtuele machines, omdat ze de kernel van het hostbesturingssysteem delen.
Windows VPS-hosting
Toegang op afstand en volledig beheer
Voordelen zijn onder meer:
- Lager geheugengebruik
- Verminderde CPU-overhead
- Snellere opstarttijden
Toepassingsisolatie
Elke applicatie draait in zijn eigen container.
Dit voorkomt:
- Afhankelijkheidsconflicten
- Conflicten met pakketversies
- Interferentie tussen toepassingen
Draagbaarheid
Het gebruik van dezelfde afbeelding verbetert de consistentie, maar architectuur, kernel-functies, opslag en configuratie kunnen nog steeds het gedrag veranderen.
U kunt een container op uw ontwikkelmachine bouwen en exact dezelfde container in productie zetten.
Schaalbaarheid
Containers kunnen snel worden gerepliceerd om meer verkeer of werklasten aan te kunnen.
Dit is vooral handig voor:
- API's
- SaaS-applicaties
- Webapplicaties
- Microdiensten
Vereenvoudigde implementatie
Applicaties kunnen met één enkele opdracht worden geïmplementeerd in plaats van handmatig software en afhankelijkheden te installeren.
Veelvoorkomende Docker VPS-gebruiksscenario's
Docker wordt veel gebruikt:
Website-hosting
Voorbeelden:
- WordPress
- Joomla
- Drupal
- Laravel
Ontwikkelomgevingen
Ontwikkelaars kunnen geïsoleerde omgevingen onderhouden:
- PHP
- Python
- Knooppunt.js
- Gaan
- Java
Databases
Populaire databasecontainers zijn onder meer:
- MySQL
- MariaDB
- PostgreSQL
- MongoDB
- Opnieuw
Omgekeerde proxy's
Voorbeelden:
- Nginx
- Verkeer
- HAProxy
Zelf-gehoste applicaties
Voorbeelden:
- Volgendewolk
- Mastodont
- Open WebUI
- Gratis chatten
- GitLab
Vereisten
Deze opdrachten zijn gericht op een fresh, ondersteunde Ubuntu VPS. Als Docker of containerd al is geïnstalleerd, bekijk pakketconflicten en behoud bestaande werklasten voordat u van opslagplaats verandert. Voer Docker-opdrachten uit met sudo totdat u opzettelijk Docker-groepstoegang verleent.
Voordat u Docker installeert, Zorg ervoor dat uw VPS aan de volgende vereisten voldoet.
Besturingssysteem
Aanbevolen:
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
Andere distributies vereisen hun eigen installatie-instructies; voorbeelden zijn onder meer:
- AlmaLinux
- Rotsachtige Linux
- Debian
- Fedora
Root- of Sudo-toegang
Toegang verifiëren:
sudo whoami
Verwachte opbrengst:
root
Update bestaande pakketten
Update het besturingssysteem vóór de installatie:
sudo apt update
sudo apt upgrade -y
Docker installeren op Ubuntu
Stap 1: Installeer de vereiste afhankelijkheden
Installeer vereiste pakketten:
sudo apt install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common \
gnupg \
lsb-release -y
Stap 2: Voeg de officiële GPG-sleutel van Docker toe
Download en installeer de ondertekeningssleutel van de Docker-repository:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
Verifiëren:
ls -l /usr/share/keyrings/docker.gpg
Stap 3: Docker-repository toevoegen
Voeg de officiële repository van Docker toe:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Pakketlijsten bijwerken:
sudo apt update
Stap 4: Installeer Docker-engine
Installeer Docker:
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Stap 5: Controleer de Docker-installatie
Controleer de Docker-versie:
docker --version
Voorbeelduitvoer:
Docker version <installed-version>
Controleer de servicestatus:
sudo systemctl status docker
Verwachte opbrengst:
active (running)
Stap 6: Schakel Docker in tijdens het opstarten
Schakel automatisch opstarten in:
sudo systemctl enable docker
Verifiëren:
sudo systemctl is-enabled docker
Verwachte opbrengst:
enabled
Uw eerste Docker-container uitvoeren
Docker biedt een eenvoudige testimage.
Loop:
sudo docker run --rm hello-world
Succesvolle uitvoer bevestigt:
- Docker-engine werkt
- Containerdownloads werken correct
- Netwerkconnectiviteit is operationeel
Een Nginx-container uitvoeren
Start een webserver:
docker run -d \
--name nginx \
-p 80:80 \
nginx
Controleer actieve containers:
docker ps
Open uw browser:
http://SERVER-IP
De Nginx-welkomstpagina zou moeten verschijnen.
Docker uitvoeren zonder root
Lidmaatschap van de dockergroep geeft effectief controle op rootniveau over deze server; alleen vertrouwde beheerders zouden deze moeten ontvangen. Dit is anders dan de rootloze modus van Docker.
Standaard, Docker vereist rootrechten.
Voeg uw gebruiker toe aan de Docker-groep:
sudo usermod -aG docker $USER
Wijzigingen toepassen:
newgrp docker
Verifiëren:
docker ps
Als er geen sudo vereist is, configuratie is succesvol.
Basis Docker-opdrachten
Lijst met actieve containers
docker ps
Maak een lijst van alle containers
docker ps -a
Bekijk afbeeldingen
docker images
Stopcontainer
docker stop container_name
Container starten
docker start container_name
Start Container opnieuw
docker restart container_name
Container verwijderen
docker rm container_name
Afbeelding verwijderen
docker rmi image_name
Docker Compose installeren
Moderne Docker-installaties bevatten Docker Compose als plug-in.
Verifiëren:
docker compose version
Voorbeelduitvoer:
Docker Compose version v2.x.x
Uw eerste Docker Compose-project maken
Verwijder eerst de eerdere demonstratie NGINX-container als deze nog steeds poort gebruikt 80 of de naam nginx. Voor echte toepassingen, gebruik persistente volumes, versie van afbeeldingstags en getest back-ups voordat u containers vervangt.
Maak een projectmap:
mkdir docker-test
cd docker-test
Creëren:
nano compose.yml
Voorbeeld:
services:
nginx:
image: nginx
container_name: nginx
ports:
- "80:80"
Begin:
docker compose up -d
Verifiëren:
docker compose ps
Stop:
docker compose down
Containerlogboeken beheren
Bekijk logboeken:
docker logs container_name
Volg logboeken in realtime:
docker logs -f container_name
Dit is vooral handig bij het oplossen van problemen met toepassingen.
Docker-containers bijwerken
Haal de nieuwste afbeelding op:
docker pull nginx
Houd container tegen:
docker stop nginx
Reservoir verwijderen:
docker rm nginx
Maak een nieuwe container met behulp van de bijgewerkte afbeelding.
Aanbevolen procedures voor Docker-beveiliging
Gepubliceerde poorten kunnen de normale UFW-filtering omzeilen omdat Docker zijn eigen netwerkregels beheert. Beperk de toegang met behulp van Docker-compatibele filters of een upstream firewall en bind privéservices aan localhost of een beschermde interface. Stel nooit de niet-geverifieerde Docker-API bloot.
Gebruik vertrouwde afbeeldingen
Geef de voorkeur aan officiële afbeeldingen van vertrouwde registers.
Voorbeeld:
nginx
mariadb
redis
ubuntu
Vermijd uitvoeren als root
Configureer applicaties zo mogelijk zo dat ze als niet-rootgebruikers kunnen worden uitgevoerd.
Houd Docker bijgewerkt
Regelmatig bijwerken:
sudo apt update
sudo apt upgrade
Beperk het gebruik van hulpbronnen
Voorbeeld:
docker run \
--memory=512m \
--cpus=1 \
nginx
Dit voorkomt dat een container buitensporige hulpbronnen verbruikt.
Verwijder ongebruikte voorwerpen
Ruim ongebruikte bronnen op:
docker system prune -a
Controleer het zorgvuldig voordat u het bevestigt.
Algemene Docker-probleemoplossing
Docker-service wordt niet uitgevoerd
Handmatig starten:
sudo systemctl start docker
Toestemming geweigerd
Groepslidmaatschap verifiëren:
groups
Ervoor zorgen:
docker
verschijnt in de uitvoer.
Poort al in gebruik
Controleer luisterdiensten:
ss -tulpn
Wijzig indien nodig de Docker-poorttoewijzing:
docker run -p 8080:80 nginx
Container vertrekt onmiddellijk
Inspecteer logboeken:
docker logs container_name
De meeste opstartproblemen kunnen worden geïdentificeerd via loganalyse.
Docker versus virtuele machines
| Functie | Docker-containers | Virtuele machines |
|---|---|---|
| Opstarttijd | Seconden | Notulen |
| Gebruik van hulpbronnen | Laag | Hoog |
| Gast-besturingssysteem | Niet vereist | Vereist |
| Prestatie | In de buurt van Inheems | Lichte overhead |
| Schaalbaarheid | Uitstekend | Gematigd |
Containers zijn ideaal voor de implementatie van applicaties, terwijl virtuele machines nuttig blijven wanneer volledige isolatie van het besturingssysteem vereist is.
Laatste gedachten
Docker transformeert een VPS in een flexibel applicatiehostingplatform dat websites kan draaien, API's, databases, ontwikkelomgevingen, en bedrijfsapplicaties met minimale overhead. Zijn lichtgewicht architectuur, draagbaarheid, en schaalbaarheid maken het tot een van de meest waardevolle tools die beschikbaar zijn voor moderne systeembeheerders en ontwikkelaars.
Door Docker op je VPS te installeren en de basisprincipes van containerbeheer te leren, u krijgt een krachtige basis voor een betrouwbare inzet, zeker, en zeer draagbare toepassingen in vrijwel elke omgeving.
