Jak vytvořit aplikaci Node.js s Dockerem

Jak vytvořit aplikaci Node.js s Dockerem

Docker je platforma pro kontejnerizaci aplikací, která umožňuje vytvářet, nasazovat a spouštět aplikace v izolovaných prostředích nazývaných kontejnery. Kontejnery jsou přenosné a samoobslužné jednotky softwaru, které obsahují vše potřebné k jejich spuštění, včetně kódu, knihoven a závislostí.

V tomto článku vás provedeme procesem vytváření aplikace Node.js s Dockerem. Naučíte se, jak vytvořit Dockerfile, sestavit a spustit image Dockeru a nasadit svou aplikaci do kontejneru Dockeru.

Vyžadované komponenty

* Node.js nainstalovaný v systému
* Docker nainstalovaný v systému
* Textový editor (např. Visual Studio Code, Atom)

Úvod do Dockeru

Docker je nástroj pro kontejnerizaci, který umožňuje zabalit a izolovat aplikace do kontejnerů. Kontejnery jsou přenosné a samoobslužné jednotky softwaru, které obsahují vše potřebné k jejich spuštění, včetně kódu, knihoven a závislostí.

Kontejnery Dockeru jsou založeny na obrazech Dockeru. Obraz Dockeru je šablona, ze které jsou kontejnery vytvářeny. Obrazy Dockeru se vytvářejí pomocí Dockerfilů, které jsou textovými soubory, které definují pokyny pro sestavení obrazu Dockeru.

Vytvoření aplikace Node.js

Začněte vytvořením nového adresáře pro vaši aplikaci Node.js:

  Co pro hráče znamená „neautorizovaný“ zákaz ovladačů třetích stran?


mkdir my-node-app
cd my-node-app

V nově vytvořeném adresáři vytvořte nový soubor s názvem app.js a přidejte následující kód:

javascript
const express = require('express');

const app = express();

app.get('/', (req, res) => {
res.send('Hello, world!');
});

app.listen(3000, () => {
console.log('Server listening on port 3000');
});

Tento kód vytvoří jednoduchou aplikaci Node.js, která odpovídá na žádosti HTTP GET na adrese / zprávou „Hello, world!“. Aplikace naslouchá na portu 3000.

Vytvoření Dockerfilu

Dále vytvořte v adresáři aplikace soubor s názvem Dockerfile a přidejte následující obsah:


FROM node:16-slim

WORKDIR /usr/src/app

COPY package.json .
RUN npm install

COPY . .

CMD ["node", "app.js"]

Pojďme prozkoumat jednotlivé řádky Dockerfilu:

* FROM node:16-slim: Tento řádek určuje základní obraz Dockeru, který použijeme. V tomto případě používáme základní obraz Node.js verze 16-slim.
* WORKDIR /usr/src/app: Tento řádek nastavuje pracovní adresář pro zbývající příkazy v Dockerfilu.
* COPY package.json .: Tento řádek zkopíruje soubor package.json do pracovního adresáře kontejneru.
* RUN npm install: Tento řádek spustí příkaz npm install v kontejneru, který nainstaluje závislosti aplikace Node.js definované v souboru package.json.
* COPY . .: Tento řádek zkopíruje veškerý zbytek kódu aplikace do pracovního adresáře kontejneru.
* CMD ["node", "app.js"]: Tento řádek určuje příkaz, který se má spustit při spuštění kontejneru. V tomto případě spustíme příkaz node, který spustí naši aplikaci Node.js v souboru app.js.

Sestavení obrazu Dockeru

Chcete-li sestavit image Dockeru, spusťte následující příkaz v adresáři aplikace:


docker build -t my-node-app .

Tento příkaz sestaví image Dockeru s názvem my-node-app.

Spuštění kontejneru Dockeru

Chcete-li spustit kontejner Dockeru, spusťte následující příkaz:


docker run -p 3000:3000 my-node-app

Tento příkaz spustí kontejner Dockeru s názvem my-node-app a přiřadí port 3000 kontejneru k portu 3000 hostitele.

Nasazení aplikace do produkčního prostředí

Jakmile je vaše aplikace vyvinuta a otestována v kontejneru Dockeru, můžete ji nasadit do produkčního prostředí. K tomu můžete použít platformy jako Docker Hub, Amazon Elastic Container Service (ECS) nebo Google Kubernetes Engine (GKE).

Závěr

V tomto článku jsme vás provedli procesem vytváření aplikace Node.js s Dockerem. Naučili jste se, jak vytvořit Dockerfile, sestavit a spustit image Dockeru a nasadit svou aplikaci do kontejneru Dockeru. Docker je výkonný nástroj pro kontejnerizaci, který může pomoci zjednodušit vývoj, testování a nasazení aplikací.

Často kladené otázky

1. Co je Docker?

Docker je platforma pro kontejnerizaci aplikací, která umožňuje vytvářet, nasazovat a spouštět aplikace v izolovaných prostředích nazývaných kontejnery.

2. Co je to kontejner?

Kontejner je přenosná a samoobslužná jednotka softwaru, která obsahuje vše potřebné k jejímu spuštění, včetně kódu, knihoven a závislostí.

3. Co je to obraz Dockeru?

Obraz Dockeru je šablona, ze které jsou kontejnery vytvářeny. Obrazy Dockeru se vytvářejí pomocí Dockerfilů, které jsou textovými soubory, které definují pokyny pro sestavení obrazu Dockeru.

4. Jaký je rozdíl mezi Dockerem a virtualizací?

Virtualizace vytváří virtuální stroje, které jsou úplnými operačními systémy s vlastními jádry a hardwarovými zdroji. Docker naproti tomu vytváří kontejnery, které sdílejí jádro a hardwarové zdroje s hostitelským systémem.

5. Jaké jsou výhody používání Dockeru?

Docker nabízí řadu výhod, včetně:
* Izolace: Kontejnery izolují aplikace od sebe a od hostitelského systému.
* Přenositelnost: Kontejnery lze snadno přenášet mezi různými hostitelskými systémy a cloudovými platformami.
* Škálovatelnost: Kontejnery lze snadno škálovat podle potřeby.
* Efektivita: Kontejnery jsou efektivnější než virtuální stroje, protože sdílejí jádro a hardwarové zdroje s hostitelským systémem.

6. Jaké jsou některé běžné příkazy Dockeru?

* docker build: Používá se ke sestavení obrazu Dockeru.
* docker run: Používá se ke spuštění kontejneru Dockeru.
* docker ps: Používá se k zobrazení spuštěných kontejnerů.
* docker stop: Používá se k zastavení spuštěného kontejneru.
* docker remove: Používá se k odstranění kontejneru nebo obrazu Dockeru.

7. Jaké jsou některé zdroje, které mohu použít k učení se více o Dockeru?

* Dokumentace k Dockeru
* Docker Hub
* Úvod do Dockeru

8. Jaká jsou omezení Dockeru?

Docker má některá omezení, například:
* Může být obtížné sdílet data mezi kontejnery.
* Kontejnery mohou být zranitelné vůči únikům dat a dalším bezpečnostním problémům.
* Docker může být náročný na zdroje, zejména pokud spouštíte velké množství kontejnerů.