Diese Seite enthält Updates und Errata zum Buch »Docker« (3. Auflage 2021).
S. 32, Docker Desktop für Linux
Docker Desktop ist jetzt auch für Linux erhältlich. Eine Installationsanleitung und eine Bewertung des Angebots finden Sie im Blog.
S. 69, Kasten »Volumes versus Mounts«
Volumes werden als bind
-Mounts realisiert. Der Typ des Mounts im Kommando am Ende des Kastens muss also bind
lauten, nicht volume
:
--mount type=bind,source=,destination=
S. 73 phpMyAdmin-Login
Der erste Absatz auf S. 73 enthält fehlerhaften Text. Der Login in phpMyAdmin erfolgt — den Angaben auf S. 72 folgend — mit wpuser
und geheim
. Ein root
-Login ist unmöglich, weil das root
-Passwort nicht bekannt ist.
Sollten Sie in phpMyAdmin einen root-Login wünschen, müssen Sie beim Erzeugen des MariaDB-Containers (Kommando S. 72) das gewünschte root-Passwort explizit festlegen. Dazu übergeben Sie statt
-e MYSQL_RANDOM_ROOT_PASSWORD=1
die Option:
-e MYSQL_ROOT_PASSWORD=ganzgeheim
S. 95 Pandoc-Beispiel und Mac M1
Das Dockerfile
zum Pandoc-Beispiel setzt voraus, dass Sie einen Rechner mit x86-Architektur verwenden. Wenn das nicht der Fall ist, müssen Sie das Kommando zur Installation den Binärpakets ändern:
# Pandoc für M1/ARM-Architektur
RUN curl -L https://github.com/jgm/pandoc/releases/download/2.17.0.1/pandoc-2.17.0.1-1-arm64.deb \
-o /tmp/pandoc.deb && \
dpkg -i /tmp/pandoc.deb && \
rm /tmp/pandoc.deb
Je nachdem, welche Dateien Sie unter Pandoc bearbeiten, kann ein zweites Problem auftreten: LaTeX sucht vergeblich nach lmodern.sty
. Zur Abhilfe können Sie entweder lmodern
und fonts-lmodern
zur Paketliste hinzufügen, oder die Option --no-install-recommends
entfernen. Das resultierende Image wird dadurch allerdings größer.
S. 117, Docker Compose mit Secrets
Im Listing auf S. 117 sind gleich zwei Fehler: Zum einen muss die Datei mit version: '3.1'
eingeleitet werden, zum anderen bezieht sich das Secret im wordpress
-Service auf mysql_user
, nicht mysql_root
. Korrekt sieht das Listing so aus:
# Datei test/docker-compose.yml (Listing gekürzt)
version: '3.1'
services:
db:
image: mariadb:latest
secrets:
- mysql_root
- mysql_user
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root
MYSQL_PASSWORD_FILE: /run/secrets/mysql_user
...
wordpress:
image: wordpress:latest
secrets:
- mysql_user
environment:
WORDPRESS_DB_PASSWORD_FILE: /run/secrets/mysql_user
...
secrets:
mysql_root:
file: ./mysql-root-pw.txt
mysql_user:
file: ./mysql-user-pw.txt
S. 125 bis 128 zum Pull-Limit und zum Free-Account
Gerade als das Buch in Druck ging, hat Docker sein Subscriptions-Angebot umgestaltet. Das Free-Angebot heißt jetzt »Personal«. Nach wie vor kann Docker ohne jede Registrierung verwendet werden, wobei die Anzahl der Pull-Requests auf 100 pro sechs Stunden limitiert ist. Das Programm Docker Desktop darf ohne Bezahlung allerdings nur noch in kleinen Firmen (weniger als 250 Mitarbeiter bzw. weniger als 10 Millionen Dollar Jahresumsatz) genutzt werden. Diese Einschränkung ist neu seit Anfang September 2021.
Bei den zahlungspflichtigen Angeboten ist zu »Pro« und »Team« das neue Modell »Business« hinzugekommen.
Details: https://www.docker.com/pricing sowie golem.de
S. 196, Port für Nginx-Proxy
Der Port für die Weiterleitung auf den API-Service muss 80 lauten, wenn Sie — wie wir es gemacht haben — das Standard-nginx-Image dafür verwenden. Die Zeile
proxy_pass http://dockerbuch_api_1.nginxterminator_default:3000;
muss also korrekt
proxy_pass http://dockerbuch_api_1.nginxterminator_default:80;
lauten.
S. 201 bis 203 Node.js mit Express (Generator)
Das Node.js-Modul zum Konvertieren der Sass-Stylesheets in reguläres CSS funktioniert leider mit Node.js 16 nicht mehr und wird offensichtlich auch nicht mehr gewartet (letzte Änderung August 2020, Node 16 Issue auf github).
Damit Sie das Beispiel korrekt verwenden können entfernen Sie bei dem Skript-Aufruf auf Seite 202 das SASS Modul:
docker compose run -u $UID dev express --view hbs
Der zweite Absatz auf Seite 203, der die Funktionsweise von Sass-Stylesheets beschreibt ist damit natürlich hinfällig.
S. 267, Nextcloud + MariaDB
Die erst nach der Überarbeitung dieses Buchs erschienene Version 10.6 von MariaDB ist nicht mehr kompatibel zu Nextcloud. Der Grund besteht darin, dass das von Nextcloud genutzte Feature Compressed Row Format nur mehr Read-only funktioniert. Die MariaDB-Entwickler empfehlen, stattdessen Page Compression zu nutzen. Das erfordert aber in Nextcloud größere Umbauten samt Migrations-Scripts, die es so schnell nicht geben wird. Hintergründe:
- https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/22
- https://github.com/nextcloud/server/issues/27085
Die einfachste Lösung besteht darin, im Zusammenspiel mit Nextcloud nicht die neueste MariaDB-Version zu verwenden, sondern explizit 10.5. Alternativ können Sie
command: ['--innodb_read_only_compressed=OFF']
beim db
Eintrag in docker-compose.yml
einzubauen. (Diese Option soll in zukünftigen MariaDB-Versionen ebenfalls gestrichen werden. Aber bis es MariaDB 10.7 gibt, wird es wohl auch neue Nextcloud-Versionen geben, die wieder besser mit MariaDB zusammenspielen.)
Letzte Änderung 9.6.2022. Vielen Dank an alle Leser, die mir Feedback geben!