Gör avbildningar mindre med byggen i flera steg
Minska avbildningens storlek genom att separera bygg- och runtime-lager.
Gör avbildningar mindre med byggen i flera steg är en gratis lektion i MLOps Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för MLOps Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i MLOps Academy innehåller totalt 4 lektioner.
Stora avbilder är ett problem
En uppsvälld avbild är långsam att pusha, hämta och starta, och innehåller mer som måste patchas. Flerstegsbyggen skickar bara det du faktiskt behöver.
Grundidén
Du använder ett steg för att bygga och ett andra, rent steg för att köra. Byggverktygen lämnas kvar, så den färdiga avbilden förblir liten.
Namnge ett byggsteg
Lägg till AS builder på en FROM-rad för att namnge ett steg. Senare kan du hänvisa till namnet för att hämta filer från det.
FROM python:3.11 AS builderInstallera i builder-steget
I builder-steget installerar du beroenden i ett känt prefix. Flaggan --user placerar allt prydligt under en enda mapp som kan kopieras.
RUN pip install --user --no-cache-dir -r requirements.txtStarta runtime-steget
Öppna ett nytt, slimmat steg för det som faktiskt ska köras. Det innehåller inga kompilatorer eller cachar som builder-steget behövde.
FROM python:3.11-slimKopiera bara artefakterna
Använd COPY --from=builder för att bara hämta de installerade paketen till runtime-steget. Det tunga bygglagret lämnas kvar.
COPY --from=builder /root/.local /root/.localTa med koden
Kopiera även programmets källkod till det slimmade steget. Nu innehåller den färdiga avbilden din kod och endast dess runtime-beroenden.
COPY . /appKorrigera sökvägen
Användarinstallerade paket ligger under .local, så lägg till det i PATH. Annars hittar runtime-miljön inte dina installerade kommandon.
ENV PATH=/root/.local/bin:$PATHBara det sista steget levereras
Docker behåller bara det sista steget i avbilden. Allt i tidigare steg tas bort om du inte uttryckligen kopierar det.
Testa Distroless
För minsta och säkraste resultat kan du köra på en distroless-bas utan skal eller pakethanterare. En mindre attackyta innebär färre saker att utnyttja.
Mät vinsten
Kontrollera storleksminskningen med docker images. Att minska från över en gigabyte till ett par hundra megabyte är vanligt och värt besväret.
docker images model-apiSnabb kontroll
Nu kontrollerar vi vad ett flerstegsbygge behåller.
Sammanfattning
Du separerade bygge från runtime, kopierade bara artefakterna med COPY --from, korrigerade PATH och minskade avbilden. Lätt och snabbt. ✅
Lär dig Python med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 30
- Lektioner
- 120
Vanliga frågor
Är lektionen ”Gör avbildningar mindre med byggen i flera steg” gratis?
Ja – hela texten till ”Gör avbildningar mindre med byggen i flera steg” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i MLOps Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i MLOps Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Gör avbildningar mindre med byggen i flera steg”?
Minska avbildningens storlek genom att separera bygg- och runtime-lager. Ni övar på MLOps Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig MLOps Academy?
Du behöver inga förkunskaper. Utbildningen i MLOps Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.
Hur lång tid tar lektionen ”Gör avbildningar mindre med byggen i flera steg”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här MLOps Academy-lektionen?
Ja. Varje MLOps Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Skriv en Dockerfile för ett modell-API
- Gör avbildningar mindre med byggen i flera steg
- Skicka konfiguration via miljövariabler
- Kör och testa containern lokalt