Bästa praxis för Dockerfile-säkerhet
Implementera säkerhetsåtgärder i dina Dockerfiles för att minimera sårbarheter och minska attackytan.
Bästa praxis för Dockerfile-säkerhet är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Skydda Era Dockerfiles!
Välkommen till metoder för säkra Dockerfiles! En säker applikation börjar med en säker grund.
Er Dockerfile är inte bara ett byggskript – den är en ritning för applikationens säkerhet. Bristfälliga metoder här kan leda till allvarliga sårbarheter.
I den här lektionen går vi igenom viktiga strategier för att härda Era Docker-avbildningar och minimera möjliga attackytor.

Börja med betrodda basavbildningar
Instruktionen FROM är Er första försvarslinje. Välj alltid officiella och välunderhållna basavbildningar från betrodda källor som Docker Hub.
- Officiella avbildningar: Dessa är verifierade och uppdateras regelbundet.
- Specifika taggar: Undvik
latest. Använd specifika versions taggar (till exempelalpine:3.18) för förutsägbarhet och stabilitet. - Minimala avbildningar: Välj versioner med ’slim’ eller ’alpine’. De innehåller färre paket, vilket innebär färre möjliga sårbarheter.
Välj en säker basavbildning
Se hur valet av en minimal basavbildning med en specifik version kan förbättra säkerheten. Det minskar antalet paket och verktyg som kan utnyttjas.
FROM alpine:3.18
# This is better than:
# FROM ubuntu:latest
# FROM python:latest
# Alpine is a minimal Linux distribution,
# making the image smaller and more secure.Minimera avbildningens storlek
Varje fil, paket eller beroende som Ni lägger till i avbildningen ökar dess ’attackyta’. Ju mindre programvara som finns, desto färre möjliga sårbarheter finns.
Installera endast det som är absolut nödvändigt för att applikationen ska kunna köras. Ta bort byggverktyg och temporära filer när de inte längre behövs.
Städa efter installationen
När Ni installerar paket ska Ni alltid rensa pakethanterarens cache och ta bort onödiga filer. Det minskar den färdiga avbildningens storlek och eliminerar möjliga informationsläckor.
För Debian-baserade avbildningar, som Ubuntu, använder Ni apt-get clean och tar bort /var/lib/apt/lists/* i samma RUN-instruktion.
FROM debian:stable-slim
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# All in one RUN command to leverage Docker's caching and reduce layers.Kör inte som root!
Som standard körs processer i en Docker-container som användaren root. Det är en allvarlig säkerhetsrisk!
Om en angripare får kontroll över Er container får angriparen root-behörighet, vilket potentiellt kan göra det möjligt att ta sig ut ur containern eller kompromettera värdsystemet.
Skapa alltid en dedikerad användare utan root-behörighet och byt till den med hjälp av instruktionen USER.
Konfigurera en användare utan root-behörighet
Så här skapar Ni en ny användare och instruerar Docker att köra efterföljande kommandon som den användaren. Det begränsar avsevärt den möjliga skadan om containern komprometteras.
FROM alpine:3.18
# Create a non-root user and group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# Switch to the non-root user
USER appuser
CMD ["echo", "Hello from non-root user!"]Inga hemligheter i Dockerfile!
Hårdkoda aldrig känslig information, som API-nycklar, databaslösenord eller privata nycklar, direkt i Er Dockerfile och lägg dem inte heller till i avbildningen.
Den som har åtkomst till avbildningen kan enkelt extrahera dessa hemligheter, även om Ni tar bort dem i ett senare lager.
Använd i stället säkra metoder som Docker Secrets, miljövariabler (för icke-känsliga data) eller Kubernetes Secrets vid körning.
Föredra COPY framför ADD
Både instruktionerna COPY och ADD kopierar filer till avbildningen, men COPY föredras vanligtvis av säkerhets- och tydlighetsskäl.
COPY: Kopierar endast lokala filer eller kataloger. Det är enkelt och förutsägbart.ADD: Kan även hämta filer från URL:er och automatiskt packa upp komprimerade arkiv (tar, gzip). Denna extra funktionalitet medför möjliga säkerhetsrisker, som att hämta opålitligt innehåll eller packa upp skadliga arkiv.
Använd COPY om Ni inte specifikt behöver de avancerade funktionerna i ADD och förstår riskerna.
Säkerhetskontroll!
Vilken av följande metoder för Dockerfile är ett viktigt steg för att minska attackytan och minimera möjliga sårbarheter?
Er resa mot en säker Dockerfile
Bra jobbat! Ni har lärt Er viktiga säkerhetsmetoder för Dockerfiles som utgör grunden för säker containerisering:
- Börja med betrodda, minimala basavbildningar: Använd officiella, specifika och slimmade avbildningar.
- Minimera avbildningens storlek: Installera endast det som behövs och städa efter installationerna.
- Kör som en användare utan root-behörighet: Begränsa behörigheterna för att minska effekten av möjliga intrång.
- Undvik hemligheter: Hårdkoda aldrig känsliga data i Er Dockerfile.
- Föredra `COPY` framför `ADD`: Välj den mer förutsägbara och säkra instruktionen `COPY`.
Genom att tillämpa dessa metoder förbättrar Ni säkerhetsnivån för Era containeriserade applikationer avsevärt!
Lär dig DevOps-bootcamp 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
- 142
- Lektioner
- 568
Vanliga frågor
Är lektionen ”Bästa praxis för Dockerfile-säkerhet” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Bästa praxis för Dockerfile-säkerhet”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.
Vad lär jag mig i ”Bästa praxis för Dockerfile-säkerhet”?
Implementera säkerhetsåtgärder i dina Dockerfiles för att minimera sårbarheter och minska attackytan. Ni övar på DevOps-bootcamp 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 DevOps-bootcamp?
Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp 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 3 av 4.
Hur lång tid tar lektionen ”Bästa praxis för Dockerfile-säkerhet”?
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 DevOps-bootcamp-lektionen?
Ja. Varje DevOps-bootcamp-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
- Flerstegsbyggen för effektivitet
- Utnyttja byggcachning
- Bästa praxis för Dockerfile-säkerhet
- Minimera avbildningsstorleken med Slim- och Distroless-baser