Vad är Docker Compose och hur använder du det?

0
188

Docker Compose är ett verktyg som du kan använda för att centralt hantera distributioner av många olika Docker -behållare. Det är ett viktigt verktyg för alla applikationer som behöver flera mikrotjänster, eftersom det gör att varje tjänst enkelt kan finnas i en separat hanterad behållare.

Vad Gör Docker Compose Do?

Dockerbehållare används för att köra applikationer i en isolerad miljö. Det är ganska vanligt nuförtiden att se applikationsdistributioner göras i Docker för de många fördelarna det ger. Men det är ofta inte så enkelt som att bara köra en enda behållare. Vanligtvis kan det hända att många behållare samlas för att fungera som en sammanhängande tjänst som består av många rörliga delar.

Att hantera alla dessa vid distributionstid är rörigt, så för att städa upp det tillhandahåller Docker Docker Compose, ett konfigurationsverktyg som används för att köra flera behållare samtidigt. Du kan definiera all konfiguration i en YAML -fil och sedan starta alla behållare med ett kommando.

I stället för att ha alla dina tjänster i en stor behållare kan du dela upp dem i individuellt hanterbara behållare. Detta är både bättre för att bygga och distribuera, eftersom du kan hantera dem alla i separata kodbaser och inte behöver starta varje enskild behållare manuellt.

Att använda Docker Compose är en process i tre steg:

  • Skapa komponentbilderna med deras Dockerfiles eller dra dem från ett register.
  • Definiera alla komponenttjänsterna i en docker-compose.yml-fil.
  • Kör dem tillsammans med hjälp av docker-compose CLI.

Docker Compose är inte en annan typ av Dockerfile. Du kommer fortfarande att behöva bygga och publicera dina Docker -behållare med en Dockerfile. Men i stället för att köra dem direkt kan du använda Docker Compose för att hantera konfigurationen av en distribution med flera behållare.

Hur använder du Docker Compose?

Konfigurationen för en docker-komponentfil görs i docker-compose.yml. Du behöver inte placera detta vid roten av ditt projekt som en Dockerfile. Faktum är att det kan gå någonstans, eftersom det inte beror på någon annan kod. Men om du bygger bilderna lokalt måste det gå in i en projektmapp med koden som byggs.

Annonsering

En komponera konfigurationsfil kommer att se ut ungefär som följande. Denna konfiguration kör en WordPress -instans med wordpress -behållaren från Docker Hub. Detta beror dock på en MySQL -databas, som också skapas av Compose.

version: '3' -tjänster: db: image: mysql: 5.7 volymer: – db_data:/var/lib/mysql restart: alltid miljö: MYSQL_ROOT_PASSWORD: rootpasswordchangeme MYSQL_DATABASE: wordpress MYSQL_USER: usernamechangeme MYSQL_PASSWORD: image_passon: word_passon wordpress: senaste portar: – “8000: 80” omstart: alltid miljö: WORDPRESS_DB_HOST: db: 3306 WORDPRESS_DB_USER: usernamechangeme WORDPRESS_DB_PASSWORD: passwordchangeme volumes: db_data:

Låt oss ta en titt på formatet för den här filen. Först ett versionsnummer, eftersom syntaxen kan ändras beroende på vilken version du använder.

Därefter en lista med tjänster. Den första heter “ db, ” och använder behållaren mysql: 5.7, inställd på att alltid starta om och med miljövariabler för att konfigurera databasen med en användare och lösenord. För att behålla data vid omstart konfigureras den här bilden med en Docker -volym monterad på MySQL -datakatalogen.

Den andra tjänsten är “ wordpress, ” som är beroende av databastjänsten, vilket säkerställer att Docker kommer att se till att databasen startas innan den körs. Den exponerar port 80 som port 8000 och ställer in vissa miljövariabler så att den kan ansluta till MySQL. Observera att värden för databasen är inställd på db: 3306, vilket berättar för WordPress -behållaren att ansluta till “ db ” tjänst.

Slutligen definieras volymerna för beständig lagring. Alternativt kan du också definiera anpassat nätverk för behållarna. Det finns gott om utökade alternativ som du kan konfigurera, så om du vill göra något specifikt bör du kolla dokumentationen för Docker Compose.

Annonsering

När du har konfigurerat den här tjänsten är lätt. Kör helt enkelt docker-compose up, vilket drar alla nödvändiga behållare och startar dina tjänster.

docker-compose up -d

Och du bör se de tjänster som körs på systemet med docker ps. I det här fallet kommer du att se att WordPress fungerar som det ska.

RELATERAD: Så här installerar du Docker och Docker Compose på Linux

Building Med Docker Compose

Docker Compose kan också användas inom ett Dockerfile -projekt och kan konfigureras för att bygga och köra en bild lokalt istället för att dra från Docker Hub.

Att göra så du behöver helt enkelt lägga till en build -sektion på tjänsten. Du kan ställa in olika sammanhangskataloger, liksom olika Dockerfiler för olika bilder.

version: “3.8” -tjänster: webapp: build: context: ./dir dockerfile: Dockerfile-alternativ bild: bildnamn: tagg

In i det här fallet är variabeln image: variabel också inställd, men här används den för att märka bilden som är byggd av Docker Compose.