Docker Compose is een krachtige en populaire tool die wordt gebruikt voor het beheren en implementeren van applicaties op basis van Docker. Docker Hiermee kunt u meerdere containers als één project definiëren, configureren en uitvoeren, waardoor de implementatie van applicaties wordt vereenvoudigd en consistentie tussen ontwikkel- en productieomgevingen wordt gegarandeerd.
Hieronder staan enkele concepten en voorbeelden van Docker Compose:
Definieer het project met behulp van het bestand docker-compose.yml
In het docker-compose.yml
bestand kunt u de services definiëren die nodig zijn voor uw toepassing. Om bijvoorbeeld een PHP-webtoepassing met een MySQL-database te implementeren, kunt u twee services als volgt definiëren:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "80:80"
volumes:
- ./app:/var/www/html
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: my_database
In het bovenstaande codefragment definiëren we twee services: web
en db
. De web
service gebruikt de PHP 7.4 image met Apache, luistert op poort 80 en koppelt de ./app
map van de host in de /var/www/html
map in het container. De db
service gebruikt MySQL 5.7 image en stelt enkele omgevingsvariabelen in die vereist zijn voor de database.
Docker Compose Opdracht gebruiken
Nadat u het project in het bestand hebt gedefinieerd docker-compose.yml
, kunt u Docker Compose opdrachten gebruiken om de services te beheren.
-
Start het project:
docker-compose up
Deze opdracht start de containers voor de services die in het
docker-compose.yml
bestand zijn gedefinieerd. -
Stop en verwijder de containers:
docker-compose down
Deze opdracht stopt en verwijdert alle containers die betrekking hebben op het project.
-
Lijst lopende containers:
docker-compose ps
Met deze opdracht wordt de status van de containers in het project weergegeven.
-
Servicelogboeken bekijken:
docker-compose logs
Deze opdracht toont de logboeken van de services in het project.
Omgevingsvariabelen en maatwerk
Docker Compose stelt u in staat omgevingsvariabelen te gebruiken om configuraties aan te passen voor verschillende omgevingen, zoals ontwikkeling en productie. U kunt omgevingsvariabelen in het docker-compose.yml
bestand gebruiken en hun waarden in overeenkomstige bestanden definiëren .env
.
Als u bijvoorbeeld een omgevingsvariabele voor de poort van de web
service wilt definiëren, kunt u .env
als volgt een regel aan het bestand toevoegen:
WEB_PORT=8080
Vervolgens docker-compose.yml
kunt u in het bestand deze omgevingsvariabele als volgt gebruiken:
version: "3"
services:
web:
image: php:7.4-apache
ports:
- "${WEB_PORT}:80"
volumes:
- ./app:/var/www/html
Bij het uitvoeren van de docker-compose up
opdracht web
luistert de service op poort 8080 in plaats van op poort 80.
Integratie met Docker Swam
Als u uw applicatie wilt implementeren in een gedistribueerde omgeving met meerdere knooppunten, Docker Compose kunt u deze integreren met Docker Swarm. Hierdoor kunt u services over meerdere knooppunten in een cluster beheren Docker.
Om deze integratie te gebruiken, hoeft u alleen de --orchestrate
of- --with-registry-auth
opties toe te voegen bij het uitvoeren van docker stack deploy
of- docker-compose up
opdrachten in een Swarm omgeving.
Docker Compose is een handige tool voor het eenvoudig en efficiënt ontwikkelen, testen en implementeren van applicaties. Het minimaliseert de verschillen tussen ontwikkel- en productieomgevingen, zorgt voor consistentie in het softwareontwikkelingsproces en verhoogt de productiviteit van ontwikkelteams.