Docker

Kako deluje Dockerfile?

Kako deluje Dockerfile?
S pomočjo slike dockerja lahko razmestite samo en vsebnik. Če pa morate iz iste slike razporediti več vsebnikov (vsak za različne naloge), kaj se potem zgodi? To lahko rešite s pomočjo datoteke docker.

Dockerfile je preprosta besedilna datoteka, ki vsebuje vse ukaze, ki jih lahko uporabnik pokliče v ukazni vrstici za sestavljanje ali izdelavo slike. S pomočjo gradnje dockerja lahko enostavno avtomatizirate gradnjo, ki zažene zaporedoma več ukazov, definiranih v datoteki docker.

Na primer, želite prenesti sliko dockerja iz priklopnega središča za svoje posebne razvojne potrebe. Nato želite posodobiti sliko, namestiti nekaj paketov za svoj razvojni proces. V tem primeru lahko ustvarite datoteko docker, vključite vse parametre za svoje potrebe in ustvarite sliko po meri. Po ustvarjanju datoteke docker lahko znova in znova uporabite isto sliko, ne da bi ročno namestili vse potrebne pakete za svoj razvojni postopek.

Dockerfile Basic

Preden začnete delati z dockerfile, če je pomembno vedeti, kako narediti dockerfile. Dockerfile vključuje posebne ključne besede, ki jih je mogoče uporabiti za ustvarjanje določene slike. Spodaj so navedene kratke razlage vseh ključnih besed, uporabljenih v datoteki docker:

Ustvarjanje datoteke Docker

V tem razdelku bomo ustvarili datoteko docker za izdelavo slike strežnika LAMP iz osnovne slike Ubuntuja.

Najprej boste morali ustvariti imenik za shranjevanje datoteke docker. Ustvarite ga lahko z naslednjim ukazom:

mkdir SVETILKA

Nato v imeniku ustvarite imenik z imenom Dockerfile:

nano LAMP / Dockerfile

Dodajte naslednje vrstice:

IZ ubuntuja: najnovejše
VZDRŽEVALEC Hitesh Jethva
ENV DEBIAN_FRONTEND = neinteraktivno
ZAŽENI apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-pogost php-mysql php-json php-curl -y
CMD ["apachectl", "- D", "NEZAPOSLENO"]
IZPOSTAVITE 8080

Ko končate, shranite in zaprite datoteko.

Ustvarjanje slike z Dockerfile

Po ustvarjanju datoteke Docker lahko s pomočjo datoteke Docker enostavno ustvarite sliko LAMP po meri.

Najprej spremenite imenik v LAMP in zaženite naslednji ukaz za izdelavo slike iz te datoteke:

cd LAMP
docker build -t "lamp: Dockerfile".

Zgornji ukaz bo začel prenašati najnovejšo sliko Ubuntuja iz Docker Hub in namestiti potrebne pakete, navedene v Dockerfile. Ko je slika uspešno zgrajena, boste videli naslednje rezultate:

Pošiljanje konteksta gradnje v Docker demon 2.048kB
Korak 1/6: IZ ubuntuja: najnovejši
najnovejše: Vlečenje iz knjižnice / ubuntu
54ee1f796a1e: Povlecite končano
f7bfea53ad12: Povlecite končano
46d371e02073: Povlecite končano
b66c17bbf772: povleci dokončano
Izvleček: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Stanje: Prenesena novejša slika za ubuntu: najnovejša
---> 4e2eef94cd6b
Korak 2/6: VZDRŽEVALEC Hitesh Jethva
---> Tek v 047977af2c2a
Odstranjevanje vmesne posode 047977af2c2a
---> 1331df625c4c
Korak 3/6: ENV DEBIAN_FRONTEND = neinteraktivno
---> Tek v 3597152c7a1b
Odstranjevanje vmesne posode 3597152c7a1b
---> 86c82c95e75d
Korak 4/6: ZAŽENI apt-get update -y && apt-get install apache2 mariadb-server
libapache2-mod-php php php-cli php-pogost php-mysql php-json php-curl -y
Odstranjevanje vmesne posode 322532299fd9
---> f6897a9554f7
Korak 5/6: CMD ["apachectl", "- D", "FOREGROUND"]
---> Tek v 669635bc8bcb
Odstranjevanje vmesne posode 669635bc8bcb
---> e8400eb2e677
Korak 6/6: IZPOSTAVITE 8080
---> Tek v 937ae2b2d305
Odstranitev vmesne posode 937ae2b2d305
---> 2123a857361d
Uspešno zgrajena 2123a857361d
Uspešno označena žarnica: Dockerfile

Zdaj lahko na novo navedete sliko, tako da zaženete naslednji ukaz:

slike dockerja

Morali bi videti naslednji izhod:

Ustvarjena velikost ID-ja slike repozitorne oznake
žarnica Dockerfile 2123a857361d pred 44 sekundami 520MB
ubuntu najnovejši 4e2eef94cd6b pred 8 dnevi 73.9 MB

Zdaj imate v roki sliko strežnika LAMP po meri. Z naslednjim ukazom si lahko ogledate tudi zgodovino vsakega ukaza:

lučka zgodovine dockerja: Dockerfile

Morali bi videti naslednji izhod:

SLIKA Ustvarjena Ustvarjena po velikosti komentar
2123a857361d pred 16 minutami / bin / sh -c # (nop) EXPOSE 8080 0B
e8400eb2e677 pred 16 minutami / bin / sh -c # (nop) CMD ["apachectl" "-D" "FO… 0B
f6897a9554f7 pred 16 minutami / bin / sh -c apt-get update -y && apt-get inst… 446MB
86c82c95e75d pred 17 minutami / bin / sh -c # (nop) ENV DEBIAN_FRONTEND = nonin… 0B
1331df625c4c pred 17 minutami / bin / sh -c # (nop) VZDRŽEVALEC Hitesh Jethva 0B
4e2eef94cd6b pred 8 dnevi / bin / sh -c # (nop) CMD ["/ bin / bash"] 0B

Ustvarjanje vsebnika iz slike LAMP

Zdaj lahko zaženete vsebnik s slike z naslednjim ukazom:

docker run -dit lamp: Dockerfile

Ko se vsebnik zažene, boste videli naslednji izhod:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Izvedeni vsebnik lahko preverite z naslednjim ukazom:

docker ps

Dobili bi naslednji izhod:

IME UKAZA ID KONTEJNERJA USTVARJENA STATUSNA PRISTANIŠČA IMENA
c14794784eb2 svetilka: Dockerfile "apachectl -D FOREGR…" pred 2 minutama Gor 2 minuti 0.0.0.0: 8080-> 8080 / tcp quirky_ramanujan

Zaključek

V tem priročniku ste izvedeli, kaj je Dockerfile in kako z Dockerfile zgraditi sliko dockerja. To je zelo koristno za ustvarjanje slik po meri, namesto da bi se na izvlečeni sliki izvajale spremembe.

OpenTTD vs Simutrans
Ustvarjanje lastne simulacije prevoza je lahko zabavno, sproščujoče in izjemno vabljivo. Zato morate preizkusiti čim več iger, da boste našli tisto, k...
Vadnica za OpenTTD
OpenTTD je ena izmed najbolj priljubljenih poslovnih simulacijskih iger. V tej igri morate ustvariti čudovit prevozniški posel. Vendar boste začeli na...
SuperTuxKart za Linux
SuperTuxKart je odličen naslov, zasnovan tako, da vam brezplačno ponuja izkušnjo Mario Kart v vašem sistemu Linux. Igrati je precej zahtevno in zabavn...