Oprettelse af brugerdefinerede Docker-images
Byg jeres første brugerdefinerede Docker-image til en enkel applikation, og tag og versionsmærk det korrekt.
Oprettelse af brugerdefinerede Docker-images er en gratis Intensiv DevOps-uddannelse-lektion på CoddyKit. Dette er lektion 2 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 Intensiv DevOps-uddannelse, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Byg dit første Docker-image
Hvorfor bygge brugerdefinerede images? De lader dig pakke din specifikke app, dens afhængigheder og konfiguration i én flytbar enhed. Det er afgørende for ensartethed og nem udrulning.
Du definerer, hvordan dette image skal bygges, ved hjælp af en fil kaldet en Dockerfile.

Vores enkle webapp
Vi containeriserer en meget enkel Python Flask-webapp. Den returnerer blot »Hello from Docker!«, når du besøger dens webadresse.
Forestil dig, at vi har disse filer i en mappe:
app.py: Python-appens koderequirements.txt: Viser Python-afhængighederDockerfile: Instruktioner til at bygge imaget
Koden til Flask-applikationen
Dette er vores grundlæggende Python Flask-app. Den lytter på port 5000 og svarer med "Hello from Docker!".
Du kan køre den lokalt (når du har installeret Flask) for at se den i praksis!
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return 'Hello from Docker!'
if __name__ == '__main__':
app.run(debug=True, host='0.0.0.0')Angivelse af afhængigheder
Vores app har brug for Flask-biblioteket. Vi angiver det i requirements.txt. Denne fil fortæller Docker (og Pythons pakkehåndtering, pip), hvad der skal installeres.
Det sikrer, at vores image indeholder alle de biblioteker, appen skal bruge for at køre.
Flask==2.3.2Opbygningen af vores Dockerfile
En Dockerfile er en tekstfil med instruktioner til at bygge et image. Hver instruktion opretter et lag. Her er det, vi skal bruge:
FROM: Angiver base-imaget (f.eks. Python).WORKDIR: Angiver arbejdsbiblioteket inde i containeren.COPY: Kopierer filer fra din lokale maskine ind i imaget.RUN: Kører kommandoer (f.eks. installation af afhængigheder).EXPOSE: Informerer Docker om de porte, containeren lytter på.CMD: Definerer standardkommandoen, der skal køres, når containeren starter.
Oprettelse af Dockerfile
Her er den komplette Dockerfile til vores Flask-app. Placér denne fil i samme bibliotek som app.py og requirements.txt.
# Use an official Python runtime as a parent image
FROM python:3.9-slim-buster
# Set the working directory in the container
WORKDIR /app
# Copy the current directory contents into the container at /app
COPY requirements.txt .
COPY app.py .
# Install any needed packages specified in requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Make port 5000 available to the world outside this container
EXPOSE 5000
# Run app.py when the container launches
CMD ["python", "app.py"]Kommandoen `docker build`
Nu bygger vi vores image! Åbn din terminal i det bibliotek, hvor din Dockerfile og appens filer findes.
Flaget -t mærker vores image med et navn (my-flask-app) og en version (1.0). . fortæller Docker, at det aktuelle bibliotek skal bruges som build-kontekst.
docker build -t my-flask-app:1.0 .
Kontrol af dit nye image
Når buildet er gennemført, kan du kontrollere, at dit nye image findes, ved at vise alle lokale Docker-images.
Se efter my-flask-app med tagget 1.0 i outputtet.
docker images
Start af din app-container
Nu skal du se din app i praksis! Brug docker run til at oprette og starte en container fra dit image.
-p 5000:5000 knytter port 5000 på din værtsmaskine til port 5000 inde i containeren. -d kører den i detached-tilstand (i baggrunden).
docker run -d -p 5000:5000 my-flask-app:1.0
Åbn http://localhost:5000 i din browser for at se "Hello from Docker!".
Bedste praksis for tagging af images
Tags er afgørende for at håndtere forskellige versioner af dine images. Det er almindeligt at bruge semantisk versionsstyring (f.eks. 1.0.0, 2.1.5) samt et latest-tag.
Du kan føje flere tags til et image med docker tag:
docker tag my-flask-app:1.0 my-flask-app:latest
Det giver dig mulighed for at henvise til det samme image med forskellige navne, hvilket gør det fleksibelt ved udrulning.
Hurtigt tjek
Se på følgende Dockerfile og build-kommando:
# Dockerfile content
FROM alpine:latest
WORKDIR /app
COPY . .
CMD ["echo", "Hello"]
docker build -t my-app:v1 .Hvilket af følgende udsagn er SANDT om kommandoen docker build -t my-app:v1 .?
Opsummering: Tilpassede images
Godt gået! Du har lært at:
- Forberede en simpel applikation til containerisering.
- Skrive en grundlæggende
Dockerfilemed vigtige instruktioner (FROM,WORKDIR,COPY,RUN,EXPOSE,CMD). - Bygge et tilpasset Docker-image med
docker build -t. - Kontrollere dit image med
docker images. - Køre en container fra dit tilpassede image med
docker run -p. - Forstå betydningen af tagging og versionsstyring af images.
Nu dykker vi dybere ned i, hvordan Docker-images er opbygget med lag, og i teknikker til at optimere deres størrelse og build-tider!
Lær Intensiv DevOps-uddannelse 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
- 142
- Lektioner
- 568
Ofte stillede spørgsmål
Er lektionen “Oprettelse af brugerdefinerede Docker-images” gratis?
Ja — alle 3 lektioner i læringssporet Intensiv DevOps-uddannelse, inklusive “Oprettelse af brugerdefinerede Docker-images”, 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. Intensiv DevOps-uddannelse-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Oprettelse af brugerdefinerede Docker-images”?
Byg jeres første brugerdefinerede Docker-image til en enkel applikation, og tag og versionsmærk det korrekt. Du øver dig i Intensiv DevOps-uddannelse 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å Intensiv DevOps-uddannelse?
Der kræves ingen tidligere erfaring. Intensiv DevOps-uddannelse 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 2 af 4.
Hvor lang tid tager lektionen “Oprettelse af brugerdefinerede Docker-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 Intensiv DevOps-uddannelse-lektion?
Ja. Alle Intensiv DevOps-uddannelse-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
- Forstå Dockerfiles
- Oprettelse af brugerdefinerede Docker-images
- Imagelag og optimering
- Multi-stage-builds og mindre images