Plesk – Docker startet nach Upgrade nicht mehr

Screenshot Docker Fehlermeldung in der Shell beim Update

Nach einem Plesk-Update liefen von mir eingesetzte Docker-Container auf meinem Server nicht mehr, und waren die damit aufgebauten Webseiten offline. Grund war das Fehlen des Docker Service, welcher aufgrund eines Fehlers nicht gestartet werden konnte.

me@myserver:~$ sudo service docker status
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Fri 2023-02-03 11:13:06 CET; 13min ago
Docs: https://docs.docker.com
Main PID: 6774 (code=exited, status=1/FAILURE)

Feb 03 11:13:06 myserver systemd[1]: docker.service: Service hold-off time over, scheduling restart.
Feb 03 11:13:06 myserver systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Feb 03 11:13:06 myserver systemd[1]: Stopped Docker Application Container Engine.
Feb 03 11:13:06 myserver systemd[1]: docker.service: Start request repeated too quickly.
Feb 03 11:13:06 myserver systemd[1]: docker.service: Failed with result 'exit-code'.
Feb 03 11:13:06 myserver systemd[1]: Failed to start Docker Application Container Engine.

Auch der manuelle Startversuch auf der Kommandozeile endete in einer Fehlermeldung:

me@myserver:~$ sudo service docker start
Job for docker.service failed because the control process exited with error code.
See "systemctl status docker.service" and "journalctl -xe" for details.

Also folgte ich der Empfehlung und warf einen Blick in die System-Log Dateien:

me@myserver:~$ sudo journalctl -f -u docker
– Logs begin at Tue 2023-01-10 02:02:07 CET. –
Feb 03 11:27:26 myserver dockerd[10131]: failed to start daemon: error initializing graphdriver: prior storage driver aufs is deprecated and will be removed in a future release; update the the daemon configuration and explicitly choose this storage driver to continue using it; visit https://docs.docker.com/go/storage-driver/ for more information
Feb 03 11:27:26 myserver systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE
Feb 03 11:27:26 myserver systemd[1]: docker.service: Failed with result 'exit-code'.
Feb 03 11:27:26 myserver systemd[1]: Failed to start Docker Application Container Engine.
Feb 03 11:27:28 myserver systemd[1]: docker.service: Service hold-off time over, scheduling restart.
Feb 03 11:27:28 myserver systemd[1]: docker.service: Scheduled restart job, restart counter is at 3.
Feb 03 11:27:28 myserver systemd[1]: Stopped Docker Application Container Engine.
Feb 03 11:27:28 myserver systemd[1]: docker.service: Start request repeated too quickly.
Feb 03 11:27:28 myserver systemd[1]: docker.service: Failed with result 'exit-code'.
Feb 03 11:27:28 myserver systemd[1]: Failed to start Docker Application Container Engine.

Der Lösungsansatz stand dabei schon in der ersten Zeile. Der eingesetzte, und als veraltet markierte, Storage Driver AUFS verhindert in der Standardkonfiguration einen Start des Docker Service. Die Empfehlung von Docker, ändern des Treibers, beispielsweise auf OverlayFS.
Dafür müssten dann aber alle bereits vorhandenen Dockerimages neu aufgesetzt werden. Will man nun aber schnell alles wieder zum Laufen bringen, und diese Änderungen zu einem definierten Zeitpunkt machen, so gibt es als Alternative die Möglichkeit, den veralteten AUFS-Treiber explizit zur Verwendung anzugeben.

Dazu erstellt man im Verzeichnis /etc/docker/, wenn nicht bereits vorhanden, eine Datei daemon.json mit folgendem Inhalt:

{
"storage-driver": "aufs"
}

Nun sollte sich der Docker Service mit einem sudo service docker start auf der Ubuntu-Shell wieder ohne Probleme starten lassen.