DevOps-bootcamp · Lektion

Distribuera appar med flera tjänster

Distribuera en fullstackapplikation med en databas och en backend-tjänst med Docker Compose.

Lektion 3 av 411 steg

Distribuera appar med flera tjänster är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Distribuera appar med flera tjänster

Välkommen! I den här lektionen lär du dig att ta en fullstackapplikation online med Docker Compose.

Du får se hur du definierar flera tjänster, till exempel en webbapp och en databas, och sedan distribuerar och hanterar dem tillsammans.

Distribuera appar med flera tjänster — illustration 1

Vårt exempel: webb och databas

Vi ska distribuera en enkel webbapplikation som ansluter till en databas. Detta är en vanlig konfiguration för många verkliga applikationer.

  • Webbtjänst: En Python Flask-applikation som visar en enkel webbsida.
  • Databastjänst: En PostgreSQL-databas för lagring av data.

Docker Compose gör det enkelt att orkestrera dessa två tjänster!

Bygga webbavbildningen

Webbtjänsten behöver en egen Docker-avbildning. Här är en förenklad Dockerfile som bygger vår Python Flask-applikation.

Den installerar Flask och en PostgreSQL-anslutning och kör sedan vår app.py.

FROM python:3.9-slim-buster

WORKDIR /app

COPY . /app

RUN pip install --no-cache-dir flask psycopg2-binary

EXPOSE 5000

CMD ["python", "app.py"]

Filen `docker-compose.yml`

Den här docker-compose.yml-filen definierar våra två tjänster: web och db. Lägg märke till hur tjänsten web byggs från vår Dockerfile och ansluter till tjänsten db med hjälp av miljövariabler.

version: '3.8'
services:
  web:
    build: .
    ports:
      - "5000:5000"
    environment:
      DB_HOST: db
      DB_NAME: mydatabase
      DB_USER: user
      DB_PASSWORD: password
    depends_on:
      - db
  db:
    image: postgres:13
    environment:
      POSTGRES_DB: mydatabase
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

Starta tjänsterna

Om du vill starta alla tjänster som definieras i filen docker-compose.yml använder du kommandot docker compose up.

Flaggan -d kör containrarna i läget "detached", vilket innebär att de körs i bakgrunden.

# This command starts your multi-service app
# and runs it in the background.
docker compose up -d

Verifiera körande containrar

När du har kört docker compose up -d vill du kontrollera att alla tjänster körs som förväntat.

Kommandot docker compose ps listar tjänsterna, deras status och portar.

# Check the status of your services
docker compose ps

Anslut till appen

När tjänsterna körs kan du komma åt webbapplikationen.

  • Öppna webbläsaren.
  • Gå till http://localhost:5000.

Du bör se ett meddelande från vår Flask-app som bekräftar anslutningen till PostgreSQL-databasen!

Skala tjänster

En kraftfull funktion i Docker Compose är att skala tjänster. Om webbappen behöver hantera mer trafik kan du enkelt öka antalet instanser av webbtjänsten.

Använd flaggan --scale tillsammans med docker compose up.

# Scale the 'web' service to 3 instances
docker compose up --scale web=3 -d

Stoppa och ta bort tjänster

När du är klar med applikationen kan du stoppa och ta bort alla tjänster och deras nätverk som definieras i docker-compose.yml.

Kommandot docker compose down hanterar denna rensning åt dig.

# Stop and remove all services
docker compose down

Snabbkontroll

Tänk på den docker-compose.yml som vi använde. Du har precis startat applikationen med docker compose up -d.

Vilket är det primära kommandot för att stoppa och ta bort alla körande tjänster och deras tillhörande resurser?

Sammanfattning och nästa steg

Bra jobbat! Du har lärt dig att distribuera och hantera en applikation med flera tjänster med hjälp av Docker Compose.

  • Vi definierade tjänster i docker-compose.yml.
  • Vi använde docker compose up -d för att starta tjänster.
  • Vi verifierade statusen med docker compose ps.
  • Vi skalade tjänster och använde docker compose down för rensning.

Detta är en grundläggande färdighet för lokal utveckling och testning av komplexa applikationer!

Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”Distribuera appar med flera tjänster” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Distribuera appar med flera tjänster”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”Distribuera appar med flera tjänster”?

Distribuera en fullstackapplikation med en databas och en backend-tjänst med Docker Compose. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Distribuera appar med flera tjänster”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Vad är Docker Compose?
  2. Skriv en Compose-fil
  3. Distribuera appar med flera tjänster
  4. Miljövariabler och .env-filer
← Tillbaka till DevOps-bootcamp