Docker Compose: Basisprincipes en gebruik

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.