Infos zur Installation und Handhabung von Docker

Docker

Bei Docker handelt es sich um eine Containervirtualisierungsplattform. Weitere Informationen liefert Docker selbst oder Wikipedia:

Wir empfehlen die Verwendung von Docker für den Betrieb der neuen Microservice-Landschaft.

Docker kann unter Linux, sowie unter Windows betrieben werden. Der Betrieb von Docker auf Linux Servern wird empfohlen

stackoverflow Survey

(von https://www.docker.com/)

Installation

Docker unter Linux

Abhängig von ihrer Linuxdistribution unterscheidet sich die Installation von Docker.

Weitere Anleitungen sind auf der selben Seite zu finden.

Im Anschluss an die Docker-Installation sollte noch docker-compose in einer aktuellen Version installiert werden. Es sollte dieser Anleitung (siehe unter Linux) gefolgt werden und die folgenden Befehle ausgeführt werden.

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Es wird ein docker-compose-Release aus dem zugehörigen Github-Repository bezogen. Die Version (hier 1.25.3) sollte auf die aktuelle Release-Version angepasst werden.

Die Installation über die Paketverwaltung von Linux liefert leider oft eine veraltete Version von docker-compose.

Docker unter Windows

Docker heißt unter Windows Docker Desktop und kann als Anwendung installiert werden. Die Installationsdatei kann auf docker.com bezogen werden. Als Unterstützung kann ebenso diese Anleitung verwendet werden.

Anwendung von Docker (Linux)

Nach der Installation von Docker sollten sie die Funktionalität mit einem Hello World testen.

sudo docker run hello-world

Damit wird ein Hello World Image vom zentralen Docker Hub geladen und gestartet. Dieser Container wird automatisch direkt wieder beendet.

Um auf als regulärer Benutzer auf Docker zugreifen zu können, können Sie einen Benutzer der Gruppe zuweisen

sudo gpasswd -a <USERNAME> docker

Wichtige Befehle

Mit den folgenden Befehlen können Dockerimages gestartet und verwaltet werden. Die Befehle können unter Windows (Powershell) sowie unter Linux (Konsole) ausgeführt werden.

docker-compose

Befehle mit docker-compose müssen in dem Verzeichnis ausgeführt werden, in dem die docker-compose.yml abgelegt wurde.

Befehl Beschreibung
docker-compose Gibt eine Übersicht über die Befehle von docker-compose mit kurzer Beschreibung.
docker-compose up Mit diesem Befehl kann das Dockerimage gestartet werden. Wurde es noch nicht aus dem NLI-Nexus geladen, wird es zunächst geladen. Der Prozess wird im Vordergrund gestartet. Sollte die Konsole geschlossen werden, läuft der Prozess dennoch weiter.
docker-compose up -d Mit dieser Variante wird der Prozess direkt im Hintergrund (detached) gestartet und die Konsole kann weiter verwendet werden.
docker-compose start Startet einen vorhandenen Container/Service.
docker-compose stop Der Container/Service wird gestoppt.
docker-compose down Der Container wird gestoppt und entfernt.
docker-compose pull Das Image wird erneut (in der Version, welche in der docker-compose.yml konfiguriert wurde) vom Nexus geladen. Bei der Version latest könnte dies eine neuere Version des Images sein.

Weitere Details können in der offiziellen Dokumentation nachgelesen werden.

docker

Docker selbst bietet weitere Befehle. Hier ein paar nützliche Beispiele für den Start.

Befehl Beschreibung
docker images In dieser Ansicht sehen sie die lokal vorhandenen und bereits geladenen Images.
docker ps In dieser Ansicht sehen sie den aktuellen Status der vorhandenen Container, inkl. Name & ID.
docker exec -it <CONTAINER> bash Öffnet eine Konsole innerhalb des Containers.
docker logs <CONTAINER> Zeigt die Konsolenausgabe des Containers.
docker rmi <CONTAINER> Entfernt das Image des Containers.

Mit dem Tag <CONTAINER> wird ein Container benannt auf welchen sich der Befehl bezieht. Dieser kann entweder durch seinen Namen oder durch seine ID angegeben werden. Auch ein ID Präfix genügt (zum Beispiel genügt bei einer CONTAINER ID = f14a7f9f37f7 folgender Befehl docker logs f14).

localhost

Sollte auf dem eigenen PC, also lokal, mit Docker gearbeitet werden, gibt es eine Einschränkung, welche den Host localhost betrifft. Für einen Container ist localhost immer der Container selbst. Dementsprechend kann kein andere Container mit localhost angesprochen werden.

Ein Docker-Container kann keine Adresse außerhalb seines eigenen Containers per localhost ansprechen.

Es gibt verschiedene Möglichkeiten um mit dieser SItuation umzugehen:

  • DNS-Alias des eigenen PC verwenden (meist der PC-Name)
  • IP des eigenen PC verwenden (in der Kommandozeile cmd mit ipconfig auslesen)

Da die IP veränderlich ist, ist ein Alias meist sinnvoller.

Im Kontext von Keycloak im Docker-Container, aber auch anderen Anwendungen ist dies relevant, siehe dazu zum Beispiel diese Frage auf stackoverflow.

Weiteres

Details zum Bezug und der Verwaltung des derzeitigen Standes der neuen Oberfläche können aktuell auf der Seite des Microservice B2B Benutzeroberfläche nachgelesen werden.

Es ist ebenso geplant, einen auf technischer Ebene vorkonfigurierten Container mit einer Keycloak-Instanz auszuliefern. Keycloak selbst kann bereits als Docker-Image bezogen werden.

Sollten sie bereits eine Docker-Installation im Einsatz haben, unterstützen wir gerne bei gemeinsamen Tests.
View Me   Edit Me