Udarbejdelse af Dockerfiles til images
Lær at skrive Dockerfiles, der definerer, hvordan Deres applikationsmiljø og afhængigheder pakkes i et image.
Udarbejdelse af Dockerfiles til images er en gratis Docker og Kubernetes for udviklere-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Docker og Kubernetes for udviklere, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Docker og Kubernetes for udviklere-kurset indeholder 4 lektioner i alt.
Hvad er Dockerfiles?
Velkommen til at oprette dine egne Docker-images! Kernen i processen er Dockerfile.
En Dockerfile er en enkel tekstfil, der indeholder en række instruktioner. Disse instruktioner fortæller Docker præcis, hvordan et Docker-image skal bygges, trin for trin.
Hvorfor bruge en Dockerfile?
Dockerfiles automatiserer processen med at oprette images. I stedet for manuelt at opsætte et miljø definerer du det én gang i en Dockerfile.
- Reproducerbarhed: Sikrer, at alle bygger præcis det samme image.
- Versionsstyring: Dockerfiles kan gemmes i Git ligesom din kode.
- Effektivitet: Gør udviklings- og implementeringsarbejdsgange hurtigere.
Udgangspunkt: FROM-instruktionen
Alle Dockerfiles skal begynde med instruktionen FROM. Den angiver det basisimage, som dit image bygges på.
Tænk på det som at vælge operativsystemet og den indledende software til din container. For eksempel ubuntu:22.04 eller node:18-alpine.
FROM node:18-alpineKørsel af kommandoer: RUN-instruktionen
Instruktionen RUN udfører kommandoer under opbygningen af imaget. Her installerer du software, opdaterer pakker eller opretter mapper.
Hver RUN-instruktion opretter et nyt lag i dit image.
FROM node:18-alpine
RUN apk add --no-cache gitIndstilling af arbejdsområdet: WORKDIR
Instruktionen WORKDIR angiver den aktuelle arbejdsmappe for efterfølgende instruktioner som RUN, CMD, ENTRYPOINT, COPY eller ADD.
Det er god praksis at angive en bestemt mappe til dine applikationsfiler.
FROM node:18-alpine
WORKDIR /appTilføjelse af filer: COPY-instruktionen
Instruktionen COPY kopierer filer eller mapper fra din lokale maskine (den kontekst, der bygges fra) til Docker-imagets filsystem.
Det første argument er kildebanen på din maskine, og det andet er destinationsbanen inde i imaget.
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./Installation af afhængigheder
Efter at have kopieret dit projekts afhængighedsfiler (som package.json til Node.js) bruger du typisk RUN igen til at installere dem.
Dette trin sikrer, at din applikation har alt, hvad den skal bruge for at køre.
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .Eksponering af porte: EXPOSE-instruktionen
Instruktionen EXPOSE oplyser Docker om, at containeren lytter på de angivne netværksporte under kørsel.
Det er dokumentation til brugere, ikke en faktisk offentliggørelse af porten. Du offentliggør porte, når du kører containeren.
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000Standardkommando: CMD-instruktionen
Instruktionen CMD angiver en standardkommando, der udføres, når en container startes fra imaget.
I modsætning til RUN kører CMD, når containeren startes, ikke under opbygningen. Du kan tilsidesætte den, når du kører containeren.
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]Komplet Dockerfile-eksempel
Her er et komplet eksempel på en enkel Dockerfile til en Node.js-webapplikation. Hver linje bidrager til at bygge det endelige image.
# Use an official Node.js runtime as a parent image
FROM node:18-alpine
# Set the working directory in the container
WORKDIR /app
# Copy package.json and package-lock.json to install dependencies
COPY package*.json ./
# Install application dependencies
RUN npm install
# Copy the rest of the application code
COPY . .
# Make port 3000 available to the world outside this container
EXPOSE 3000
# Define the command to run your app
CMD ["npm", "start"]Tjek af Dockerfile-instruktioner
Hvilken Dockerfile-instruktion bruges til at udføre kommandoer under opbygningen af imaget, f.eks. til installation af pakker eller oprettelse af mapper?
Opsummering: Oprettelse af Dockerfiles
Du har lært de vigtigste instruktioner til at oprette Dockerfiles:
FROM: Angiver basisimaget.RUN: Udfører kommandoer under opbygningen.WORKDIR: Angiver den aktuelle arbejdsmappe.COPY: Kopierer filer til imaget.EXPOSE: Angiver lyttende porte.CMD: Angiver standardkommandoen, der køres, når containeren starter.
Når du mestrer disse, kan du definere din applikations miljø præcist!
Lær Docker og Kubernetes for udviklere 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 “Udarbejdelse af Dockerfiles til images” gratis?
Ja — hele teksten til “Udarbejdelse af Dockerfiles til images” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Docker og Kubernetes for udviklere-kurset, skal du opgradere til CoddyKit PRO. Docker og Kubernetes for udviklere-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Udarbejdelse af Dockerfiles til images”?
Lær at skrive Dockerfiles, der definerer, hvordan Deres applikationsmiljø og afhængigheder pakkes i et image. Du øver dig i Docker og Kubernetes for udviklere 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å Docker og Kubernetes for udviklere?
Der kræves ingen tidligere erfaring. Docker og Kubernetes for udviklere 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 “Udarbejdelse af Dockerfiles til images”?
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 Docker og Kubernetes for udviklere-lektion?
Ja. Alle Docker og Kubernetes for udviklere-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
- Udarbejdelse af Dockerfiles til images
- Bygning af brugerdefinerede Docker-images
- Applikationer med flere containere og Compose
- Vedvarende data med Docker-volumener