Grundlæggende Docker og DevOps · Lektion

Forstå Dockerfiles

Lær syntaksen og de almindelige instruktioner i Dockerfiles, som definerer, hvordan et image bygges.

Lektion 1 af 412 trin

Forstå Dockerfiles er en gratis Grundlæggende Docker og DevOps-lektion på CoddyKit. Dette er lektion 1 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.

Hvad er en Dockerfile?

Forestil dig, at du har en opskrift på en kage. En Dockerfile ligner meget! Det er en almindelig tekstfil, der indeholder alle de instruktioner, Docker skal bruge til automatisk at bygge et Docker-image.

I stedet for at blande ingredienser fortæller du Docker, hvilket basisoperativsystem der skal bruges, hvilken software der skal installeres, og hvordan din app skal sættes op inde i imaget.

Forstå Dockerfiles — illustration 1

Fordele: Automatiseret build

Dockerfiles giver mange fordele i din udviklingsarbejdsgang:

  • Automatisering: Slut med manuelle trin! Docker bygger images ensartet hver gang.
  • Versionsstyring: Dockerfiles er kode, så du kan spore ændringer med Git.
  • Genskabelighed: Alle med Dockerfilen kan bygge præcis det samme image.
  • Gennemsigtighed: Du kan se præcis, hvad der er i et image.

Grundlæggende Dockerfile-struktur

En Dockerfile er en liste over instruktioner, der udføres i rækkefølge fra top til bund. Hver instruktion opretter et nyt lag i imaget.

Den grundlæggende syntaks er enkel:

INSTRUCTION arguments

Kommentarer begynder med en #, ligesom i mange programmeringssprog. Docker-instruktioner skelner ikke mellem store og små bogstaver, men konventionen er at bruge store bogstaver.

Vælg et basisimage med FROM

Alle Dockerfiles skal begynde med instruktionen FROM. Den angiver det basisimage, som dit nye image bygges på. Basisimaget indeholder normalt et operativsystem (for eksempel Alpine Linux) og sommetider forudinstalleret software.

Tænk på det som at vælge dit udgangspunkt – et tomt lærred eller et lærred med nogle grundfarver på forhånd.

FROM alpine:latest

Udfør kommandoer med RUN

Instruktionen RUN bruges til at udføre kommandoer under byggeprocessen for imaget. Her installerer du pakker, opretter mapper eller kompilerer kode.

Hver RUN-kommando opretter et nyt lag, så du kan reducere imagets størrelse ved at kombinere kommandoer med &&.

RUN apk update && apk add git

Standardkommando med CMD

Instruktionen CMD angiver standardkommandoer eller -argumenter for en container, der er ved at blive udført. I modsætning til RUN udføres CMD-kommandoer, når en container starter, ikke under buildet.

Hvis du angiver en kommando, når du kører en container (f.eks. docker run my-image ls), tilsidesætter den kommando instruktionen CMD.

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

Tilføj filer med COPY

Instruktionen COPY kopierer nye filer eller mapper fra din værtsmaskine (hvor du bygger imaget) til Docker-imagets filsystem på en angivet sti.

Den foretrækkes generelt frem for ADD, fordi den er mere gennemsigtig og kun kopierer lokale filer.

COPY ./app /usr/src/app

Arbejdsmappe og miljøvariabler

WORKDIR angiver arbejdsmapper for alle efterfølgende instruktioner med RUN, CMD, ENTRYPOINT, COPY og ADD. Det gør din Dockerfile mere overskuelig.

ENV angiver miljøvariabler. Disse variabler er tilgængelige for efterfølgende instruktioner i Dockerfilen og også for den kørende container.

WORKDIR /app
ENV PORT=8080

Oplys om porte med EXPOSE

Instruktionen EXPOSE oplyser Docker om, at containeren lytter på de angivne netværksporte under kørsel. Den offentliggør ikke porten i sig selv.

Tænk på det som dokumentation. Hvis porten faktisk skal være tilgængelig udefra, skal du bruge flaget -p med docker run.

EXPOSE 80
EXPOSE 443

Din første enkle Dockerfile

Lad os samle det hele! Her er en grundlæggende Dockerfile, der sætter et Alpine Linux-image op, installerer en pakke og definerer en standardkommando.

Gem den som Dockerfile i en tom mappe, og kør derefter docker build -t my-simple-app . i din terminal for at bygge 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"]

Quiz om Dockerfile-instruktioner

Test din viden! Hvilke af disse instruktioner udføres under byggeprocessen for imaget og ændrer direkte imagets indhold eller struktur?

Opsummering: Det vigtigste om Dockerfile

Du har taget et stort skridt i forståelsen af Docker-images! Vi har lært, at Dockerfiles er tekstfiler med instruktioner til at bygge images, og at de giver store fordele som automatisering og genskabelighed.

Vigtige instruktioner, vi har gennemgået:

  • FROM: Definerer basisimaget.
  • RUN: Udfører kommandoer under buildet.
  • CMD: Angiver standardkommandoen for en kørende container.
  • COPY: Føjer filer fra værten til imaget.
  • WORKDIR, ENV, EXPOSE: Konfigurerer imagets og containerens miljø.
Gratis at komme i gang

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 “Forstå Dockerfiles” gratis?

Ja — alle 3 lektioner i læringssporet Grundlæggende Docker og DevOps, inklusive “Forstå Dockerfiles”, 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 “Forstå Dockerfiles”?

Lær syntaksen og de almindelige instruktioner i Dockerfiles, som definerer, hvordan et image bygges. 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 1 af 4.

Hvor lang tid tager lektionen “Forstå Dockerfiles”?

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

  1. Forstå Dockerfiles
  2. Oprettelse af brugerdefinerede Docker-images
  3. Imagelag og optimering
  4. Multi-stage-builds og mindre images
← Tilbage til Grundlæggende Docker og DevOps