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?
- Základní příkazy Dockerfile
- Jak spustit instanci ze souboru Docker v Dockeru?
- Jak spustit instanci ze souboru Docker v Docker Compose?
- Závěr
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íčekimport (
'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
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
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-imgVe 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.8WORKDIR / 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 psVý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