Voordat ik Docker ontdekte, vond ik het altijd een worsteling om applicaties op mijn server te installeren. Het kostte veel tijd om alle afhankelijkheden correct te configureren en conflicten tussen verschillende applicaties te voorkomen. Met Docker veranderde alles: applicaties zijn nu snel en eenvoudig te implementeren, en mijn servers blijven georganiseerd en schoon.
Wat is Docker?
Docker is een open-source platform dat het proces van applicatieontwikkeling, -distributie en -uitvoering vereenvoudigt door gebruik te maken van containers. Containers zijn lichtgewicht, geïsoleerde omgevingen die alle benodigde software, bibliotheken en afhankelijkheden bevatten om een applicatie te laten draaien. Hierdoor kun je applicaties ontwikkelen die consistent werken in verschillende omgevingen, van ontwikkelstations tot productieservers.
Wat kun je doen met Docker?
- Applicaties isoleren: Draai meerdere applicaties met verschillende afhankelijkheden op dezelfde server zonder conflicten.
- Schaalbaarheid: Start en schaal applicaties eenvoudig met meerdere containers.
- Gemakkelijk testen: Simuleer productieomgevingen lokaal.
- Portabiliteit: Maak applicaties platformonafhankelijk.
- Snelle implementatie: Deploy applicaties in seconden in plaats van minuten of uren.
Installatie van Docker op een Linux Server
Stap 1: Update je pakketbeheer
sudo apt update
sudo apt upgrade -y
Stap 2: Docker installeren
- Installeer benodigde pakketten:
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
2. Voeg de Docker GPG-sleutel toe:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
3. Voeg de Docker-repository toe:
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
4. Installeer Docker:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
5. Controleer of Docker werkt:
sudo systemctl status docker
Stap 3: Voeg de huidige gebruiker toe aan de Docker-groep (optioneel)
Dit maakt het mogelijk om Docker te gebruiken zonder telkens ‘sudo’ te moeten typen.
sudo usermod -aG docker $USER
Log uit en opnieuw in om de wijziging te activeren.
Basis Docker-commando’s
Containermanagement
Containers starten:
docker run [options] image_name
Voorbeeld:
docker run -d -p 8080:80 nginx
Lijst van actieve containers:
docker ps
Lijst van alle containers (ook gestopte):
docker ps -a
Container stoppen:
docker stop container_id
Container verwijderen:
docker rm container_id
Imagemanagement
Een Docker image is een kant-en-klaar pakket dat alles bevat wat nodig is om een applicatie te draaien, zoals de applicatie zelf, de bibliotheken, en de afhankelijkheden. Images fungeren als een blauwdruk voor containers en kunnen gemakkelijk worden gedeeld en hergebruikt.
Lijst van beschikbare images:
docker images
Image downloaden:
docker pull image_name
Image verwijderen:
docker rmi image_name
Docker logs bekijken:
docker logs container_id
Interactie met een draaiende container:
docker exec -it container_id bash
Docker versie controleren:
docker version
Voorbeeld: Proxy Manager installeren
NGINX Proxy Manager is een gebruiksvriendelijke applicatie waarmee je eenvoudig reverse proxies kunt configureren en beheren via een webinterface.
Stap 1: Maak een docker-compose.yml bestand
Docker Compose maakt het eenvoudig om meerdere containers te beheren.
Installeer Docker Compose (indien nodig):
sudo apt install docker-compose -y
Maak een map aan voor Proxy Manager:
mkdir -p ~/proxy-manager
cd ~/proxy-manager
Creëer het bestand docker-compose.yml:
Gebruik een teksteditor, bijvoorbeeld nano:
nano docker-compose.yml
Voeg de volgende inhoud toe:
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
ports:
- '80:80'
- '81:81'
- '443:443'
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'mysql:5.7'
environment:
MYSQL_ROOT_PASSWORD: 'rootpassword'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
Stap 2: Start de containers
Voer het volgende commando uit in de map waar het bestand docker-compose.yml zich bevindt:
docker compose up -d
Stap 3: Toegang tot de Proxy Manager
Open een webbrowser en ga naar http://<jouw-server-ip>:81
De standaard inloggegevens waar je de eerste keer mee kunt inloggen zijn:
Gebruikersnaam: admin@example.com
Wachtwoord: changeme
Pas het wachtwoord aan en configureer je proxies!
Met Docker kun je eenvoudig complexe applicaties zoals NGINX Proxy Manager draaien. Door gebruik te maken van containers blijft je server schoon en goed georganiseerd. Experimenteer verder met Docker om de volledige kracht ervan te benutten!
Tot slot nog een paar handige links:
Voor uitgebreide informatie over Docker, installatie, en best practices ga je naar de Officiële Docker Documentatie:
https://docs.docker.com/
Voor het zoeken naar en het downloaden van Docker images ga je naarDocker Hub :
https://hub.docker.com/
Specifieke informatie over de installatie en het gebruik van NGINX Proxy Manager bezoek je de NGINX Proxy Manager Documentatie :
https://nginxproxymanager.com/
Documentatie voor Docker Compose, inclusief syntax en configuratie vind je in de Docker Compose Referentie:
https://docs.docker.com/compose/