Docker
Bei Docker handelt es sich um eine Containervirtualisierungsplattform. Weitere Informationen liefert Docker selbst oder Wikipedia:
Docker kann unter Linux, sowie unter Windows betrieben werden. Der Betrieb von Docker auf Linux Servern wird empfohlen
(von https://www.docker.com/)
Installation
Docker unter Linux
Abhängig von ihrer Linuxdistribution unterscheidet sich die Installation von Docker.
- Ubuntu: Get Docker Engine - Community for Ubuntu
- Debian: Get Docker Engine - Community for Debian
- Red Hat/CentOS: Get Docker Engine - Community for CentOS
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.
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.
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
mitipconfig
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.