Sobes.tech
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