Was ist Docker?

Aus xinux.net
Zur Navigation springen Zur Suche springen

Grundlegendes

Docker ist eine Containervirtualisierung. Durch Docker können mehrere Prozesse isoliert und damit unabhängig voneinander ausgeführt werden. Dies ermöglicht eine einfaches Aktualisierung des Containers ohne andere Container zu gefährden.

Docker-container-zu-linux-01.png

In der idealen Welt läuft in einem Docker Container nur ein Prozess. Wenn ein weitere Prozess benötigt wird, sollte dieser in ein anderen Container ausgelagert werden. Dies wird aber nicht immer eingehalten.

Vorteile

  • Skalibarkeit
  • Isoliert
  • Fertige Systeme
  • Gute Updatefähigkeit

Port handling

  • Docker

Docker-ports.png

Vorgang bei der in Betriebnahme

  • Suchen eines passenden Docker Image
  • Dokumentation lesen
  • Docker Image runter laden und mit entsprechenden Optionen als Container laufen lassen

Was ist zu beachten?

  • Wenn der Container gelöscht oder geupdated wird, gehen die Daten verloren.
  • Wichtiger dynamische Daten sollte man ausserhalb des Containers "legen".
    • Daten werden auf das Hostssystem gelegt, bei Docker Swarm auf ein NFS Share
  • Ports (Schnittstellen) müssen von aussen ereichbar sein.
    • Möglichkeit 1: Portforwarding
    • Möglichkeit 2: Traefik

Begriffe

  • Host

Rechner auf dem die Docker Container laufen.

  • Image

Ein auf einen Verwendungszweck zu geschnittene "Softwarepaket" welches man in der Regel von Docker Hub runter lädt.

  • Container

Wenn man ein Image "startet" wirde es zu einem Container. Man kann ein Image auch 2 man "starten" dann werden 2 Container aus dem selben Image. Vergleichbar mit Variable und Instanz der Progammiersprachen.

  • Volumen

Daten die man ausserhalb des Container legt und die bei einem Container Update erhalten bleiben sollen.

  • Ports

Schnittstellen zu den Prozessen. Hier gibt es den Port im Container und den auf dem Host. Diese müssen miteinander irgendwie "verbunden" werden.