Diese Seite enthält Updates und Errata zum Buch »Docker« (1. Auflage 2018).
S. 24 (Installation unter Linux)
Update: Installationsanleitung für Fedora 31 und CentOS 8
S. 25 (Speicherbedarf von Docker unter macOS)
Docker reserviert beim Start eine Menge RAM für sich und gibt dieses nicht mehr frei, selbst wenn kein einziger Container läuft. In den Defaulteinstellungen sind das aktuell verrückte 3,5 GByte! Dieses Verhalten gilt anscheinend nicht als Bug. Der Issue-Report argumentiert, dass ein Großteil des Speichers ohnedies früher oder später in den Swap-Speicher ausgelagert wird. Wirklich plausibel erscheint dieses äußerst irritierende Verhalten aus unserer Sicht aber nicht.
S. 43 / S. 67 / S. 108 (Volumes auf Red-Hat-ähnlichen Distributionen)
Unter CentOS, Fedora und RHEL ist standardmäßig der Schutzmechanismus SELinux aktiv. Allerdings verbietet SELinux Volumes, die sich nicht in dem von Docker vorgesehenen Verzeichnis (/var/lib/docker/volumes
) befinden. Wenn Sie also einen eigenen Ort angeben (z.B. in Ihrem Home-Verzeichnis), tritt ein Fehler auf. Abhilfe schafft das zusätzliche Flag :z
oder :Z
, das Sie der Volume-Option hinzufügen (also z.B. -v /var/db:/var/db:z
). Details und Hintergrundinformationen finden Sie hier:
- Artikel stackoverflow
- run-Syntax im Docker-Handbuch
- Blog projectatomic.io
- Blog prefetch.net
- RHEL-Dokumentation
- man-Page docker_selinux
S. 63 (Dockerfile-Listing)
In der 5. Zeile des Listings fehlt ein Backslash. (Alle Zeilen von RUN
gehören zusammen.) Korrekt sieht das Listing so aus:
# Datei Dockerfile
FROM ubuntu:18.04
LABEL maintainer "kontakt@kofler.info"
RUN apt-get update && \
apt-get install -y joe && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
CMD ["/bin/bash"]
S. 69 (Dockerfile)
In der ersten Zeile des Listings auf S. 69 ist ein Leerzeichen zu viel. Richtig ist FROM ubuntu:18.04
ohne Leerzeichen vor der Versionsnummer.
S. 72 bis 76 (Pandoc)
Wir haben das Dockerfile
gerade mit Pandoc 2.3 neuerlich getestet. Beim Image-Build-Prozess trat dabei ein Fehler auf:
...
ExitFailure (-9)
This may be due to an out-of-memory condition.
Nach einigem Experimentieren hat sich herausgestellt, dass der Hinweis der Fehlermeldung tatsächlich zutrifft: dem Docker-Dämon stand zu wenig Speicher zur Verfügung. Auf dem Testrechner waren standardmäßig 2 GB eingestellt. Nach einer Vergrößerung auf 4 GB (erfordert einen Neustart des Docker-Dämons) läuft der Build-Prozess durch.
S. 84, docker logs
In den beiden letzten Absätzen der Seite steht zweimal mysql logs
. Richtig ist natürlich das Kommando docker logs
, ganz egal, welche Software im Container läuft.
S. 121, Alpine Linux
Am 9.5.2019 ist eine gravierende Sicherheitslücke in Alpine Linux bekannt geworden, siehe z.B. heise.de. Die Lücke kann zum Glück nur ausgenutzt werden, wenn Sie in Alpine Linux eine Benutzerverwaltung einrichten, z.B. durch die Installation von PAM-Paketen. Das ist unüblich.
Dennoch: Aktualisieren Sie Ihre Alpine-Images auf die aktuellste Version bzw. stellen Sie sicher, dass /etc/shadow
beim Benutzer root
als Passwort !
oder *
im Sinne von ungültiges Passwort enthält.
S. 142 (docker-compose.yml)
Damit das auf dieser Seite präsentierte Beispiel ohne ein eigenes Dockerfile
funktioniert, müssen Sie in docker-compose.yml
die Zeile build: .
durch image: nginx
ersetzen.
Letzte Änderung 27.3.2020. Vielen Dank an alle Leser, die mir Feedback geben!