Ako spustiť inštanciu Docker zo súboru Docker?

Ako Spustit Instanciu Docker Zo Suboru Docker



Docker je obľúbená otvorená platforma, ktorá sa všeobecne používa na vytváranie, testovanie, nasadzovanie a odosielanie aplikácií v kontajnerovom prostredí. Docker používa úroveň virtualizácie operačného systému a podporuje rôzne komponenty, ako sú kontajnery Docker, obrázky, siete a zväzok Docker.

Kontajnery Docker sú jednou zo základných súčastí platformy Docker, ktorá balí program, konfiguračné nastavenia a závislosti pomocou obrazu Docker. Obrázok Docker je jednoduchá šablóna alebo snímka kontajnera, ktorá vedie kontajner, ako kontajnerizovať aplikáciu. Tieto obrázky sú väčšinou dostupné v oficiálnom registri centra Docker. Používatelia môžu tiež navrhnúť tieto obrázky podľa požiadaviek projektu pomocou Dockerfile.

Tento blog vysvetlí:







Čo je to Dockerfile?

Dockerfile je normálny textový súbor, ktorý obsahuje príkazy a inštrukcie, ktoré definujú základnú štruktúru kontajnera Docker. Tieto inštrukcie možno vykonať v termináli bez akéhokoľvek súboru, ale spustenie každého príkazu jeden po druhom je hektická a zložitá úloha. Dockerfile uľahčuje vývojárom špecifikovať všetky požiadavky a pokyny do jedného súboru. Tento súbor sa potom použije na vytvorenie šablóny kontajnera, čo je obrázok Docker. Potom sa spustí obraz dockera na spustenie inštancie v kontajneri Docker.



Základné príkazy Dockerfile

Niektoré základné príkazy Dockerfile, ktoré sa používajú na definovanie základnej snímky kontajnera, sú uvedené nižšie v tabuľkovej forme:



Príkazy Popis
OD ' OD ” sa používa na definovanie základného obrázka pre šablónu kontajnera. Tieto obrázky sú stiahnuté z oficiálneho registra Docker Docker Hub.
ÚDRŽOBNÍK ' ÚDRŽOBNÍK ” definuje informácie o autorovi (meno a e-mail), ktorý vytvára obrázok Docker.
WORKDIR Špecifikuje pracovný adresár kontajnerovej aplikácie.
KOPÍROVAŤ Používa sa na kopírovanie zdrojových a konfiguračných súborov z hostiteľského systému do zadanej cesty kontajnera Docker.
PRIDAŤ ' PRIDAŤ “príkaz je podobný príkazu “ KOPÍROVAŤ “, ale podporuje aj vzdialenú adresu URL na pridanie súboru z adresy URL do cesty kontajnera, napríklad z úložiska GitHub do cesty kontajnera.
RUN ' RUN ” sa používa na spustenie príkazov v kontajneri. V Dockerfile sa väčšinou používa na správu a inštaláciu ďalších závislostí vo vnútri kontajnera.
CMD CMD ” definuje predvolené body kontajnerov Docker. V podstate definuje spustiteľné súbory a predvolené parametre súboru „ VSTUPNÝ BOD “.
VSTUPNÝ BOD ' VSTUPNÝ BOD ” príkaz sa používa aj na nastavenie spustiteľných súborov kontajnera Docker. V podstate nastavuje predvolené aplikácie, ktoré sa vždy používajú v kontajneri. Príkaz ENTRYPOINT sa tiež používa raz v súbore Dockerfile.
USER Tento príkaz sa používa na nastavenie UID (používateľského mena) na vykonávanie príkazov v kontajneri
VOLUME ' VOLUME ” príkaz sa používa na viazanie alebo pripojenie externého zväzku (systému súborov) s kontajnerom.
ENV ' ENV ” sa používa na nastavenie premenných prostredia kontajnera.
ARG ' ARG ” sa používa na odovzdanie argumentov do kontajnera.
VYSTAVIŤ ' VYSTAVIŤ 'príkaz určuje odhaľujúce porty, na ktorých bude kontajner spustený.
ONBUILD Číta inštrukcie zo základného obrazu, ale spúšťa tieto inštrukcie prostredníctvom následného obrazu.
ŠTÍTOK ' ŠTÍTOK ” sa používa na špecifikovanie metadát snímky kontajnera.

Ako spustiť inštanciu Docker zo súboru Docker v Dockeri?

Ak chcete spustiť inštanciu alebo kontajner Docker pomocou Dockerfile, najprv vytvorte Dockerfile. Potom vytvorte základnú snímku kontajnera pomocou Dockerfile. Potom spustite snímku a spustite inštanciu Docker.





Pre ilustráciu postupujte podľa nižšie uvedených pokynov.

Krok 1: Vytvorte Dockerfile

Najprv vytvorte súbor Dockerfile. Pamätajte, že Dockerfile nemá žiadnu príponu súboru. Potom do súboru vložte nasledujúce príkazy:



Z golangu: 1.8

WORKDIR / ísť / src / aplikácie

KOPÍROVAŤ main.go .

RUN choďte stavať -O webový server .

VYSTAVIŤ 8080 : 8080

VSTUPNÝ BOD [ './webový server' ]

Krok 2: Vytvorte programový súbor

Ďalej vytvorte nový súbor s názvom „ main.go “, ktorý obsahuje jednoduchý program Golang. Na tento účel vložte do súboru nasledujúci program:

hlavný balík
importovať (
'fmt'
'log'
'net/http'
)

obslužný program func ( In http.ResponseWriter, r * http.Žiadosť ) {
fmt.Fprintf ( In , 'Ahoj! Vitajte v návode LinuxHint' )
}
func main ( ) {
http.HandleFunc ( '/' , psovod )
log.Osudný ( http.ListenAndServe ( '0.0.0.0:8080' , nula ) )
}

Krok 3: Vytvorte snímku kontajnera

Teraz vytvorte snímku Docker kontajnera pomocou „ docker build -t -f . “:

zostava dockera -t go-img -f Dockerfile .

Vo vyššie uvedenom príkaze „ -t ” možnosť nastavuje názov alebo značku obrázka, “ -f ” určuje cestu k súboru Dockerfile, z ktorého potrebuje nástroj Docker čítať kontext zostavy:

Ak chcete skontrolovať, či je obrázok úspešne vytvorený alebo nie, spustite „ obrázky docker 'príkaz:

obrázky docker go-img

Výstup ukazuje, že sme úspešne vytvorili snímku kontajnera zo súboru Dockerfile:

Krok 4: Spustite snímku a spustite kontajner

Teraz spustite inštanciu Docker v kontajneri Docker vykonaním snímky kontajnera, ktorá je vytvorená v predchádzajúcom kroku:

docker spustiť -p 8080 : 8080 --názov go-cont -d go-img

Vo vyššie uvedenom príkaze „ -p ” možnosť spustí kontajner na “ 8080 “port”, “ -názov “nastavuje názov kontajnera a -d ” možnosť spustí kontajner v oddelenom režime (služba na pozadí):

Ak chcete overiť, či sa kontajner spúšťa alebo nie, uveďte zoznam spustených kontajnerov pomocou „ docker ps 'príkaz:

doker ps

Teraz prejdite na „ http://localhost:8080 “ a overte, či aplikácia beží na odhalenom porte alebo nie:

Vyššie uvedený výstup naznačuje, že sme efektívne spustili inštanciu Docker pomocou Dockerfile.

Ako spustiť inštanciu zo súboru Docker v aplikácii Docker Compose?

Docker compose je ďalší hlavný doplnok platformy Docker, ktorý nám umožňuje spúšťať viacero inštancií v rôznych kontajneroch naraz. Používatelia môžu tiež spustiť inštanciu Docker z Dockerfile pomocou doplnku Docker compose. Pre ilustráciu postupujte podľa uvedených krokov.

Krok 1: Vytvorte Dockerfile

Najprv vytvorte súbor Dockerfile. Napríklad používame rovnaký súbor Dockerfile a programový súbor, aký sa používa vo vyššie uvedenej časti:

Z golangu: 1.8

WORKDIR / ísť / src / aplikácie

KOPÍROVAŤ main.go .

RUN choďte stavať -O webový server .

VYSTAVIŤ 8080 : 8080

VSTUPNÝ BOD [ './webový server' ]

Krok 2: Vytvorte súbor docker-compose.yml

Ďalej vytvorte „ docker-compose.yml ” a do súboru skopírujte nasledujúce páry kľúčov:

verzia: '3'

služby:

web:
postaviť: .
porty:
- 8080 : 8080

Vo vyššie uvedenom úryvku:

  • služby ” sa používa na špecifikáciu služieb skladania, ktoré sa budú vykonávať v samostatnom kontajneri. Pre ilustráciu sme nakonfigurovali iba jednu službu “ web “, aby bol kód čistý a jednoduchý.
  • stavať ” pár kľúčov sa používa na čítanie kontextu zostavy zo súboru Dockerfile. Tu si docker prečíta pokyny zo súboru Dockerfile a podľa toho zostaví kontajner.
  • prístavov ” definuje odhaľujúce porty, na ktorých bude kontajner spustený.

Krok 3: Spustite inštanciu Docker

Teraz spustite inštanciu Docker v kontajneri pomocou „ docker-compose up 'príkaz:

docker-compose up -d

Na overenie skontrolujte zoznam spustených kontajnerov na písanie pomocou „ docker-compose ps 'príkaz:

docker-compose ps

Výstup ukazuje, že „ web “ služba sa úspešne vykonáva v „ golangapp-web-1 ” kontajner:

Prejdite na odhaľujúci port služby písania a overte, či sa program spúšťa alebo nie. Nižšie uvedený výsledok ukazuje, že sme úspešne spustili inštanciu Docker z Dockerfile pomocou Docker compose:

To je všetko o spustení inštancie dockeru zo súboru Dockerfile.

Záver

Ak chcete spustiť inštanciu Docker v kontajneri z Dockerfile, najprv vytvorte Dockerfile. Pridajte príkazy do súboru na vytvorenie obrázka alebo šablóny kontajnera Docker. Potom vytvorte obrázok kontajnera alebo snímku pomocou „ docker build -t -f . “príkaz. Teraz spustite obrázok kontajnera a spustite inštanciu Docker. Používatelia môžu tiež použiť zostavu Docker na spustenie inštancie Docker z Dockerfile. Tento príspevok ilustruje, ako spustiť inštanciu Docker z Dockerfile.