Docker Compose installeren
Docker Compose is meestal inbegrepen bij Docker Desktop of kan afzonderlijk worden geïnstalleerd. Hieronder staat hoe u de Docker Compose CLI-plug-in in een Linux-omgeving installeert.
Docker Compose CLI-plug-in op Linux installeren
Installeer de nieuwste Docker Compose CLI-plug-in door deze te downloaden en uitvoerrechten te verlenen. Gebruik deze methode om Docker Compose te installeren als u Docker Desktop niet gebruikt.
Docker Compose-plug-in downloaden en installeren
sudo curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Download de nieuwste versie van de Docker Compose CLI-plug-in, verleen uitvoerrechten en plaats deze op het juiste pad.
Docker Compose-versie controleren
docker compose version
Controleer de Docker Compose-versie om te bevestigen dat de installatie is voltooid.
Belangrijkste Docker Compose-opdrachten
Docker Compose wordt gebruikt om services te beheren die zijn gedefinieerd in een `docker-compose.yml`-bestand. Beheer eenvoudig toepassingen met meerdere containers met de onderstaande opties.
1. Toepassingen bouwen en uitvoeren
2. Toepassingen stoppen en verwijderen
3. Services beheren
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`docker compose` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Structuur van het `docker-compose.yml`-bestand
Docker Compose gebruikt een `docker-compose.yml`-bestand om services, netwerken, volumes en meer te definiëren. Dit bestand is geschreven in YAML-formaat en geeft duidelijk de componenten van de toepassing en hun relaties weer.
Basisstructuur
Het `docker-compose.yml`-bestand heeft top-level keys zoals `version`, `services`, `networks` en `volumes`. Het belangrijkste onderdeel is de sectie `services`, die elke container definieert waaruit de toepassing bestaat.
Voorbeeld van een eenvoudige webtoepassing
version: '3.8'
services:
web:
image: nginx:latest
ports:
- '80:80'
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
depends_on:
- api
api:
build: .
ports:
- '3000:3000'
environment:
NODE_ENV: production
volumes:
data_volume:
Een `docker-compose.yml`-voorbeeld voor een eenvoudige toepassing die bestaat uit een Nginx-webserver en een Node.js-backendservice.
Uitleg van de sleutels
Verklaringen van de belangrijkste instellingen die vaak worden gebruikt in het `docker-compose.yml`-bestand.
- version: Specificeert de versie van het Compose-bestandsformaat. Het wordt aanbevolen om de nieuwste versie te gebruiken (bijv. '3.8').
- services: Deze sectie definieert elke container-service waaruit de toepassing bestaat.
- image: Specificeert de naam van de Docker-image die moet worden gebruikt voor de service. (bijv. `nginx:latest`)
- build: Specificeert het pad naar het Dockerfile om de image te bouwen. (bijv. `.` )
- ports: Definieert poortmappings tussen de host en de container. (bijv. `- '80:80'`)
- volumes: Definieert volume-mounts voor gegevenspersistentie. (bijv. `- ./data:/app/data`)
- environment: Definieert omgevingsvariabelen die in de container moeten worden ingesteld.
- depends_on: Definieert afhankelijkheden tussen services. (bijv. wanneer de `db`-service moet worden gestart vóór de `web`-service)
- networks: Definieert de netwerken waarmee de service verbinding zal maken.
Gebruiksvoorbeelden
Leer hoe u toepassingen met meerdere containers efficiënt beheert aan de hand van praktische gebruiksvoorbeelden van Docker Compose-opdrachten.
Een Docker Compose-project starten (op de achtergrond)
docker compose up -d
Leest het `docker-compose.yml`-bestand in de huidige map en start alle services op de achtergrond.
Een specifieke service opnieuw opstarten
docker compose restart web
Herstart alleen de 'web'-service die is gedefinieerd in `docker-compose.yml`.
Logs in real-time bekijken
docker compose logs -f
Streamt logs van alle services in real-time naar de terminal om het gedrag van de toepassing te controleren.
De toepassing stoppen en gerelateerde bronnen verwijderen
docker compose down -v
Stopt en verwijdert alle actieve servicecontainers, en verwijdert ook de gedefinieerde netwerken en anonieme volumes.
Het pad naar het Docker Compose-bestand opgeven
docker compose -f /path/to/my-app/docker-compose.prod.yml up -d
Voert een Compose-bestand uit met een andere naam of op een ander pad in plaats van het standaard `docker-compose.yml`-bestand.