Udnyttelse af build-caching
Optimér Docker-byggetider ved at forstå og bruge Dockers build-cachemekanisme effektivt.
Udnyttelse af build-caching er en gratis Grundlæggende Docker og DevOps-lektion på CoddyKit. Dette er lektion 2 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.
Byg hurtigere med caching
Det kan tage tid at bygge Docker-images, især til komplekse applikationer. Dockers build-cache er en smart funktion, der kan gøre processen meget hurtigere!
Den genbruger lag fra tidligere builds, så Docker ikke behøver at bygge alting fra bunden hver gang.

Build lag for lag
Når du bygger et Docker-image ved hjælp af en Dockerfile, udfører Docker hver instruktion linje for linje.
- Hver instruktion, f.eks.
FROM,RUNellerCOPY, opretter et nyt "lag" i dit image. - Disse lag stables oven på hinanden og danner det færdige image.
Dockers cachekontrol
Før en instruktion udføres, kontrollerer Docker, om det pågældende lag allerede er blevet bygget før. Den sammenligner:
- Selve instruktionen (f.eks.
RUN apt update). - "Konteksten" for bestemte instruktioner (f.eks. de filer, der bliver kopieret med
COPY).
Hvis der findes et matchende lag, genbruger Docker det fra cachen i stedet for at køre instruktionen igen.
Ugyldiggørelse af cachen
Cachen er nyttig, men den bruges ikke altid. Hvis Docker registrerer en ændring i en instruktion eller dens kontekst, bliver cachen for det pågældende lag og alle efterfølgende lag ugyldig.
Det betyder, at Docker bygger videre fra dette punkt og ignorerer alle cachelagrede lag under det.
Smart rækkefølge for instruktioner
For at få flest mulige cache-træffere skal du arrangere instruktionerne i din Dockerfile fra dem, der mindst sandsynligt ændres, til dem, der mest sandsynligt ændres.
- Stabile afhængigheder først: Installer systempakker eller applikationsafhængigheder, der sjældent ændres.
- Applikationskode sidst: Kopiér applikationens kildekode så sent som muligt, da den ændres ofte.
Rækkefølge for cache-træffere
Lad os se på et eksempel. Ved at placere kommandoen RUN pip install (som typisk ændres sjældnere) før COPY . . (som ændres ved hver kodeopdatering) kan Docker genbruge afhængighedslaget.
Forestil dig, at requirements.txt indeholder flask og gunicorn, og at app.py er din hovedapplikation.
Dockerfile:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
CMD ["python", "app.py"]Hvis kun app.py ændres, bygger Docker kun det sidste COPY- og CMD-lag igen, så du sparer tid!
Selektiv kopiering med .dockerignore
Når du bruger COPY . ., kontrollerer Docker hver eneste fil i build-konteksten for ændringer. Selv små, irrelevante filer (som .git-mapper eller lokale testdata) kan ugyldiggøre cachen.
Brug en .dockerignore-fil til at udelukke unødvendige filer og mapper fra din build-kontekst. Det forhindrer dem i at udløse ugyldiggørelse af cachen.
.dockerignore i praksis
Placér en fil med navnet .dockerignore i roden af din build-kontekst (ved siden af din Dockerfile).
Eksempel på .dockerignore:
.git
.venv
__pycache__
*.log
node_modulesNår du nu bruger COPY . ., ignorerer Docker disse filer, hvilket giver mere pålidelige cache-træffere!
Hvornår cachen skal springes over
Nogle gange vil du sikre dig, at alting bygges fra bunden, uden overhovedet at bruge cachen. Det kan være nyttigt ved fejlfinding eller hvis du vil sikre dig, at du har de allernyeste versioner af afhængighederne.
Du kan tvinge Docker til at bygge igen uden at bruge cachen ved at tilføje flaget --no-cache til din build-kommando:
docker build --no-cache -t my-app:latest .Kontrol af cacheoptimering
Du bygger et Docker-image til en Node.js-applikation. Din Dockerfile ser i øjeblikket sådan ud:
FROM node:16-alpine
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]Hvilken ændring vil bedst optimere denne Dockerfile til caching af builds?
Opsummering: Få styr på cachen!
Godt klaret! Du har lært at udnytte Dockers build-cache til hurtigere builds af images.
- Docker bygger images lag for lag og genbruger cachelag, når det er muligt.
- Ændringer i en instruktion eller dens kontekst ugyldiggør cachen fra dette punkt.
- Optimér ved at arrangere instruktionerne fra mindst til mest sandsynligt at ændre sig.
- Brug
.dockerignoretil at udelukke irrelevante filer fra build-konteksten. - Brug
--no-cachetil at tvinge et nyt build, når det er nødvendigt.
Effektiv caching giver hurtigere udviklingscyklusser og mere fleksible udrulninger!
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 “Udnyttelse af build-caching” gratis?
Ja — alle 3 lektioner i læringssporet Grundlæggende Docker og DevOps, inklusive “Udnyttelse af build-caching”, 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 “Udnyttelse af build-caching”?
Optimér Docker-byggetider ved at forstå og bruge Dockers build-cachemekanisme effektivt. 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 2 af 4.
Hvor lang tid tager lektionen “Udnyttelse af build-caching”?
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
- Multi-stage-builds for effektivitet
- Udnyttelse af build-caching
- Bedste praksis for Dockerfile-sikkerhed
- Minimering af image-størrelse med Slim- og Distroless-baser