Grunderna i Docker och DevOps · Lektion

Förstå Dockerfiles

Lär dig syntaxen och de vanligaste instruktionerna i Dockerfiles för att definiera hur en image byggs.

Lektion 1 av 412 steg

Förstå Dockerfiles är en gratis lektion i Grunderna i Docker och DevOps på CoddyKit. Detta är lektion 1 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 Grunderna i Docker och DevOps, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Grunderna i Docker och DevOps innehåller totalt 4 lektioner.

Vad är en Dockerfile?

Föreställ dig att du har ett recept för att baka en kaka. En Dockerfile fungerar på ungefär samma sätt! Det är en vanlig textfil som innehåller alla instruktioner Docker behöver för att automatiskt bygga en Docker-avbildning.

I stället för att blanda ingredienser anger du vilket basoperativsystem Docker ska använda, vilken programvara som ska installeras och hur applikationen ska konfigureras i avbildningen.

Förstå Dockerfiles — illustration 1

Fördelar: automatiserat bygge

Dockerfiles ger många fördelar i utvecklingsarbetsflödet:

  • Automatisering: Inga fler manuella steg! Docker bygger avbildningar konsekvent varje gång.
  • Versionshantering: Dockerfiles är kod, så du kan spåra ändringar med Git.
  • Återskapningsbarhet: Alla som har Dockerfilen kan bygga exakt samma avbildning.
  • Transparens: Du kan se exakt vad som finns i en avbildning.

Grundläggande Dockerfile-struktur

En Dockerfile är en lista med instruktioner som körs i ordning uppifrån och ned. Varje instruktion skapar ett nytt lager i avbildningen.

Den grundläggande syntaxen är enkel:

INSTRUCTION arguments

Kommentarer börjar med #, precis som i många programmeringsspråk. Docker-instruktioner är skiftlägesokänsliga, men konventionen är att använda versaler.

Välj en basavbildning med FROM

Varje Dockerfile måste börja med instruktionen FROM. Den anger vilken basavbildning din nya avbildning ska byggas från. Basavbildningen innehåller vanligtvis ett operativsystem, till exempel Alpine Linux, och ibland förinstallerad programvara.

Tänk på det som att välja en utgångspunkt – en tom målarduk eller en målarduk med några grundfärger redan på plats.

FROM alpine:latest

Kör kommandon med RUN

Instruktionen RUN används för att köra kommandon under byggprocessen för avbildningen. Här installerar du paket, skapar kataloger eller kompilerar kod.

Varje RUN-kommando skapar ett nytt lager, så att kombinera kommandon med && kan bidra till att minska avbildningens storlek.

RUN apk update && apk add git

Standardkommando med CMD

Instruktionen CMD anger standardkommandon eller standardargument för en container som körs. Till skillnad från RUN körs CMD-kommandon när en container startar, inte under bygget.

Om du anger ett kommando när du kör en container, till exempel docker run my-image ls, ersätter det kommandot instruktionen CMD.

CMD ["echo", "Hello from container!"]

Lägg till filer med COPY

Instruktionen COPY kopierar nya filer eller kataloger från värddatorn, där du bygger avbildningen, till Docker-avbildningens filsystem på en angiven sökväg.

Den föredras vanligtvis framför ADD eftersom den är tydligare och endast kopierar lokala filer.

COPY ./app /usr/src/app

Arbetskatalog och miljövariabler

WORKDIR anger arbetskatalogen för alla efterföljande instruktioner med RUN, CMD, ENTRYPOINT, COPY och ADD. Det gör din Dockerfile tydligare.

ENV anger miljövariabler. Dessa variabler är tillgängliga för efterföljande instruktioner i Dockerfilen och även för containern när den körs.

WORKDIR /app
ENV PORT=8080

Informera om portar med EXPOSE

Instruktionen EXPOSE informerar Docker om att containern lyssnar på de angivna nätverksportarna under körning. Den publicerar inte porten i sig.

Tänk på det som dokumentation. För att faktiskt göra porten åtkomlig utanför containern måste du använda flaggan -p med docker run.

EXPOSE 80
EXPOSE 443

Din första enkla Dockerfile

Nu sätter vi ihop allt! Här är en grundläggande Dockerfile som konfigurerar en Alpine Linux-avbildning, installerar ett paket och anger ett standardkommando.

Spara den som Dockerfile i en tom katalog och kör sedan docker build -t my-simple-app . i terminalen för att bygga den.

FROM alpine:latest

LABEL maintainer="CoddyKit"

RUN apk update && apk add --no-cache bash

WORKDIR /app

CMD ["bash", "-c", "echo 'Hello from my custom Alpine image!' && sleep 3600"]

Frågesport om Dockerfile-instruktioner

Testa dina kunskaper! Vilka av dessa instruktioner körs under byggprocessen för avbildningen och ändrar avbildningens innehåll eller struktur direkt?

Sammanfattning: grunderna i Dockerfile

Du har tagit ett stort steg mot att förstå Docker-avbildningar! Vi har lärt oss att Dockerfiles är textfiler med instruktioner för att bygga avbildningar och att de ger stora fördelar som automatisering och återskapningsbarhet.

Viktiga instruktioner:

  • FROM: Definierar basavbildningen.
  • RUN: Kör kommandon under bygget.
  • CMD: Anger standardkommandot för en container som körs.
  • COPY: Lägger till filer från värddatorn i avbildningen.
  • WORKDIR, ENV, EXPOSE: Konfigurerar avbildningen och containerns miljö.
Gratis att börja

Lär dig Grunderna i Docker och DevOps 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
12
Lektioner
48

Vanliga frågor

Är lektionen ”Förstå Dockerfiles” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Grunderna i Docker och DevOps, inklusive ”Förstå Dockerfiles”, 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 Grunderna i Docker och DevOps innehåller totalt 4 lektioner.

Vad lär jag mig i ”Förstå Dockerfiles”?

Lär dig syntaxen och de vanligaste instruktionerna i Dockerfiles för att definiera hur en image byggs. Ni övar på Grunderna i Docker och DevOps 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 Grunderna i Docker och DevOps?

Du behöver inga förkunskaper. Utbildningen i Grunderna i Docker och DevOps 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 1 av 4.

Hur lång tid tar lektionen ”Förstå Dockerfiles”?

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 Grunderna i Docker och DevOps-lektionen?

Ja. Varje Grunderna i Docker och DevOps-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

  1. Förstå Dockerfiles
  2. Skapa egna Docker-images
  3. Image-lager och optimering
  4. Flerstegsbyggen och mindre avbildningar
← Tillbaka till Grunderna i Docker och DevOps