Jak spustit instanci Dockeru z Dockerfile?

Jak Spustit Instanci Dockeru Z Dockerfile



Docker je oblíbená otevřená platforma, která se univerzálně používá k vytváření, testování, nasazování a odesílání aplikací v kontejnerovém prostředí. Docker používá úroveň virtualizace OS a podporuje různé komponenty, jako jsou kontejnery Docker, obrázky, sítě a svazek Docker.

Kontejnery Docker jsou jednou ze základních součástí platformy Docker, která balí program, konfigurační nastavení a závislosti pomocí obrazu Docker. Obrázek Dockeru je jednoduchá šablona nebo snímek kontejneru, který kontejner vede k tomu, jak kontejnerizovat aplikaci. Tyto obrázky jsou většinou dostupné v oficiálním registru hub Docker. Uživatelé mohou také navrhnout tyto obrázky podle požadavků projektu pomocí Dockerfile.

Tento blog vysvětlí:







Co je to Dockerfile?

Dockerfile je normální textový soubor, který obsahuje příkazy a instrukce, které definují základní strukturu kontejneru Docker. Tyto instrukce lze provádět v terminálu bez jakéhokoli souboru, ale spouštění každého příkazu jeden po druhém je hektický a složitý úkol. Dockerfile usnadňuje vývojářům specifikovat všechny požadavky a pokyny do jednoho souboru. Tento soubor bude poté použit k vytvoření šablony kontejneru, což je obrázek Docker. Poté se spustí obraz dockeru pro spuštění instance v kontejneru Docker.



Základní příkazy Dockerfile

Některé základní příkazy Dockerfile, které se používají k definování základního snímku kontejneru, jsou uvedeny níže ve formě tabulky:



Příkazy Popis
Z ' Z ” se používá k definování základního obrázku pro šablonu kontejneru. Tyto obrázky jsou staženy z oficiálního registru Docker Docker Hub.
ÚDRŽBÁŘ ' ÚDRŽBÁŘ ” definuje informace o autorovi (jméno a e-mail), který vytváří image Docker.
WORKDIR Určuje pracovní adresář kontejnerizované aplikace.
KOPÍROVAT Používá se ke zkopírování zdrojových a konfiguračních souborů z hostitelského systému do zadané cesty kontejneru Docker.
PŘIDAT ' PŘIDAT 'příkaz je podobný příkazu' KOPÍROVAT “, ale také podporuje vzdálenou adresu URL pro přidání souboru z adresy URL do cesty kontejneru, například z úložiště GitHub do cesty kontejneru.
BĚH ' BĚH ” se používá ke spouštění příkazů v kontejneru. V Dockerfile se většinou používá ke správě a instalaci dalších závislostí uvnitř kontejneru.
CMD CMD ” definuje výchozí body kontejnerů Docker. V podstatě definuje spustitelné soubory a výchozí parametry souboru „ VSTUPNÍ BOD “.
VSTUPNÍ BOD ' VSTUPNÍ BOD ” se také používá k nastavení spustitelných souborů kontejneru Docker. V podstatě nastavuje výchozí aplikace, které se pokaždé používají v kontejneru. Příkaz ENTRYPOINT se také jednou použije v Dockerfile.
UŽIVATEL Tento příkaz se používá k nastavení UID (uživatelského jména) pro provádění příkazů v kontejneru
HLASITOST ' HLASITOST ” se používá k navázání nebo připojení externího svazku (systému souborů) s kontejnerem.
ENV ' ENV ” se používá k nastavení proměnných prostředí kontejneru.
ARG ' ARG ” se používá k předání argumentů uvnitř kontejneru.
ODHALIT ' ODHALIT ” určuje odhalující porty, na kterých bude kontejner spuštěn.
VYSTAVIT Čte instrukce ze základního obrazu, ale spouští tyto instrukce prostřednictvím následného obrazu.
OZNAČENÍ ' OZNAČENÍ ” se používá k určení metadat snímku kontejneru.

Jak spustit instanci Dockeru ze souboru Docker v Dockeru?

Chcete-li spustit instanci nebo kontejner Docker pomocí Dockerfile, nejprve vytvořte Dockerfile. Poté vytvořte základní snímek kontejneru pomocí Dockerfile. Poté spusťte snímek a spusťte instanci Dockeru.





Pro ilustraci postupujte podle níže uvedených pokynů.

Krok 1: Vytvořte Dockerfile

Nejprve vytvořte Dockerfile. Pamatujte, že Dockerfile nemá žádnou příponu souboru. Poté do souboru vložte následující příkazy:



Z golangu: 1.8

WORKDIR / jít / src / aplikace

COPY main.go .

RUN jděte stavět webový server .

ODHALIT 8080 : 8080

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

Krok 2: Vytvořte programový soubor

Dále vytvořte nový soubor s názvem „ main.go “, který obsahuje jednoduchý program Golang. Za tímto účelem vložte do souboru následující program:

hlavní balíček
import (
'fmt'
'log'
'net/http'
)

obslužný program func ( v http.ResponseWriter, r * http.Žádost ) {
fmt.Fprintf ( v , 'Dobrý den! Vítejte v kurzu LinuxHint' )
}
func main ( ) {
http.HandleFunc ( '/' , psovod )
log.Osudný ( http.ListenAndServe ( '0.0.0.0:8080' , nula ) )
}

Krok 3: Vygenerujte snímek kontejneru

Nyní vytvořte snímek Docker kontejneru pomocí „ docker build -t -f . “:

sestavení dockeru -t go-img -F Dockerfile .

Ve výše uvedeném příkazu „ -t “ možnost nastaví název nebo značku obrázku, “ -F ” určuje cestu k souboru Dockerfile, ze kterého potřebuje modul Docker číst kontext sestavení:

Chcete-li zkontrolovat, zda byl obrázek úspěšně vytvořen nebo ne, spusťte „ obrázky dockeru 'příkaz:

obrázky dockeru go-img

Výstup ukazuje, že jsme úspěšně vytvořili snímek kontejneru z Dockerfile:

Krok 4: Spusťte snímek a zapněte kontejner

Nyní spusťte instanci Dockeru v kontejneru Docker provedením snímku kontejneru, který je vytvořen ve výše uvedeném kroku:

docker spustit -p 8080 : 8080 --název go-cont -d go-img

Ve výše uvedeném příkazu „ -p ” spouští kontejner na “ 8080 ' přístav, ' -název “ nastavuje název kontejneru a „ -d ” spouští kontejner v odděleném režimu (služba na pozadí):

Chcete-li ověřit, zda je kontejner spuštěn nebo ne, uveďte seznam běžících kontejnerů pomocí „ docker ps 'příkaz:

přístavní dělník ps

Nyní přejděte na „ http://localhost:8080 “ a ověřte, zda aplikace běží na odhaleném portu nebo ne:

Výše uvedený výstup naznačuje, že jsme efektivně spustili instanci Docker pomocí Dockerfile.

Jak spustit instanci ze souboru Docker v Docker Compose?

Docker compose je další hlavní plugin platformy Docker, který nám umožňuje spouštět více instancí v různých kontejnerech najednou. Uživatelé mohou také spustit instanci Docker z Dockerfile pomocí pluginu Docker compose. Pro ilustraci postupujte podle uvedených kroků.

Krok 1: Vytvořte Dockerfile

Nejprve vytvořte Dockerfile. Například používáme stejný soubor Dockerfile a programový soubor, jaké jsou použity ve výše uvedené části:

Z golangu: 1.8

WORKDIR / jít / src / aplikace

COPY main.go .

RUN jděte stavět webový server .

ODHALIT 8080 : 8080

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

Krok 2: Vytvořte soubor docker-compose.yml

Dále vytvořte „ docker-compose.yml ” a zkopírujte do souboru následující páry klíčů:

verze: '3'

služby:

web:
stavět: .
porty:
- 8080 : 8080

Ve výše uvedeném úryvku:

  • služby ” se používá k určení služeb skládání, které budou spouštěny v samostatném kontejneru. Pro ilustraci jsme nakonfigurovali pouze jednu službu “ web “, aby byl kód čistý a jednoduchý.
  • stavět ” pár klíčů se používá ke čtení kontextu sestavení z Dockerfile. Zde si docker přečte pokyny z Dockerfile a podle toho sestaví kontejner.
  • porty ” klíč definuje odhalující porty, na kterých bude kontejner spuštěn.

Krok 3: Spusťte instanci Docker

Nyní spusťte instanci Docker v kontejneru pomocí „ docker-compose up 'příkaz:

docker-compose up -d

Pro ověření zkontrolujte seznam spuštěných kontejnerů pro psaní pomocí „ docker-compose ps 'příkaz:

docker-compose ps

Výstup ukazuje, že „ web “ služba se úspěšně spouští v „ golangapp-web-1 “kontejner:

Přejděte na odhalující port služby psaní a ověřte, zda se program spouští nebo ne. Níže uvedený výsledek ukazuje, že jsme úspěšně spustili instanci Docker z Dockerfile pomocí Docker compose:

To je vše o spuštění instance dockeru ze souboru Dockerfile.

Závěr

Chcete-li spustit instanci Dockeru v kontejneru z Dockerfile, nejprve vytvořte Dockerfile. Přidejte příkazy do souboru a vytvořte obrázek nebo šablonu kontejneru Docker. Poté vytvořte obrázek kontejneru nebo snímek pomocí „ docker build -t -f . “příkaz. Nyní spusťte obrázek kontejneru a spusťte instanci Dockeru. Uživatelé mohou také použít Docker compose ke spuštění instance Docker z Dockerfile. Tento příspěvek ilustroval, jak spustit instanci Dockeru z Dockerfile.