Cum să rulați o instanță Docker dintr-un fișier Docker?

Cum Sa Rulati O Instanta Docker Dintr Un Fisier Docker



Docker este o platformă deschisă foarte apreciată, care este utilizată universal pentru a construi, testa, implementa și expedia aplicații într-un mediu containerizat. Docker utilizează nivelul de virtualizare al sistemului de operare și acceptă diferite componente, cum ar fi containerele Docker, imaginile, rețelele și volumul Docker.

Containerele Docker sunt una dintre componentele esențiale ale platformei Docker care împachetează programul, setările de configurare și dependențele folosind imaginea Docker. Imaginea Docker este un șablon simplu sau un instantaneu al unui container care ghidează containerul despre cum să containerizeze o aplicație. Aceste imagini sunt disponibile în mare parte în registrul oficial al hub-ului Docker. De asemenea, utilizatorii pot proiecta aceste imagini în funcție de cerințele proiectului folosind Dockerfile.

Acest blog va explica:







Ce este un Dockerfile?

Un fișier Docker este un fișier text normal care conține comenzi și instrucțiuni care definesc structura de bază a unui container Docker. Aceste instrucțiuni pot fi executate în terminal fără niciun fișier, dar rularea fiecărei comenzi una după alta este o sarcină agitată și complexă. Dockerfile facilitează pentru dezvoltatori specificarea tuturor cerințelor și instrucțiunilor într-un singur fișier. Acest fișier va fi apoi folosit pentru a construi șablonul containerului, care este o imagine Docker. După aceea, imaginea docker este executată pentru a porni instanța în containerul Docker.



Comenzile de bază ale Dockerfile

Unele comenzi de bază ale Dockerfile care sunt utilizate pentru a defini instantaneul de bază al containerului sunt enumerate mai jos în formă tabelară:



Comenzi Descriere
DIN DIN ” este utilizată pentru a defini imaginea de bază pentru șablonul containerului. Aceste imagini sunt extrase din registrul oficial Docker Docker Hub.
INTRETINERE INTRETINERE „comanda definește informațiile despre autor (nume și e-mail) care creează imaginea Docker.
WORKDIR Specifică directorul de lucru al unei aplicații containerizate.
COPIE Utilizat pentru a copia fișierele sursă și de configurare din sistemul gazdă în calea specificată a containerului Docker.
ADĂUGA ADĂUGA comanda „ este similară cu „ COPIE ” dar acceptă și adresa URL la distanță pentru a adăuga fișierul de la adresa URL la calea containerului, cum ar fi de la depozitul GitHub la calea containerului.
ALERGA ALERGA ” este utilizat pentru a rula comenzile în container. În Dockerfile, este folosit mai ales pentru a gestiona și instala dependențe suplimentare în interiorul containerului.
CMD CMD ” definește punctele implicite ale containerelor Docker. Practic definește executabilele și parametrii impliciti ai „ PUNCT DE INTRARE ”.
PUNCT DE INTRARE PUNCT DE INTRARE Comanda ” este folosită și pentru a seta executabilele containerului Docker. Practic setează aplicațiile implicite care sunt utilizate într-un container de fiecare dată. Comanda ENTRYPOINT este de asemenea folosită o dată într-un fișier Docker.
UTILIZATOR Această comandă este folosită pentru a seta UID-ul (numele de utilizator) pentru a executa comenzile în Container
VOLUM VOLUM Comanda ” este folosită pentru a lega sau monta volumul extern (sistemul de fișiere) cu un container.
ENV ENV Comanda ” este utilizată pentru a seta variabilele de mediu ale containerului.
ARG ARG ” este utilizat pentru a trece argumentele în interiorul containerului.
EXPUNE EXPUNE ” comanda specifică porturile expunetoare pe care va fi executat containerul.
ONBUILD Citește instrucțiuni din imaginea de bază, dar declanșează aceste instrucțiuni prin imaginea din aval.
ETICHETA ETICHETA ” este utilizat pentru a specifica metadatele instantaneului containerului.

Cum să rulați o instanță Docker dintr-un fișier Docker în Docker?

Pentru a rula o instanță Docker sau un container folosind Dockerfile, creați mai întâi un Dockerfile. Apoi, faceți instantaneul de bază pentru container folosind Dockerfile. După aceea, rulați instantaneul pentru a porni instanța Docker.





Urmați instrucțiunile de mai jos pentru ilustrare.

Pasul 1: Creați un fișier Docker

Mai întâi, creați un Dockerfile. Amintiți-vă că Dockerfile nu are nicio extensie de fișier. După aceea, lipiți următoarele comenzi în fișier:



DIN Golang: 1.8

WORKDIR / merge / src / aplicația

COPY main.go .

RUN du-te construi -O server web.

EXPUNE 8080 : 8080

PUNCT DE INTRARE [ './webserver' ]

Pasul 2: Creați fișierul program

Apoi, creați un fișier nou numit „ principal.go ” care conține programul simplu Golang. În acest scop, lipiți următorul program în fișier:

pachet principal
import (
'fmt'
'Buturuga'
'net/http'
)

func handler ( În http.ResponseWriter, r * http.Solicitare ) {
fmt.Fprintf ( În , „Bună ziua! Bun venit la tutorialul LinuxHint” )
}
func principal ( ) {
http.HandleFunc ( '/' , manipulator )
log.Fatal ( http.ListenAndServe ( „0.0.0.0:8080” , nul ) )
}

Pasul 3: Generați instantaneu container

Acum, creați instantaneul Docker al containerului folosind „ docker build -t -f . ”:

docker build -t du-te-img -f Dockerfile .

În comanda de mai sus, „ -t opțiunea setează numele sau eticheta imaginii, „ -f ” opțiunea specifică calea către fișierul Docker din care motorul Docker trebuie să citească contextul de construire:

Pentru a verifica dacă imaginea a fost creată cu succes sau nu, rulați „ imagini docker ”comandă:

imagini docker go-img

Rezultatul arată că am creat cu succes instantaneul containerului din fișierul Docker:

Pasul 4: Rulați instantaneul pentru a porni containerul

Acum, porniți instanța Docker în containerul Docker executând instantaneul containerului care este creat în pasul de mai sus:

docker run -p 8080 : 8080 --Nume go-cont -d du-te-img

În comanda de mai sus, „ -p „ opțiunea rulează containerul pe „ 8080 'port,' -Nume ” setează numele containerului și „ -d ” opțiunea rulează containerul în modul detașat (serviciu de fundal):

Pentru a verifica dacă containerul se execută sau nu, enumerați containerele care rulează folosind „ docker ps ”comandă:

docher ps

Acum, navigați la „ http://localhost:8080 ” și verificați dacă aplicația rulează sau nu pe portul de expunere:

Rezultatul de mai sus indică faptul că am pornit efectiv instanța Docker folosind Dockerfile.

Cum să rulați o instanță dintr-un fișier Docker în Docker Compose?

Docker compose este un alt plugin major al platformei Docker care ne permite să rulăm mai multe instanțe în containere diferite simultan. De asemenea, utilizatorii pot rula instanța Docker din Dockerfile utilizând pluginul de scriere Docker. Pentru ilustrare, urmați pașii dați.

Pasul 1: Creați Dockerfile

Mai întâi, creați un Dockerfile. De exemplu, folosim același fișier Dockerfile și același fișier de program care sunt utilizate în secțiunea de mai sus:

DIN Golang: 1.8

WORKDIR / merge / src / aplicația

COPY main.go .

RUN du-te construi -O server web.

EXPUNE 8080 : 8080

PUNCT DE INTRARE [ './webserver' ]

Pasul 2: Creați fișierul docker-compose.yml

Apoi, creați un „ docker-compose.yml ” și copiați următoarele perechi de chei în fișier:

versiune: '3'

Servicii:

web:
construi: .
porturi:
- 8080 : 8080

În tăierea de mai sus:

  • Servicii ” este utilizat pentru a specifica serviciile de compunere care vor fi executate într-un container separat. Pentru ilustrare, am configurat un singur serviciu „ web ” pentru a menține codul curat și simplu.
  • construi ” perechea de chei este utilizată pentru a citi contextul de construcție din fișierul Docker. Aici, docker va citi instrucțiunile din fișierul Docker și va construi containerul în consecință.
  • porturi tasta ” definește porturile de expunere pe care va fi executat containerul.

Pasul 3: Porniți instanța Docker

Acum, rulați instanța Docker într-un container utilizând „ docker-compune ”comandă:

docker-compune -d

Pentru verificare, verificați lista de containere compuse care rulează folosind „ docker-compose ps ”comandă:

docker-compune ps

Rezultatul arată că „ web ” serviciul se execută cu succes în “ golangapp-web-1 ” container:

Navigați la portul de expunere al serviciului de scriere și verificați dacă programul se execută sau nu. Rezultatul de mai jos arată că am pornit cu succes instanța Docker din Dockerfile folosind Docker compose:

Este vorba despre rularea unei instanțe docker dintr-un Dockerfile.

Concluzie

Pentru a executa o instanță Docker într-un container dintr-un Dockerfile, creați mai întâi Dockerfile. Adăugați comenzile în interiorul fișierului pentru a crea imaginea sau șablonul containerului Docker. Apoi, faceți imaginea containerului sau instantaneul folosind butonul „ docker build -t -f . ” comanda. Acum, executați imaginea containerului pentru a porni instanța Docker. Utilizatorii pot folosi, de asemenea, compusul Docker pentru a rula instanța Docker din Dockerfile. Această postare a ilustrat cum să rulați o instanță Docker dintr-un fișier Docker.