Säilöjen hallinta Docker Composella
Orkestroitkaa useita Docker-säilöjä mikropalvelujanne varten Docker Composen avulla.
Säilöjen hallinta Docker Composella on ilmainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. 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 Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 3 oppituntia.
Miksi käyttää usean kontin sovelluksia?
Mikropalvelut tukeutuvat usein useisiin komponentteihin. Kuvitelkaa Spring Boot -sovellus, joka tarvitsee tietokannan, viestijonon tai toisen API-palvelun.
Kukin komponentti suoritetaan yleensä omassa Docker-kontissaan. Näiden hallinta erikseen voi muuttua monimutkaiseksi erityisesti kehityksen aikana.
Miten käynnistämme ne kaikki yhdessä, varmistamme niiden viestintämahdollisuudet ja hallitsemme niiden elinkaarta tehokkaasti? Tässä Docker Compose astuu kuvaan!
Docker Composen esittely
Docker Compose on työkalu usean kontin Docker-sovellusten määrittämiseen ja suorittamiseen. Sen sijaan että hallitsisitte jokaista konttia erikseen, määritätte kaikki palvelut yhdessä helposti luettavassa tiedostossa.
Tämän määritystiedoston nimi on yleensä docker-compose.yml. Se käyttää YAML-syntaksia, joka on sekä ihmisen luettavissa että koneellisesti jäsennettävissä.
Compose yksinkertaistaa kehitystyönkulkuanne, koska voitte käynnistää koko sovelluspinon yhdellä komennolla.
docker-compose.yml-tiedoston perusrakenne
Tiedosto docker-compose.yml alkaa version-määrittelyllä, jota seuraa services-osio. Siinä kukin kontti määritellään erillisenä palveluna.
Kukin palvelu edustaa konttia, ja sille voi määrittää muun muassa imagon, julkaistut portit ja ympäristömuuttujat.
Tässä on yksinkertaisen verkkosovelluksen vähimmäisrakenne:
version: '3.8'
services:
webapp:
image: 'nginx:latest'
ports:
- '80:80'Verkkopalvelun määrittäminen
Määritellään yksinkertainen verkkopalvelu. Käytämme virallista Nginx-imagea, yhdistämme portin ja annamme sille valinnaisen container_name-nimen.
image-avain määrittää käytettävän Docker-imagen (esimerkiksi nginx:latest). ports-avain yhdistää isäntäkoneen portit kontin portteihin (esimerkiksi isäntäkoneen portin 80 kontin porttiin 80).
version: '3.8'
services:
webapp:
image: 'nginx:latest'
ports:
- '80:80'
container_name: my_nginx_appTietokantapalvelun lisääminen
Useimmat sovellukset tarvitsevat tietokannan. Lisätään docker-compose.yml-tiedostoomme PostgreSQL-tietokantapalvelu.
Määritämme postgres:13-imagen ja asetamme kirjautumistietojen kannalta tärkeät ympäristömuuttujat (POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD).
version: '3.8'
services:
webapp:
image: 'nginx:latest'
ports:
- '80:80'
database:
image: 'postgres:13'
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: passwordPalveluiden yhdistäminen (verkkoyhteydet)
Docker Compose luo automaattisesti oletusverkon kaikille docker-compose.yml-tiedostossa määritellyille palveluille.
Palvelut voivat viestiä keskenään käyttämällä palveluiden nimiä isäntäniminä. Verkkosovellus voi esimerkiksi muodostaa yhteyden tietokantaan käyttämällä isäntänimenä nimeä database ja määritettyä porttia (esimerkiksi PostgreSQL:n porttia 5432).
Tämä automaattinen verkotus yksinkertaistaa merkittävästi palveluiden välisen viestinnän määrittämistä.
Tietojen säilyvyys volumeiden avulla
Kontit ovat lyhytikäisiä: niiden sisältämät tiedot menetetään, jos kontti poistetaan. Tietokantojen tapauksessa tämä on vakava ongelma!
Dockerin volumet tarjoavat tavan säilyttää Docker-konttien tuottamat tiedot. Voimme käyttää nimettyä volumea tietokannan tietojen tallentamiseen kontin ulkopuolelle, jolloin tiedot säilyvät kontin uudelleenkäynnistyksistä ja poistamisesta huolimatta.
version: '3.8'
services:
database:
image: 'postgres:13'
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:Mukautettujen imagojen rakentaminen
Usein käytössä on oma sovelluskoodi (kuten Spring Boot -JAR-tiedosto), joka täytyy rakentaa Docker-imageksi. Docker Compose osaa käsitellä myös tämän.
image-avaimen määrittämisen sijaan voit käyttää build-avainta ja osoittaa hakemistoon, joka sisältää Dockerfile-tiedoston.
Compose rakentaa sitten mukautetun imagosi ennen palvelun käynnistämistä. Se näyttää tältä:
# docker-compose.yml
version: '3.8'
services:
my-app:
build: ./my-app-dir
ports:
- '8080:8080'
# my-app-dir/Dockerfile
FROM openjdk:17-jdk-slim
COPY target/my-app.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]Docker Composen tärkeimmät komennot
Kun docker-compose.yml on valmis, muutama komento on olennainen sovelluspinoasi hallittaessa:
docker compose up: rakentaa tarvittaessa kaikki palvelut ja käynnistää ne. Käytä irrotettua tilaa varten valitsinta-d.docker compose down: pysäyttää ja poistaa kontit ja verkot sekä haluttaessa volumet.docker compose ps: luettelee kaikki Compose-tiedostossa määritellyt käynnissä olevat palvelut.docker compose logs: näyttää palveluiden lokitulosteen.
Muista suorittaa nämä komennot hakemistossa, jossa docker-compose.yml-tiedosto sijaitsee.
Pikatarkistus: Composen perusteet
Tarkastellaan docker-compose.yml-tiedostoa, jossa määritellään kaksi palvelua: web ja db.
Mitkä seuraavista näitä palveluita koskevista väitteistä ovat yleisesti TOSIA, kun tarkastellaan niiden välistä viestintää ja tietojen tallentamista?
Kertaus: monen kontin tehopaketti
Onnittelut! Olet oppinut, miten Docker Compose yksinkertaistaa monen kontin sovellusten hallintaa.
Osaat nyt määrittää koko sovelluspinosi yhdessä docker-compose.yml-tiedostossa, mukaan lukien verkkopalvelut, tietokannat ja itse rakennetut imaget.
Tämä työkalu on erittäin hyödyllinen mikropalveluiden paikallisessa kehityksessä ja testauksessa, sillä voit käynnistää koko ympäristösi yhdellä komennolla. Jatka harjoittelua!
Opi Java 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
- 24
- Oppitunnit
- 93
Usein kysytyt kysymykset
Onko oppitunti ”Säilöjen hallinta Docker Composella” ilmainen?
Kyllä – oppitunnin ”Säilöjen hallinta Docker Composella” 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 Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssin, päivitä CoddyKit PROhon. Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Säilöjen hallinta Docker Composella”?
Orkestroitkaa useita Docker-säilöjä mikropalvelujanne varten Docker Composen avulla. Harjoittelet Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.
Kuinka kauan ”Säilöjen hallinta Docker Composella”-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ä Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-oppitunnilla?
Kyllä. Jokainen Spring Boot 4 -mikropalvelut ja REST-sovellusliittymät-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
- Spring Boot -sovellusten Dockerisointi
- Säilöjen hallinta Docker Composella
- Säilöorkestroinnin käsitteet