Diese Seite enthält Updates und Errata zum Buch »Docker« (2. Auflage 2020).
S. 58 (WordPress als Docker-Container)
Im WordPress-Einführungsbeispiel schlage ich Ihnen vor, für /var/www/html
ein Volume zu definieren. Das funktioniert, ist aber nicht optimal. Besser ist es, ein Volume für das Verzeichnis /var/www/html/wp-content
einzurichten. Bei einem Container-Update wird dann auch die WordPress-Installation aktualisiert, während selbst hochgeladene Dateien und Plugins erhalten bleiben.
Weil sich die Verarbeitung der Environment-Variablen des WordPress-Images seit dem Erscheinen des Buchs verändert hat, macht auch das Zusammenspiel mit MariaDB Probleme. Ein funktionierendes Setup (im Folgenden mit benannten Volumes statt mit lokalen Volume-Verzeichnissen) sieht so aus:
docker network create testnet
docker run -d --name mariadb-test --network testnet \
-e MYSQL_RANDOM_ROOT_PASSWORD=1 \
-e MYSQL_DATABASE=wp \
-e MYSQL_USER=wpuser \
-e MYSQL_PASSWORD=geheim \
-v myvolume:/var/lib/mysql \
mariadb
docker run -d --name wordpress-test \
--network testnet \
-h wordpress-test \
-v wp-html:/var/www/html/wp-content \
-p 8081:80 \
-e WORDPRESS_DB_HOST=mariadb-test \
-e WORDPRESS_DB_USER=wpuser \
-e WORDPRESS_DB_NAME=wp \
-e WORDPRESS_DB_PASSWORD=geheim \
wordpress
S. 115 (WordPress und docker-compose)
Weil sich die Verarbeitung der Environment-Variablen des WordPress-Images seit dem Erscheinen des Buchs verändert hat, funktioniert die Datei docker-compose.yml
nicht mehr. Hier ist eine aktualisierte Version, wiederum mit benannten Volumes.
# Datei test/docker-compose.yml
version: '3'
services:
db:
image: mariadb:latest
volumes:
- vol-db:/var/lib/mysql
environment:
MYSQL_RANDOM_ROOT_PASSWORD: 1
MYSQL_DATABASE: wp
MYSQL_USER: wpuser
MYSQL_PASSWORD: geheim
restart: always
wordpress:
image: wordpress:latest
volumes:
- vol-www:/var/www/html/wp-content
ports:
- "8082:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wpuser
WORDPRESS_DB_NAME: wp
WORDPRESS_DB_PASSWORD: geheim
restart: always
volumes:
vol-www:
vol-db:
S. 125 (Verzeichnis für Secrets)
Im letzten Absatz auf S. 125 ist der Pfad /var/run/secrets/xxx
angegeben. Tatsächlich werden Secrets aber in /run/secrets/xxx
gespeichert. (Das docker-compose.yml
-Listing ist korrekt.)
S. 157 (certbot)
Die certbot-Links funktionieren nicht mehr (Begründung). Nicht mehr gültig ist:
Eine aktualisierte Version finden Sie nun hier:
- https://github.com/certbot/certbot/blob/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf
- https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/_internal/tls_configs/options-ssl-nginx.conf
S. 158 (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.
S. 383/384 (Docker Swarm)
Wenn Sie Docker Swarm unter RHEL 7 bzw. CentOS 7 einsetzen, müssen Sie den Port 2376 in der Firewall-Konfiguration öffnen, was standardmäßig offenbar nicht der Fall ist. Details siehe https://lists.centos.org/pipermail/centos/2020-August/351351.html.
Letzte Änderung 4.8.2021. Vielen Dank an alle Leser, die mir Feedback geben!