Errata Docker (2. Auflage)

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:

https://raw.githubusercontent.com/certbot/certbot/master/certbot-nginx/certbot_nginx/tls_configs/options-ssl-nginx.conf

Eine aktualisierte Version finden Sie nun hier:

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!