Docher

Cum funcționează Dockerfile?

Cum funcționează Dockerfile?
Puteți implementa doar un singur container cu ajutorul imaginii de andocare. Cu toate acestea, dacă trebuie să implementați mai multe containere (fiecare pentru sarcini diferite) din aceeași imagine, atunci ce se întâmplă? Puteți rezolva acest lucru cu ajutorul fișierului docker.

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:

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 LAMP

Apoi, creați un director numit Dockerfile în director:

nano LAMP / Dockerfile

Adăugați următoarele rânduri:

FROM ubuntu: cel mai recent
MAINTAINER 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.048kB
Pasul 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 docker

Ar 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: Dockerfile

Ar trebui să vedeți următoarea ieșire:

IMAGINE CREATĂ CREATĂ DE COMENTARIE DE MĂRIME
2123a857361d 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: Dockerfile

Odată ce containerul a fost pornit, ar trebui să vedeți următoarea ieșire:

0d2beb7dba01bb763768b116f734ae68286cee00d2ae923b2b7241c39ad54208

Puteți verifica containerul care rulează utilizând următoarea comandă:

docker ps

Ar trebui să obțineți următoarea ieșire:

ID-ul CONTENITORULUI COMANDĂ DE IMAGINE CREATE STATUIRE PORȚI NUME
c14794784eb2 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ă.

Cele mai bune jocuri Oculus App Lab
Dacă sunteți proprietarul căștilor Oculus, atunci trebuie să fiți informați despre încărcarea laterală. Încărcarea laterală este procesul de instalare...
Top 10 jocuri de jucat pe Ubuntu
Platforma Windows a fost una dintre platformele dominante pentru jocuri din cauza procentului imens de jocuri care se dezvoltă astăzi pentru a sprijin...
Cele mai bune 5 jocuri arcade pentru Linux
În zilele noastre, computerele sunt mașini serioase folosite pentru jocuri. Dacă nu puteți obține noul scor mare, veți ști la ce mă refer. În această ...