0_Allgemein - OTH-AW/isac-oth-aw GitHub Wiki

Website

https://www.docker.com

Matrix from Hell

  • Jupyter Notebook API-Endpoints

Verschiedene PCs, OS-Versionen => Konfiguration sehr schwierig

Docker Editions:

  • Community (CE)
    • Windows, Mac, Azure, AWS, CentOS, Debian, Fedora, Ubuntu
  • Enterprise (EE)
    • Server Versionen
    • Zusätzliche Features:
      • Cluster Management
      • Docker Support
      • Schwachstellen Scans
      • Diverse Zertifizierungen
      • LDAP/AD User Authentifizierung

Split containers:

  • Web Server (Frontend (React, Vue, ...) / Backend)
  • Database
  • Cache/Messaging (Redis)

Containers vs Virtual Machines:

  • Container: Application + Libs + Deps
  • VM: Application + Libs + Deps + OS
Auch möglich:
  • Container in einem Docker in VMs

Dockerhub:

Container vs Image:

  • Image ist ein "Template", wird verwendet, um ein oder mehrere Container zu erstellen
  • Container sind Instanzen von Images
  • Container haben ihre eigenen Prozesse etc. und sind voneinander getrennt
  • Images sind "raw Instanzen"

Layered Architecture

Jeder Befehl im Dockerfile führt zu einer neuen Schicht. Das Basis OS ist zb. 150 MB groß, apt get 300mb, der eigentliche Code vll. nur 10kb. Dadurch kann es relativ klein bleiben. Wie groß jede einzelne Schicht ist kann man nachvollziehen mit:

docker history myname/my-app

Wenn es beim Build zu Fehlern kommt oder man nur bestimmte Teile neu builden möchte, muss man dadurch nicht alles neu builden sondern kann die einzelnen Schichten einzeln austauschen. Nur die Layer über dem neuem Layer müssen dann neu gebuildet werden.

Build beobachten mit -t flag:

docker build Dockerfile -t myname/my-app

Layers

⚠️ **GitHub.com Fallback** ⚠️