Docker ja Kubernetes kehittäjille · Oppitunti

Verkkosovelluksen kontittaminen

Käy läpi tyypillisen verkkosovelluksen Dockerisointi, mukaan lukien sen frontend-, backend- ja tietokantakomponentit.

Oppitunti 1/412 vaihetta

Verkkosovelluksen kontittaminen on ilmainen Docker ja Kubernetes kehittäjille-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Docker ja Kubernetes kehittäjille-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.

Verkkosovellusten säilöittäminen

Tervetuloa verkkosovelluksen säilöittämiseen! Tässä oppitunnissa käymme läpi, kuinka kokonainen verkkosovellus, sen käyttöliittymä, taustajärjestelmä ja tietokanta mukaan lukien, paketoidaan Docker-säilöihin.

Tämä on tärkeä vaihe nykyaikaisessa kehityksessä, sillä se mahdollistaa yhdenmukaisuuden eri ympäristöissä ja yksinkertaistaa käyttöönottoa.

Verkkosovelluksen arkkitehtuuri

Tyypillinen verkkosovellus koostuu yleensä useista yhdessä toimivista komponenteista. Esimerkissämme keskitymme yleiseen kolmikerroksiseen arkkitehtuuriin:

  • Käyttöliittymä: selaimessa toimiva käyttöliittymä (esimerkiksi React, Vue tai Angular).
  • Taustajärjestelmä: palvelinpuolen logiikka (esimerkiksi Node.js, Python Flask tai Java Spring), joka käsittelee liiketoimintalogiikan ja API-pyynnöt.
  • Tietokanta: sovelluksen tietojen tallennuksesta ja hallinnasta vastaava järjestelmä (esimerkiksi PostgreSQL, MySQL tai MongoDB).

Taustajärjestelmä: Node.js-rajapinta

Luodaan ensin Dockerfile yksinkertaiselle Node.js-taustajärjestelmän API:lle. Tämä tiedosto kertoo Dockerille, kuinka taustajärjestelmän palvelun näköistiedosto rakennetaan.

Aloitamme Node.js-perusnäköistiedostosta, kopioimme sovelluskoodin, asennamme riippuvuudet ja määritämme palvelimen käynnistyskomennon.

FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

Käyttöliittymä: React ja Nginx

Käyttöliittymässä käytämme monivaiheista Dockerfile-tiedostoa. Tämä on käyttöliittymäsovellusten hyvä käytäntö: sovellus voidaan rakentaa yhdessä vaiheessa ja staattiset resurssit tarjota erillisessä, pienemmässä vaiheessa kevyellä verkkopalvelimella, kuten Nginxillä.

Tuloksena lopullinen näköistiedosto on paljon pienempi.

FROM node:18-alpine as builder
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM nginx:stable-alpine
COPY --from=builder /app/build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

Tietokanta: PostgreSQL-palvelu

Tietokantaa varten meidän ei tarvitse kirjoittaa Dockerfile-tiedostoa. Sen sijaan voimme käyttää Docker Hubin virallista näköistiedostoa, kuten PostgreSQL:ää.

Docker-volyymin käyttö on ratkaisevan tärkeää, jotta tietokannan tiedot säilyvät, vaikka säilö poistettaisiin tai luotaisiin uudelleen. Määritämme tämän Docker Composea käyttäessämme.

Orkestrointi Composella

Nyt kun meillä on Dockerfile-tiedostot käyttöliittymälle ja taustajärjestelmälle ja tiedämme käyttävämme tietokannassa virallista näköistiedostoa, tarvitsemme tavan määrittää ja suorittaa kaikki nämä palvelut yhdessä.

Tässä Docker Compose tulee avuksi. Se käyttää YAML-tiedostoa (docker-compose.yml) kaikkien palvelujen, verkkojen ja volyymien määrittämiseen.

version: '3.8'
services:
  # Define your application services here

volumes:
  # Define named volumes for data persistence

networks:
  # Define custom networks for inter-service communication

Compose: taustajärjestelmän palvelu

Lisätään taustajärjestelmän palvelu tiedostoon docker-compose.yml. Määritämme sen rakennuskontekstin (sijainnin, jossa Dockerfile on), yhdistämme portit, määritämme tietokantayhteyden ympäristömuuttujat ja asetamme riippuvuuden tietokannasta.

version: '3.8'
services:
  backend:
    build: ./backend # Path to backend Dockerfile
    ports:
      - "3000:3000"
    environment:
      DATABASE_URL: postgres://user:password@db:5432/mydb
    depends_on:
      - db # Ensure db starts before backend
    networks:
      - app-network

networks:
  app-network:
    driver: bridge # Custom network for app services

Compose: käyttöliittymäpalvelu

Lisäämme seuraavaksi käyttöliittymäpalvelun määrityksen. Tämä palvelu rakennetaan myös Dockerfile-tiedostosta, se avaa portin 80 ja riippuu taustajärjestelmäpalvelusta, jotta se on käytettävissä API-kutsuja varten.

version: '3.8'
services:
  # ... backend service definition ...
  frontend:
    build: ./frontend # Path to frontend Dockerfile
    ports:
      - "80:80"
    depends_on:
      - backend # Frontend needs backend to be ready
    networks:
      - app-network

networks:
  app-network:
    driver: bridge

Compose: tietokantapalvelu

Määritämme lopuksi tietokantapalvelun. Käytämme virallista postgres-näköistiedostoa, asetamme tietokannan määrityksessä tarvittavat ympäristömuuttujat ja ennen kaikkea liitämme nimellisen volyymin tietojen säilyttämistä varten.

version: '3.8'
services:
  # ... backend and frontend definitions ...
  db:
    image: postgres:13-alpine # Use an official PostgreSQL image
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
    volumes:
      - db_data:/var/lib/postgresql/data # Mount named volume
    networks:
      - app-network

volumes:
  db_data: # Define the named volume
networks:
  app-network:
    driver: bridge

Sovellusp pinon käynnistäminen

Kun docker-compose.yml-tiedostomme on valmis, koko sovellusp pinon käynnistäminen on erittäin helppoa. Siirtykää hakemistoon, jossa docker-compose.yml-tiedosto sijaitsee, ja suorittakaa yksi komento:

  • docker compose up -d: rakentaa näköistiedostot tarvittaessa, luo säilöt, verkot ja volyymit sekä käynnistää kaikki palvelut taustalla (-d).
  • docker compose down: pysäyttää ja poistaa kaikki tiedostossa määritetyt palvelut, verkot ja volyymit.
docker compose up -d

Compose-määritysten tarkistus

Tarkastellaan seuraavaa docker-compose.yml-katkelmaa yksinkertaiselle verkkosovellukselle:

version: '3.8'
services:
  web:
    build: .
    ports:
      - "8000:8000"
    depends_on:
      - db
  db:
    image: postgres:latest
    environment:
      POSTGRES_DB: appdb
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass
    volumes:
      - db_data:/var/lib/postgresql/data
volumes:
  db_data:

Mitkä seuraavista tätä määritystä koskevista väitteistä ovat TOSIA?

Oppitunnin yhteenveto

Tässä oppitunnissa opimme säilöittämään kokonaisen verkkosovellusp pinon Dockerilla. Käsittelimme käyttöliittymä- ja taustajärjestelmäpalvelujen Dockerfile-tiedostojen luomista, virallisten näköistiedostojen käyttöä tietokannoille sekä kaikkien osien orkestrointia Docker Composella. Tämä lähestymistapa yksinkertaistaa monimutkaisten sovellusten kehitystä, käyttöönottoa ja skaalausta.

  • Määritimme monivaiheisen käyttöliittymän ja taustajärjestelmäpalvelun Dockerfile-tiedostot.
  • Liitimme tietokannan käyttämällä virallista Docker-näköistiedostoa ja nimellistä volyymia.
  • Orkestroimme kaikki palvelut docker-compose.yml-tiedoston avulla.
  • Opimme käynnistämään koko sovellusp pinon yhdellä komennolla.
Aloita maksutta

Opi Docker ja Kubernetes kehittäjille tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
12
Oppitunnit
48

Usein kysytyt kysymykset

Onko oppitunti ”Verkkosovelluksen kontittaminen” ilmainen?

Kyllä – oppitunnin ”Verkkosovelluksen kontittaminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Docker ja Kubernetes kehittäjille-kurssin, päivitä CoddyKit PROhon. Docker ja Kubernetes kehittäjille-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Verkkosovelluksen kontittaminen”?

Käy läpi tyypillisen verkkosovelluksen Dockerisointi, mukaan lukien sen frontend-, backend- ja tietokantakomponentit. Harjoittelet Docker ja Kubernetes kehittäjille-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Docker ja Kubernetes kehittäjille-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Docker ja Kubernetes kehittäjille-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”Verkkosovelluksen kontittaminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Docker ja Kubernetes kehittäjille-oppitunnilla?

Kyllä. Jokainen Docker ja Kubernetes kehittäjille-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Verkkosovelluksen kontittaminen
  2. Docker-imagejen optimointi
  3. Tietoturva ja tuotannon parhaat käytännöt
  4. Monivaiheiset koonnit kevyitä tuotantovedoksia varten
← Takaisin: Docker ja Kubernetes kehittäjille