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?
- Základné príkazy Dockerfile
- Ako spustiť inštanciu zo súboru Docker v Dockeri?
- Ako spustiť inštanciu zo súboru Docker v aplikácii Docker Compose?
- Záver
Č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íkimportovať (
'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
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
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-imgVo 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.8WORKDIR / í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 psVý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