Hat man eine OpenStack Umgebung mit Kolla
<= 3.0.2
und Docker < 1.13
ausgerollt und anschliessend Docker auf eine Version >= 1.13
aktualisiert kommt es beim Start von Containern zu dem folgendem Fehler: Error response from daemon: maximum retry count cannot be used with restart policy 'unless-stopped'
Verursacht wird dieser Fehler durch eine Änderung in der Docker API v1.25. Der MaximumRetryCount
, von Kolla <= 3.0.2
per Default auf den Wert 10
gesetzt, ist nun nicht mehr gültig und müsste auf 0
gesetzt sein.
1 2 3 4 5 6 7 |
$ docker inspect mariadb ... "RestartPolicy": { "Name": "unless-stopped", "MaximumRetryCount": 10 }, ... |
In Kolla wurde dieses Problem mittlerweile behoben und in allen aktuellen Versionen wird MaximumRetryCount
nicht mehr gesetzt wenn die Restart Policy unless-stopped
verwendet wird. Eine gute Übersicht über die einzelnen Restart Policies findet sich im Blog von Codeship.
Probleme treten nun auf wenn man die Docker Engine auf einem Konten einer bestehenden Kolla Umgebung auf eine Version >= 1.13
aktualisiert.
Auf Stackoverflow findet sich dazu der Hinweis eine mögliche Lösung ist die direkte Bearbeitung der hostconfig.json
Datei eines Containers, abgelegt im entsprechendem Verzeichnis unter /var/lib/docker/containers
, gefolgt von einem Restart des Docker Services.
Mittlerweile wurde das docker update
Kommando eingeführt, mit dem sich einige Parameter eines bereits erstellten Containers bearbeiten lassen. Darunter auch die zu nutzende Restart Policy.
Erfreulicherweise wird beim setzen der unless-stopped
Restart Policy, für einen Container der diese Restart Policy bereits gesetzt hat, der Wert für MaximumRetryCount
auf 0
gesetzt. Anschliessend ist ein Start des Containers wieder möglich.
1 2 3 4 5 6 7 8 |
$ docker update --restart unless-stopped mariadb $ docker inspect mariadb ... "RestartPolicy": { "Name": "unless-stopped", "MaximumRetryCount": 0 }, ... |