Sådan bygger du Docker-billede fra DockerFile i CentOS 8 med bedste eksempel
Trin 1:Opret en Dockerfile
Opret en ny fil kaldet `Dockerfile` i den mappe, hvor du vil bygge dit Docker-billede. Dockerfilen indeholder instruktionerne til at bygge billedet.
```
Indstil basisbilledet
FRA centos:8
Opdater pakkerne
KØR yum update -y
Installer nødvendige pakker
KØR yum install -y nginx php php-mysqlnd
Kopiér webapplikationsfilerne
KOPI . /var/www/html/
Afslør HTTP-porten
UDSÆT 80
Indstil standardkommandoen
CMD ["nginx", "-g", "dæmon off;"]
```
Trin 2:Byg Docker-billedet
For at bygge Docker-billedet skal du køre følgende kommando:
```
docker build -t my-nginx-billede .
```
Denne kommando vil bygge Docker-billedet ved at bruge instruktionerne i `Dockerfilen`.
Trin 3:Kør Docker-billedet
Når billedet er bygget, kan du køre det ved hjælp af følgende kommando:
```
docker run -d -p 8080:80 --navn mit-nginx-container mit-nginx-billede
```
Denne kommando vil oprette en ny Docker-beholder baseret på `my-nginx-image`-billedet. Indstillingen `-p 8080:80` kortlægger containerens port 80 til port 8080 på værtsmaskinen. Indstillingen `--name my-nginx-container` giver beholderen et navn.
Trin 4:Bekræft installationen
For at bekræfte, at Nginx kører, skal du åbne en webbrowser og navigere til `http://localhost:8080`. Du bør se standard Nginx velkomstside.
Eksempel på en Dockerfile til en Python-applikation
```
Indstil basisbilledet
FRA python:3.8-slank
Opret en arbejdsmappe
WORKDIR /kode
Kopiér programfilerne
COPY requirements.txt .
KØR pip install --no-cache-dir -r requirements.txt
Kopiér kildekoden
KOPI . .
Afslør applikationsporten
UDSÆT 8000
Indstil standardkommandoen
CMD ["python", "app.py"]
```
Denne Dockerfil opretter et Python-billede med Python 3.8 runtime. Den installerer de nødvendige Python-pakker ved hjælp af pip og kopierer derefter kildekoden ind i containeren. Containeren afslører port 8000, som er den port, som Python-applikationen lytter på. Standardkommandoen er indstillet til at køre `app.py`-scriptet, som er indgangspunktet for applikationen.