Dockerfile a vlastný image: Ako si vytvoriť vlastný kontajner (2. diel)
Tvorba vlastného Docker image pomocou Dockerfile – detailný návod krok za krokom.
V predchádzajúcej časti sme si ukázali, ako spustiť hotové kontajnery. V tomto diely si vytvoríme vlastný Docker image pomocou Dockerfile
a ukážeme si, čo všetko sa dá doňho zabaliť.
🧱 Čo je Dockerfile?
Dockerfile
je textový súbor, ktorý popisuje, ako má tvoj image vyzerať. Obsahuje inštrukcie ako:
- základný image, z ktorého vychádzame (napr. PHP, Node, Alpine...)
- čo sa má nainštalovať, skopírovať alebo spustiť
- na akom porte má služba počúvať
📁 Struktúra adresára
./mojprojekt/
├── Dockerfile
├── index.html
└── start.sh
V tomto príklade si vytvoríme jednoduchý image, ktorý bude obsahovať statický web.
📝 Príklad Dockerfile
# Použijeme malý image s Nginx
FROM nginx:alpine
# Skopírujeme náš HTML súbor do správneho adresára
COPY index.html /usr/share/nginx/html/index.html
# Definujeme port
EXPOSE 80
Tento Dockerfile vytvorí image, ktorý spustí Nginx s našou vlastnou úvodnou stránkou.
🔨 Build vlastného image
docker build -t moj-nginx .
👉 Docker prečíta Dockerfile
a vytvorí image s názvom moj-nginx
.
🚀 Spustenie vlastného image
docker run -d -p 8080:80 moj-nginx
Spustí náš nový kontajner a otvorí ho na porte 8080. Ak pôjdeš na localhost:8080
, uvidíš index.html
.
📜 Pokročilejší príklad: Node.js aplikácia
Chceme spustiť vlastnú Node.js appku. Štruktúra adresára:
./nodeapp/
├── Dockerfile
├── package.json
└── index.js
📄 Dockerfile pre Node:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "index.js"]
Potom už len stačí:
docker build -t moja-node-app .
docker run -d -p 3000:3000 moja-node-app
A tvoja aplikácia beží izolovane v kontajneri!
🧠 Záver
Pomocou Dockerfile vieš presne definovať, ako má tvoja aplikácia vyzerať, čo potrebuje a kde beží. V ďalšom diely si ukážeme, ako tieto kontajnery spojiť do jednej aplikácie pomocou Docker Compose.