Junior
Aké máte skúsenosti s Dockerom?
sobes.tech AI
Odpoveď od AI
Viac ako 5 rokov aktívneho používania Dockeru v rôznych projektoch.
Skúsenosti zahŕňajú:
- Vývoj Dockerfile: Vytváranie optimalizovaných a viacstupňových Dockerfile pre zostavovanie obrazov aplikácií (web, mikroservisy, databázy atď.).
- Správa obrazov: Práca s Docker Hub, súkromnými repozitármi (GitLab Registry, Nexus), označovanie, verzovanie, čistenie nepoužívaných obrazov.
- Práca s kontajnermi: Spúšťanie, zastavovanie, reštartovanie, sledovanie stavu, prehliadanie logov, vykonávanie príkazov vo vnútri kontajnera (
docker exec). - Docker Compose: Použitie na definovanie a spustenie viackontajnerových aplikácií, orchestráciu služieb, správu sietí a volume.
- Siete Docker: Porozumenie a konfigurácia rôznych sieťových ovládačov (bridge, host, overlay), vytváranie vlastných sietí na izoláciu služieb.
- Volume Docker: Použitie pomenovaných volume a bind mounts na ukladanie dát, výmenu súborov medzi hostiteľom a kontajnerom.
- Bezpečnosť Docker: Porozumenie základom izolácie kontajnerov, používanie rootless Docker (kde je to možné), skenovanie obrazov na zraniteľnosti.
- Integrácia s CI/CD: Zahrnutie zostavovania a publikovania Docker obrazov do CI/CD pipeline-ov (Jenkins, GitLab CI, GitHub Actions).
- Orchestration (základné znalosti): Všeobecné porozumenie princípov Kubernetes (nasadzovanie kontajnerov, pody, replikácia, služby), skúsenosti s behom jednoduchých aplikácií v minikube/Kind na testovanie.
Príklady použitia Docker Compose:
# docker-compose.yaml
version: '3.8'
services:
app:
build: . # Výstavba obrazu z aktuálneho adresára
ports:
- "80:80" # Presmerovanie portu 80 hostiteľa na port 80 kontajnera
environment:
DATABASE_URL: postgres://user:password@db:5432/mydatabase # Premenné prostredia
depends_on:
- db # Závislosť od služby db
db:
image: postgres:14 # Použitie štandardného obrazu postgres
volumes:
- db_data:/var/lib/postgresql/data # Trvalý volume pre dáta
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydatabase
volumes:
db_data: # Definícia pomenovaného volume