Grundlæggende Docker og DevOps · Lektion

Udrulning af apps med flere services

Udrul en full-stack-applikation med en database- og backend-service ved hjælp af Docker Compose.

Lektion 3 af 411 trin

Udrulning af apps med flere services er en gratis Grundlæggende Docker og DevOps-lektion på CoddyKit. Dette er lektion 3 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Grundlæggende Docker og DevOps, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Implementering af apps med flere tjenester

Velkommen! I denne lektion lærer du, hvordan du gør en full-stack-applikation tilgængelig online ved hjælp af Docker Compose.

Du får se, hvordan du definerer flere tjenester, f.eks. en webapp og en database, og derefter implementerer og administrerer dem samlet.

Udrulning af apps med flere services — illustration 1

Vores eksempel: web og database

Vi implementerer en simpel webapplikation, der opretter forbindelse til en database. Det er en almindelig opsætning for mange applikationer i den virkelige verden.

  • Webtjeneste: En Python Flask-applikation, der leverer en enkel webside.
  • Databasetjeneste: En PostgreSQL-database til lagring af data.

Docker Compose gør det nemt at orkestrere disse to tjenester!

Opbygning af webimaget

Vores webtjeneste har brug for sit eget Docker-image. Her er en forenklet Dockerfile, der opbygger vores Python Flask-applikation.

Den installerer Flask og en PostgreSQL-forbindelse og kører derefter vores 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"]

`docker-compose.yml`-filen

Denne docker-compose.yml-fil definerer vores to tjenester: web og db. Bemærk, hvordan web-tjenesten opbygges fra vores Dockerfile og opretter forbindelse til db-tjenesten ved hjælp af 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:

Start af dine tjenester

For at starte alle tjenester, der er defineret i din docker-compose.yml-fil, bruger du kommandoen docker compose up.

Flaget -d kører containerne i tilstanden "detached", hvilket betyder, at de kører i baggrunden.

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

Kontrol af kørende containere

Efter at have kørt docker compose up -d vil du sikkert kontrollere, om alle dine tjenester kører som forventet.

Kommandoen docker compose ps viser tjenesterne samt deres status og porte.

# Check the status of your services
docker compose ps

Opret forbindelse til din app

Når tjenesterne kører, kan du få adgang til din webapplikation.

  • Åbn din webbrowser.
  • Gå til http://localhost:5000.

Du bør se en meddelelse fra vores Flask-app, der bekræfter dens forbindelse til PostgreSQL-databasen!

Skalering af tjenester

En effektiv funktion i Docker Compose er skalering af tjenester. Hvis din webapp skal håndtere mere trafik, kan du nemt øge antallet af instanser af webtjenesten.

Brug flaget --scale sammen med docker compose up.

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

Stop og fjernelse af tjenester

Når du er færdig med din applikation, kan du stoppe og fjerne alle tjenesterne og deres netværk, der er defineret i din docker-compose.yml.

Kommandoen docker compose down udfører denne oprydning for dig.

# Stop and remove all services
docker compose down

Hurtig kontrol

Se på den docker-compose.yml-fil, vi brugte. Du har netop startet din applikation med docker compose up -d.

Hvad er den primære kommando til at stoppe og fjerne alle kørende tjenester og deres tilknyttede ressourcer?

Opsummering og næste skridt

Godt arbejde! Du har lært, hvordan du implementerer og administrerer en applikation med flere tjenester ved hjælp af Docker Compose.

  • Vi definerede tjenester i docker-compose.yml.
  • Vi brugte docker compose up -d til at starte tjenester.
  • Vi kontrollerede status med docker compose ps.
  • Vi skalerede tjenester og brugte docker compose down til oprydning.

Det er en grundlæggende færdighed til lokal udvikling og test af komplekse applikationer!

Gratis at komme i gang

Lær Grundlæggende Docker og DevOps med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Udrulning af apps med flere services” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende Docker og DevOps, inklusive “Udrulning af apps med flere services”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Grundlæggende Docker og DevOps-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Udrulning af apps med flere services”?

Udrul en full-stack-applikation med en database- og backend-service ved hjælp af Docker Compose. Du øver dig i Grundlæggende Docker og DevOps med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Grundlæggende Docker og DevOps?

Der kræves ingen tidligere erfaring. Grundlæggende Docker og DevOps på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 4.

Hvor lang tid tager lektionen “Udrulning af apps med flere services”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Grundlæggende Docker og DevOps-lektion?

Ja. Alle Grundlæggende Docker og DevOps-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Hvad er Docker Compose?
  2. Skrivning af en Compose-fil
  3. Udrulning af apps med flere services
  4. Environment-variabler og .env-filer
← Tilbage til Grundlæggende Docker og DevOps