Spring Boot 4-mikrotjenester og REST-API'er · Lektion

Dockerisering af Spring Boot-applikationer

Opret Dockerfiles for at pakke Deres Spring Boot-applikationer i lette, portable containere.

Lektion 1 af 312 trin

Dockerisering af Spring Boot-applikationer er en gratis Spring Boot 4-mikrotjenester og REST-API'er-lektion på CoddyKit. Dette er lektion 1 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Spring Boot 4-mikrotjenester og REST-API'er, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Spring Boot 4-mikrotjenester og REST-API'er-kurset indeholder 3 lektioner i alt.

Hvorfor dockerisere Spring Boot?

Velkommen til containerisering af Spring Boot-apps! Docker hjælper med at pakke din applikation i en standardiseret enhed, der kaldes en container.

Hvorfor er det godt til Spring Boot?

  • Portabilitet: Kør din app ensartet overalt, hvor Docker kan køre.
  • Isolation: Din app og dens afhængigheder samles, så konflikter undgås.
  • Konsistens: Miljøet er det samme fra udvikling til produktion.

Docker-grundlag for apps

Før vi går i gang, definerer vi kort nogle centrale Docker-begreber:

  • Image: En let, selvstændig og kørbar pakke, der indeholder alt, hvad der kræves for at køre et stykke software, herunder koden, en runtime, biblioteker, miljøvariabler og konfigurationsfiler. Tænk på det som en skabelon.
  • Container: En kørbar instans af et image. Du kan oprette, starte, stoppe, flytte eller slette en container. Det er den faktiske kørende applikation.
  • Dockerfile: En tekstfil, der indeholder alle kommandoerne i den rækkefølge, de skal bruges til at bygge et bestemt image.

Vores eksempel på en Spring Boot-app

Lad os forestille os, at vi har en simpel Spring Boot-applikation. Når vi bygger den, producerer den typisk en enkelt kørbar JAR-fil (f.eks. my-app.jar).

Her er en grundlæggende struktur for en Spring Boot-applikation:

package com.coddykit.docker;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DockerApp {

  public static void main(String[] args) {
    SpringApplication.run(DockerApp.class, args);
    // This will print to the container's standard output
    System.out.println("Spring Boot app started inside Docker!");
  }
}

Introduktion til Dockerfile

En Dockerfile er et script med instruktioner, som Docker bruger til at bygge et image. Det minder om en opskrift på at oprette dit containermiljø.

Vi opretter en fil med navnet Dockerfile (uden filtypenavn) i rodmappen i vores Spring Boot-projekt. Hver linje i Dockerfile-filen er en instruktion.

Valg af basisimage (FROM)

Alle Dockerfile-filer starter med instruktionen FROM. Den angiver det basisimage, som din applikation bygges oven på. Til Java-applikationer er et OpenJDK-image et almindeligt valg.

openjdk:17-jdk-slim indeholder et Java 17 Development Kit (JDK) i et slankt, mindre image, som er velegnet til produktion.

FROM openjdk:17-jdk-slim

Kopiér din applikation (COPY)

Derefter skal vi have vores kompilerede Spring Boot-JAR-fil ind i Docker-imaget. Instruktionen COPY gør netop dette.

Hvis din byggede JAR-fil ligger i target/my-app.jar, kopierer vi den til imagets rodmappe og omdøber den til app.jar for enkelhedens skyld.

COPY target/my-app.jar app.jar

Eksponering af porte (EXPOSE)

Spring Boot-applikationer kører typisk på en bestemt port, ofte 8080. Instruktionen EXPOSE oplyser Docker om, at containeren lytter på de angivne netværksporte under kørsel.

Selvom EXPOSE ikke faktisk udgiver porten, fungerer den som dokumentation og hjælper med porttilknytning, når containeren køres.

EXPOSE 8080

Definition af startpunktet (ENTRYPOINT)

Instruktionen ENTRYPOINT konfigurerer en container, der skal køre som en eksekverbar enhed. Sådan fortæller vi Docker, at vores Spring Boot-applikation skal startes, når containeren starter.

Vi bruger kommandoen java -jar app.jar til at køre vores applikations JAR-fil.

ENTRYPOINT ["java", "-jar", "app.jar"]

Sæt det hele sammen: Dockerfile

Her er vores komplette Dockerfile. Du skal placere denne fil i rodmappen i dit Spring Boot-projekt.

FROM openjdk:17-jdk-slim
VOLUME /tmp
COPY target/docker-app-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]

Bemærk: JAR-navnet kan variere afhængigt af dit projekt. VOLUME /tmp tilføjes ofte for at understøtte Spring Boots indlejrede Tomcat.

Byg dit Docker-image

Når din Dockerfile er klar, og din Spring Boot-applikation er kompileret (f.eks. ved hjælp af mvn package), kan du bygge Docker-imaget.

Gå til projektets rodmappe i terminalen, og kør:

docker build -t my-spring-app .

Denne kommando:

  • docker build: Starter processen med at bygge imaget.
  • -t my-spring-app: Mærker imaget med et navn (my-spring-app).
  • .: Angiver byggesammenhængen (den aktuelle mappe, hvor Dockerfile-filen ligger).

Tjek af Dockerfile-instruktioner

Hvilken Dockerfile-instruktion bruges til at definere den kommando, der køres, når en container startes fra et image?

Opsummering: Dockerisering af din app

Du har nu lært det grundlæggende i at dockerisere en Spring Boot-applikation!

  • Vi forstod rollen for Dockerfile-filer, images og containere.
  • Vi gennemgik de vigtigste Dockerfile-instruktioner: FROM, COPY, EXPOSE og ENTRYPOINT.
  • Nu ved du, hvordan du pakker din Spring Boot-JAR-fil i et portabelt Docker-image.

Det danner grundlag for at køre dine applikationer ensartet i ethvert Docker-miljø!

Gratis at komme i gang

Lær Java 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
24
Lektioner
93

Ofte stillede spørgsmål

Er lektionen “Dockerisering af Spring Boot-applikationer” gratis?

Ja — hele teksten til “Dockerisering af Spring Boot-applikationer” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Spring Boot 4-mikrotjenester og REST-API'er-kurset, skal du opgradere til CoddyKit PRO. Spring Boot 4-mikrotjenester og REST-API'er-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Dockerisering af Spring Boot-applikationer”?

Opret Dockerfiles for at pakke Deres Spring Boot-applikationer i lette, portable containere. Du øver dig i Spring Boot 4-mikrotjenester og REST-API'er 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å Spring Boot 4-mikrotjenester og REST-API'er?

Der kræves ingen tidligere erfaring. Spring Boot 4-mikrotjenester og REST-API'er 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 1 af 3.

Hvor lang tid tager lektionen “Dockerisering af Spring Boot-applikationer”?

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 Spring Boot 4-mikrotjenester og REST-API'er-lektion?

Ja. Alle Spring Boot 4-mikrotjenester og REST-API'er-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. Dockerisering af Spring Boot-applikationer
  2. Håndtering af containere med Docker Compose
  3. Begreber inden for containerorkestrering
← Tilbage til Spring Boot 4-mikrotjenester og REST-API'er