DevOps-bootcamp · leksjon

Forstå Dockerfiles

Lær syntaksen og de vanligste instruksjonene i Dockerfiles for å definere hvordan et image bygges.

Leksjon 1 av 412 trinn

Forstå Dockerfiles er en gratis leksjon i DevOps-bootcamp på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i DevOps-bootcamp, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva er en Dockerfile?

Se for Dem at De har en oppskrift på en kake. En Dockerfile ligner svært mye! Det er en ren tekstfil som inneholder alle instruksjonene Docker trenger for å bygge et Docker-image automatisk.

I stedet for å blande ingredienser forteller De Docker hvilket basisoperativsystem som skal brukes, hvilken programvare som skal installeres, og hvordan applikasjonen skal settes opp inne i imaget.

Forstå Dockerfiles — illustrasjon 1

Fordeler: automatisering av bygging

Dockerfiler gir mange fordeler i utviklingsarbeidsflyten Deres:

  • Automatisering: Slutt på manuelle trinn! Docker bygger images konsekvent hver gang.
  • Versjonskontroll: Dockerfiler er kode, så De kan spore endringer med Git.
  • Reproduserbarhet: Alle som har Dockerfilen, kan bygge nøyaktig det samme imaget.
  • Åpenhet: De kan se nøyaktig hva et image inneholder.

Grunnleggende Dockerfile-struktur

En Dockerfile er en liste med instruksjoner som utføres i rekkefølge fra topp til bunn. Hver instruksjon oppretter et nytt lag i imaget.

Den grunnleggende syntaksen er enkel:

INSTRUCTION arguments

Kommentarer begynner med en #, akkurat som i mange programmeringsspråk. Docker-instruksjoner skiller ikke mellom store og små bokstaver, men konvensjonen er å bruke store bokstaver.

Velg et basisimage med FROM

Alle Dockerfiler må begynne med instruksjonen FROM. Den angir basisimaget som det nye imaget skal bygges på. Basisimaget inneholder vanligvis et operativsystem (for eksempel Alpine Linux) og noen ganger forhåndsinstallert programvare.

Tenk på det som å velge utgangspunktet – et tomt lerret eller et lerret med noen grunnfarger allerede påført.

FROM alpine:latest

Kjør kommandoer med RUN

Instruksjonen RUN brukes til å kjøre kommandoer under byggeprosessen for imaget. Her kan De installere pakker, opprette kataloger eller kompilere kode.

Hver RUN-kommando oppretter et nytt lag, så det kan bidra til å redusere imagestørrelsen å kombinere kommandoer med &&.

RUN apk update && apk add git

Standardkommando med CMD

Instruksjonen CMD angir standardkommandoer eller argumenter for en container som kjører. I motsetning til RUN utføres CMD-kommandoer når en container starter, ikke under byggingen.

Hvis De angir en kommando når De kjører en container (for eksempel docker run my-image ls), overstyrer denne kommandoen CMD-instruksjonen.

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

Legg til filer med COPY

Instruksjonen COPY kopierer nye filer eller kataloger fra vertsmaskinen Deres (der imaget bygges) til filsystemet i Docker-imaget på en angitt bane.

Den foretrekkes vanligvis fremfor ADD fordi den er mer transparent og bare kopierer lokale filer.

COPY ./app /usr/src/app

Arbeidskatalog og miljøvariabler

WORKDIR angir arbeidskatalogen for alle påfølgende RUN-, CMD-, ENTRYPOINT-, COPY- og ADD-instruksjoner. Det gjør Dockerfilen ryddigere.

ENV angir miljøvariabler. Disse variablene er tilgjengelige for påfølgende instruksjoner i Dockerfilen og også for containeren som kjører.

WORKDIR /app
ENV PORT=8080

Informer om porter med EXPOSE

Instruksjonen EXPOSE informerer Docker om at containeren lytter på de angitte nettverksportene under kjøring. Den publiserer ikke porten i seg selv.

Tenk på det som dokumentasjon. For faktisk å gjøre porten tilgjengelig utenfra containeren må De bruke flagget -p med docker run.

EXPOSE 80
EXPOSE 443

Deres første enkle Dockerfile

La oss sette alt sammen! Her er en grunnleggende Dockerfile som setter opp et Alpine Linux-image, installerer en pakke og definerer en standardkommando.

Lagre den som Dockerfile i en tom katalog, og kjør deretter docker build -t my-simple-app . i terminalen for å 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-instruksjoner

Test kunnskapene Deres! Hvilke av disse instruksjonene utføres under byggeprosessen for imaget og endrer direkte innholdet eller strukturen til imaget?

Oppsummering: Det viktigste om Dockerfiler

De har tatt et stort steg i forståelsen av Docker-images! Vi har lært at Dockerfiler er tekstfiler med instruksjoner for bygging av images, og at de gir store fordeler som automatisering og reproduserbarhet.

Viktige instruksjoner vi har gått gjennom:

  • FROM: Definerer basisimaget.
  • RUN: Kjører kommandoer under byggingen.
  • CMD: Angir standardkommandoen for en container som kjører.
  • COPY: Legger til filer fra verten i imaget.
  • WORKDIR, ENV, EXPOSE: Konfigurerer miljøet i imaget og containeren.
Gratis å komme i gang

Lær deg DevOps-bootcamp med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
142
Leksjoner
568

Ofte stilte spørsmål

Er leksjonen «Forstå Dockerfiles» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien DevOps-bootcamp, inkludert «Forstå Dockerfiles», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i DevOps-bootcamp inneholder totalt 4 leksjoner.

Hva lærer jeg i «Forstå Dockerfiles»?

Lær syntaksen og de vanligste instruksjonene i Dockerfiles for å definere hvordan et image bygges. Du øver på DevOps-bootcamp med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med DevOps-bootcamp?

Ingen tidligere erfaring er nødvendig. DevOps-bootcamp på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «Forstå Dockerfiles»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne DevOps-bootcamp-leksjonen?

Ja. Alle DevOps-bootcamp-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Forstå Dockerfiles
  2. Opprette egendefinerte Docker-images
  3. Imagelag og optimalisering
  4. Flerstegsbygg og mindre images
← Tilbake til DevOps-bootcamp