Docker

Hvordan Dockerfile fungerer?

Hvordan Dockerfile fungerer?
Du kan bare distribuere en enkelt container ved hjelp av dockerbildet. Men hvis du trenger å distribuere flere containere (hver for forskjellige oppgaver) fra det samme bildet, hva skjer da? Du kan løse dette ved hjelp av dockerfilen.

Dockerfile er en enkel tekstfil som inneholder alle kommandoene brukeren kan ringe på kommandolinjen for å montere eller bygge et bilde. Ved hjelp av docker build kan du enkelt automatisere build som kjører flere kommandoer definerer i dockerfilen etter hverandre.

For eksempel vil du laste ned dockerbildet fra docker-huben for dine spesifikke utviklingsbehov. Deretter vil du oppdatere bildet, installere noen pakker for utviklingsprosessen. I dette tilfellet kan du opprette en dockerfil, inkludere alle parametere for dine spesifikke behov og bygge ditt tilpassede bilde. Etter at du har opprettet en dockerfil, kan du bruke den om og om til å bygge det samme bildet uten å installere alle nødvendige pakker manuelt for utviklingsprosessen din.

Dockerfile Basic

Før du arbeider med dockerfile, er det viktig å vite hvordan du lager en dockerfil. Dockerfile inkluderer spesifikke nøkkelord som kan brukes til å bygge et bestemt bilde. En kort forklaring av alle nøkkelord som brukes i en dockerfil er listet opp nedenfor:

Opprette Dockerfile

I denne delen oppretter vi en dockerfil for å bygge et LAMP-serverbilde fra Ubuntu-basisbildet.

Først må du opprette en katalog for å lagre dockerfilen. Du kan opprette den med følgende kommando:

mkdir LAMPE

Deretter oppretter du en katalog med navnet Dockerfile i katalogen:

nano LAMP / Dockerfile

Legg til følgende linjer:

FRA ubuntu: siste
VEDLIKEHOLDER Hitesh Jethva
ENV DEBIAN_FRONTEND = ikke-interaktiv
KJØR apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
CMD ["apachectl", "- D", "FOREGROUND"]
EKSPONER 8080

Lagre og lukk filen når du er ferdig.

Bygge bilde med Dockerfile

Etter å ha opprettet Dockerfile, kan du enkelt lage et tilpasset LAMP-bilde ved hjelp av Dockerfile.

Først endrer du katalogen til LAMP og kjører følgende kommando for å bygge bildet fra den filen:

cd LAMPE
docker build -t "lampe: Dockerfile".

Ovennevnte kommando begynner å laste ned det nyeste Ubuntu-bildet fra Docker Hub og installerte nødvendige pakker spesifisert i Dockerfile. Når bildet har blitt bygget, bør du se følgende utdata:

Sender byggekontekst til Docker daemon 2.048 kB
Trinn 1/6: FRA ubuntu: siste
siste: Henter fra bibliotek / ubuntu
54ee1f796a1e: Trekk komplett
f7bfea53ad12: Trekk komplett
46d371e02073: Trekk komplett
b66c17bbf772: Trekk komplett
Digest: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Status: Lastet ned nyere bilde for ubuntu: siste
---> 4e2eef94cd6b
Trinn 2/6: VEDLIKEHOLDER Hitesh Jethva
---> Kjører i 047977af2c2a
Fjerner mellombeholder 047977af2c2a
---> 1331df625c4c
Trinn 3/6: ENV DEBIAN_FRONTEND = ikke-interaktiv
---> Kjører i 3597152c7a1b
Fjerne mellombeholder 3597152c7a1b
---> 86c82c95e75d
Trinn 4/6: KJØR apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-common php-mysql php-json php-curl -y
Fjerner mellombeholder 322532299fd9
---> f6897a9554f7
Trinn 5/6: CMD ["apachectl", "- D", "FOREGROUND"]
---> Kjører i 669635bc8bcb
Fjerner mellombeholder 669635bc8bcb
---> e8400eb2e677
Trinn 6/6: EKSPONER 8080
---> Kjører i 937ae2b2d305
Fjerner mellombeholder 937ae2b2d305
---> 2123a857361d
Vellykket bygget 2123a857361d
Merket lampe: Dockerfile

Du kan nå liste opp det nye bildet ditt ved å kjøre følgende kommando:

docker-bilder

Du bør se følgende utdata:

REPOSITORY TAG BILDE-ID LAGET STØRRELSE
lampe Dockerfile 2123a857361d for 44 sekunder siden 520MB
ubuntu siste 4e2eef94cd6b for 8 dager siden 73.9 MB

Nå har du et tilpasset LAMP-serverbilde i hånden. Du kan også se historikken til hver kommando med følgende kommando:

docker historie lampe: Dockerfile

Du bør se følgende utdata:

BILDE LAGET LAGET AV STØRRELSE KOMMENTAR
2123a857361d for 16 minutter siden / bin / sh -c # (nop) EXPOSE 8080 0B
e8400eb2e677 16 minutter siden / bin / sh -c # (nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 for 16 minutter siden / bin / sh -c apt-get update -y && apt-get inst… 446MB
86c82c95e75d 17 minutter siden / bin / sh -c # (nop) ENV DEBIAN_FRONTEND = nonin… 0B
1331df625c4c 17 minutter siden / bin / sh -c # (nop) VEDLIKEHOLDER Hitesh Jethva 0B
4e2eef94cd6b 8 dager siden / bin / sh -c # (nop) CMD ["/ bin / bash"] 0B

Lage en container fra LAMP Image

Nå kan du kjøre en container fra bildet ditt ved hjelp av følgende kommando:

docker run -dit lampe: Dockerfile

Når beholderen er startet, bør du se følgende utdata:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Du kan bekrefte den kjørende beholderen ved hjelp av følgende kommando:

docker ps

Du bør få følgende utdata:

CONTAINER ID BILDE KOMMANDO LAGET STATUS PORTS NAVN
c14794784eb2 lampe: Dockerfile "apachectl -D FOREGR ..." 2 minutter siden Opp 2 minutter 0.0.0.0: 8080-> 8080 / tcp quirky_ramanujan

Konklusjon

I denne guiden lærte du hva som er Dockerfile og hvordan du bygger et dockerbilde med Dockerfile. Dette er veldig nyttig for å lage dine tilpassede bilder i stedet for å foreta endringer i et trukket bilde.

Mus Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Hvordan endre musepekeren og markørstørrelse, farge og skjema på Windows 10
Musepekeren og markøren i Windows 10 er veldig viktige aspekter ved operativsystemet. Dette kan sies også for andre operativsystemer, så i sannhet er ...
Gratis og åpen kildekode-spillmotorer for utvikling av Linux-spill
Denne artikkelen vil dekke en liste over gratis og open source-spillmotorer som kan brukes til å utvikle 2D- og 3D-spill på Linux. Det er mange slike ...
Shadow of the Tomb Raider for Linux Tutorial
Shadow of the Tomb Raider er det tolvte tilskuddet til Tomb Raider-serien - et action-eventyrspill-franchise opprettet av Eidos Montreal. Spillet ble ...