kb

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste Überarbeitung Beide Seiten der Revision
kb [2016/03/29 08:31]
flacco [Active Directory auf invis-Server]
kb [2016/08/13 11:02]
flacco [Mailversand - SMTP-Auth mit Dovecot-SASL]
Zeile 213: Zeile 213:
  
 Wie gezeigt sind Anpassungen in allen Einzelpaketen erforderlich. Mittels Conflicts und Requires werden die erforderlichen Paketabhängigkeiten gelöst. Wie gezeigt sind Anpassungen in allen Einzelpaketen erforderlich. Mittels Conflicts und Requires werden die erforderlichen Paketabhängigkeiten gelöst.
 +
 ===== DNS-Server bind und LDAP (invis Classic) ===== ===== DNS-Server bind und LDAP (invis Classic) =====
  
Zeile 784: Zeile 785:
  
 ...to be continued. ...to be continued.
 +
 +===== Autostart von Docker Containern mittels Systemd =====
 +
 +Docker Container, die einen Dienst anbieten sollen natürlich beim Start eines Systems möglichst automatisch starten. Außer der Docker-eigenen "​Restart=always"​ Möglichkeit,​ die bisweilen ein wenig nervig sein kann, bietet sich die Verwendung von **//​systemd//​** an.
 +
 +Leider ist die in der Docker-Dokumentation beschriebene Service-Unit Vorlage ein wenig zu simpel gestrickt. Sie funktioniert nicht immer. Es kommt vor, dass es mit dieser Vorlage während des Systemstarts unzählige scheiternde Versuche gibt einen Container zu starten und **//​systemd//​** dann irgendwann aufgibt.
 +
 +Daher hier eine Vorlage, die auch mit störrischen Containern funktioniert:​
 +
 +<​code>​
 +[Unit]
 +Description=BlaBlaBla Firebird-Server Container
 +Requires=docker.service
 +After=docker.service network.service
 +
 +[Service]
 +Restart=on-failure
 +RestartSec=10
 +ExecStart=/​usr/​bin/​docker run --volume=/​srv/​docker/​blablafb/​data:/​data --publish=3050:​3050 --name=leberwurst blablablasoftware/​db_server
 +ExecStop=/​usr/​bin/​docker stop -t 2 leberwurst
 +ExecStopPost=/​usr/​bin/​docker rm -f leberwurst
 +
 +[Install]
 +WantedBy=multi-user.target
 +</​code>​
 +
 +Dieser Vorlage unterscheidet sich an mehreren Punkten von der in der Docker-Doku gezeigten.
 +
 +Zunächst wird für die Restart-Option der Parameter "​on-failure"​ statt "​always"​ genutzt. Dies verhindert unnötige Neustarts. Ich vermute, dass die Rückmeldungen von Docker nicht dem entsprechen,​ was //​**systemd**//​ erwartet und daher mit "​always"​ Neustarts ausgelöst werden, die nicht notwendig sind.
 +
 +Auch im Fehlerfall sollte zwischen den Neustarts eine Pause liegen, da der Docker-Container ggf. nicht so schnell agiert, wie //​**systemd**//​ das erwartet. "​RestartSec=10"​ setzt diese Pause auf 10 Sekunden.
 +
 +Da ich im Beispiel dem Container mit "​--name="​ einen reproduzierbaren Namen gebe, scheitern zu schnelle Neustarts oft daran, dass bereits ein Container mit diesem Namen existiert (...auch wenn dieser nicht funktioniert). Mit "​ExecStopPost="​ wird nach einem Stoppen des Containers dieser auch entfernt.
 +
  
  • kb.txt
  • Zuletzt geändert: 2020/10/20 10:47
  • von flacco