Dockerfile este un fișier text simplu care conține toate comenzile pe care utilizatorul le poate apela pe linia de comandă pentru a asambla sau construi o imagine. Cu ajutorul construirii docker, puteți automatiza cu ușurință build care rulează mai multe comenzi definite în fișierul docker succesiv.
De exemplu, doriți să descărcați imaginea docker din hub-ul docker pentru nevoile dvs. specifice de dezvoltare. Apoi, doriți să actualizați imaginea, să instalați câteva pachete pentru procesul de dezvoltare. În acest caz, puteți crea un fișier docker, să includeți toți parametrii pentru nevoile dvs. specifice și să vă creați imaginea personalizată. După crearea unui fișier docker, îl puteți folosi din nou și din nou pentru a crea aceeași imagine fără a instala manual toate pachetele necesare procesului de dezvoltare.
Dockerfile Basic
Înainte de a lucra cu fișierul docker, este important să știți cum să creați un fișier docker. Dockerfile include cuvinte cheie specifice care pot fi utilizate pentru a construi o anumită imagine. O scurtă explicație a tuturor cuvintelor cheie utilizate într-un fișier docker sunt enumerate mai jos:
- DIN: Este folosit pentru a defini imaginea de bază, pe care vom construi.
- ADĂUGA: Este folosit pentru a adăuga fișiere în containerul în curs de construire. În termeni simpli, RUN este utilizat pentru a rula comenzi și comite rezultatul
- ALERGA: Se utilizează pentru a adăuga straturi la imaginea de bază, prin instalarea componentelor.
- CMD: Este folosit pentru a rula comenzi la începutul containerului. Aceste comenzi rulează numai atunci când nu există niciun argument specificat în timpul rulării containerului.
- PUNCT DE INTRARE: Este folosit pentru a rula comenzi în timpul procesului de inițializare a containerului. Trebuie să utilizați un ENTRYPOINT în fișierul de andocare dacă doriți să porniți automat un container după crearea unei imagini.
- ENV: Este folosit pentru a defini variabilele de mediu în timpul rulării containerului.
- EXPUNE: Este folosit pentru a specifica portul de ascultare pentru a activa rețeaua în timpul rulării.
- MAINTAINER: Este folosit pentru a specifica numele și ID-ul de e-mail al creatorului de imagini.
- UTILIZATOR: Este folosit pentru a specifica numele de utilizator utilizat pentru a rula containerul.
- VOLUM: Este folosit pentru a permite accesul din container la directorul de pe gazda Docker.
- WORKDIR: Este folosit pentru a specifica calea comenzii care urmează să fie executată în timpul rulării.
- ETICHETA: Se utilizează pentru a adăuga etichete la imaginea de andocare.
Crearea fișierului Docker
În această secțiune, vom crea un fișier docker pentru a construi o imagine de server LAMP din imaginea de bază Ubuntu.
Mai întâi, va trebui să creați un director pentru a stoca fișierul docker. O puteți crea cu următoarea comandă:
mkdir LAMPApoi, creați un director numit Dockerfile în director:
nano LAMP / DockerfileAdăugați următoarele rânduri:
FROM ubuntu: cel mai recentMAINTAINER Hitesh Jethva
ENV DEBIAN_FRONTEND = neinteractiv
RUN 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"]
EXPUNE 8080
Salvați și închideți fișierul când ați terminat.
Construirea imaginii cu Dockerfile
După crearea fișierului Dockerfile, puteți crea cu ușurință o imagine LAMP personalizată cu ajutorul fișierului Dockerfile.
Mai întâi, schimbați directorul în LAMP și rulați următoarea comandă pentru a construi imaginea din acel fișier:
cd LAMPĂdocker build -t "lampă: Dockerfile".
Comanda de mai sus va începe descărcarea celei mai recente imagini Ubuntu din Docker Hub și va instala pachetele necesare specificate în fișierul Docker. Odată ce imaginea a fost construită cu succes, ar trebui să vedeți următoarea ieșire:
Trimiterea contextului de construire la demonul Docker 2.048kBPasul 1/6: DE la Ubuntu: cel mai recent
cea mai recentă: extragerea din bibliotecă / ubuntu
54ee1f796a1e: Trageți complet
f7bfea53ad12: Trageți complet
46d371e02073: Trageți complet
b66c17bbf772: Trageți complet
Rezumat: sha256: 31dfb10d52ce76c5ca0aa19d10b3e6424b830729e32a89a7c6eee2cda2be67a5
Stare: Imagine mai nouă descărcată pentru Ubuntu: cea mai recentă
---> 4e2eef94cd6b
Pasul 2/6: MAINTAINER Hitesh Jethva
---> Se rulează în 047977af2c2a
Scoaterea containerului intermediar 047977af2c2a
---> 1331df625c4c
Pasul 3/6: ENV DEBIAN_FRONTEND = neinteractiv
---> Se rulează în 3597152c7a1b
Scoaterea containerului intermediar 3597152c7a1b
---> 86c82c95e75d
Pasul 4/6: RUN 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
Scoaterea containerului intermediar 322532299fd9
---> f6897a9554f7
Pasul 5/6: CMD ["apachectl", "- D", "FOREGROUND"]
---> Se rulează în 669635bc8bcb
Scoaterea containerului intermediar 669635bc8bcb
---> e8400eb2e677
Pasul 6/6: EXPUNE 8080
---> Se rulează în 937ae2b2d305
Demontarea containerului intermediar 937ae2b2d305
---> 2123a857361d
2123a857361d construit cu succes
Lampă etichetată cu succes: Dockerfile
Acum puteți lista noua imagine a dvs. executând următoarea comandă:
imagini dockerAr trebui să vedeți următoarea ieșire:
ID DE IMAGINĂ TAG REPOZITORIU MĂRIME CREATĂlampă Dockerfile 2123a857361d acum 44 de secunde 520MB
ubuntu ultima 4e2eef94cd6b acum 8 zile 73.9MB
Acum aveți în mână o imagine de server LAMP personalizată. De asemenea, puteți vedea istoricul fiecărei comenzi cu următoarea comandă:
lampă istorie docker: DockerfileAr trebui să vedeți următoarea ieșire:
IMAGINE CREATĂ CREATĂ DE COMENTARIE DE MĂRIME2123a857361d acum 16 minute / bin / sh -c # (nop) EXPOSE 8080 0B
e8400eb2e677 acum 16 minute / bin / sh -c # (nop) CMD ["apachectl" "-D" "FO ... 0B
f6897a9554f7 acum 16 minute / bin / sh -c apt-get update -y && apt-get inst ... 446MB
86c82c95e75d acum 17 minute / bin / sh -c # (nop) ENV DEBIAN_FRONTEND = nonin ... 0B
1331df625c4c acum 17 minute / bin / sh -c # (nop) MAINTAINER Hitesh Jethva 0B
4e2eef94cd6b acum 8 zile / bin / sh -c # (nop) CMD ["/ bin / bash"] 0B
Crearea unui container din imaginea LAMP
Acum, puteți rula un container din imaginea dvs. utilizând următoarea comandă:
docker run -dit lamp: DockerfileOdată ce containerul a fost pornit, ar trebui să vedeți următoarea ieșire:
0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208Puteți verifica containerul care rulează utilizând următoarea comandă:
docker psAr trebui să obțineți următoarea ieșire:
ID-ul CONTENITORULUI COMANDĂ DE IMAGINE CREATE STATUIRE PORȚI NUMEc14794784eb2 lampă: Dockerfile "apachectl -D FOREGR ..." acum 2 minute Sus 2 minute 0.0.0.0: 8080-> 8080 / tcp quirky_ramanujan
Concluzie
În acest ghid, ați aflat ce este Dockerfile și cum să creați o imagine docker cu Dockerfile. Acest lucru este foarte util pentru crearea imaginilor personalizate în loc să comiteți modificări la o imagine extrasă.