Docker Compose: Grunnleggende og bruk

Docker Compose er et kraftig og populært verktøy som brukes til å administrere og distribuere applikasjoner basert på Docker. Den lar deg definere, konfigurere og kjøre flere Docker containere som et enkelt prosjekt, forenkler applikasjonsdistribusjon og sikrer konsistens mellom utviklings- og produksjonsmiljøer.

Nedenfor er noen konsepter og eksempler på Docker Compose:

Definer prosjektet ved å bruke filen docker-compose.yml

I docker-compose.yml filen kan du definere tjenestene som kreves for søknaden din. For eksempel, for å distribuere en PHP-nettapplikasjon med en MySQL-database, kan du definere to tjenester som følger:

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  

I kodebiten ovenfor definerer vi to tjenester: web og db. Tjenesten web vil bruke PHP 7.4 image med Apache, lytte på port 80 og montere ./app katalogen fra verten til /var/www/html katalogen i container. Tjenesten db vil bruke MySQL 5.7 image og sette noen miljøvariabler som kreves for databasen.

 

Ved hjelp av Docker Compose kommando

Når du har definert prosjektet i filen docker-compose.yml, kan du bruke Docker Compose kommandoer til å administrere tjenestene.

  • Start prosjektet: docker-compose up

    Denne kommandoen starter beholderne for tjenestene som er definert i filen docker-compose.yml.

  • Stopp og fjern beholderne: docker-compose down

    Denne kommandoen stopper og fjerner alle beholdere relatert til prosjektet.

  • Liste kjørende beholdere: docker-compose ps

    Denne kommandoen vil vise statusen til beholderne i prosjektet.

  • Se tjenestelogger: docker-compose logs

    Denne kommandoen viser loggene til tjenestene i prosjektet.

 

Miljøvariabler og tilpasning

Docker Compose lar deg bruke miljøvariabler til å tilpasse konfigurasjoner for forskjellige miljøer, for eksempel utvikling og produksjon. Du kan bruke miljøvariabler i docker-compose.yml filen og definere verdiene deres i tilsvarende .env filer.

For eksempel, hvis du vil definere en miljøvariabel for porten til tjenesten web, kan du legge til en linje i .env filen slik:

WEB_PORT=8080

Deretter, i docker-compose.yml filen, kan du bruke denne miljøvariabelen slik:

version: "3"  
services:  
  web:  
    image: php:7.4-apache  
    ports:  
   - "${WEB_PORT}:80"  
    volumes:  
   - ./app:/var/www/html  

Når du kjører kommandoen docker-compose up, web vil tjenesten lytte på port 8080 i stedet for port 80.

 

Integrering med Docker Swam

Hvis du ønsker å distribuere applikasjonen din i et distribuert miljø med flere noder, Docker Compose kan du integrere med Docker Swarm. Dette lar deg administrere tjenester på tvers av flere noder i en Docker klynge.

For å bruke denne integrasjonen trenger du bare å legge til alternativene --orchestrate eller --with-registry-auth når du kjører docker stack deploy eller docker-compose up kommandoer i et Swarm miljø.

 

Docker Compose er et nyttig verktøy for enkel og effektiv applikasjonsutvikling, testing og distribusjon. Det minimerer forskjellene mellom utviklings- og produksjonsmiljøer, sikrer konsistens i programvareutviklingsprosessen og øker produktiviteten til utviklingsteam.