Dockerfile je recept na vytvoření obrazu Docker.
Toto je pracovní postup:nejprve vytvoříte soubor Dockefile a poté z něj vytvoříte obrázek Docker pomocí docker build a nakonec spustíte kontejner z obrázku.
Dockerfile je textový soubor s pokyny, jak vytvořit obrázek.
Tyto instrukce jsou součástí konfiguračního jazyka, který obsahuje klíčová slova jako FROM , LABEL , RUN , COPY , ENTRYPOINT , CMD , EXPOSE , ENV a další.
Pojďme vytvořit náš první Dockerfile:
Řekněme, že máte složku s jednoduchou aplikací Node.js složenou z app.js , package.json soubor, který uvádí několik závislostí, které je třeba nainstalovat před spuštěním aplikace, a package-lock.json .
Uvnitř vytvořte prostý textový soubor s názvem Dockerfile , bez přípony, s tímto obsahem:
FROM node:14
WORKDIR /usr/src/app
COPY package*.json app.js ./
RUN npm install
EXPOSE 3000
CMD ["node", "app.js"] POZNÁMKA:používejte dvojité uvozovky v
CMDčára. Jednoduché uvozovky způsobí chybu.
V prvním řádku si řekneme, od kterého obrázku chceme začít. Toto bude náš základní obrázek. V tomto případě převezme oficiální obrázek Node.js založený na Alpine Linuxu pomocí Node 14. Při vytváření kontejneru z Dockerfile získá Docker tento obrázek z Docker Hub.
Dále nastavíme pracovní adresář na /usr/src/app , což znamená, že všechny naše příkazy budou spouštěny v této složce, dokud ji znovu nezměníme. To je složka, o které víme, že již existuje v obrazu Node.
Zkopírujeme package.json , package-lock.json (pomocí * zástupný znak) a app.js soubory, které se nacházejí v aktuální složce, do pracovního adresáře.
Spustíme npm install k instalaci balíčků uvedených v package.json soubor.
Poté vystavíme port 3000 navenek, protože na tom naše aplikace běží. Kontejner je 100% izolován od sítě, pokud jeden z jeho portů neodhalíte pomocí EXPOSE příkaz. Později uvidíme, jak můžeme mapovat porty v našem počítači na porty v kontejneru Docker.
Nakonec spustíme node app.js spusťte aplikaci.
Toto je Dockerfile a brzy uvidíme, jak z něj skutečně vytvořit kontejner.