Verkkosovelluksen kontittaminen
Käy läpi tyypillisen verkkosovelluksen Dockerisointi, mukaan lukien sen frontend-, backend- ja tietokantakomponentit.
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.
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
- Verkkosovelluksen kontittaminen
- Docker-imagejen optimointi
- Tietoturva ja tuotannon parhaat käytännöt
- Monivaiheiset koonnit kevyitä tuotantovedoksia varten