Systemd & Docker
1 / 25
Über mich
Thorsten Höger
Sr. Software Engineer @ M-Way Solutions GmbH
@hoegertn
2 / 25
Unser Use Case für Docker
Server für Frontendentwickler
3 / 25
Unser Use Case für Docker
Server für Frontendentwickler
Testserver
4 / 25
Unser Use Case für Docker
Server für Frontendentwickler
Testserver
Datenbanken für Entwickler
5 / 25
Unser Use Case für Docker
Server für Frontendentwickler
Testserver
Datenbanken für Entwickler
TLS Proxy für Entwickler
6 / 25
Unser Use Case für Docker
Server für Frontendentwickler
Testserver
Datenbanken für Entwickler
TLS Proxy für Entwickler
7 / 25
Testserver Infrastruktur
mehrere Server für Testinstanzen
8 / 25
Testserver Infrastruktur
mehrere Server für Testinstanzen
Proxyserver mit nginx
9 / 25
Testserver Infrastruktur
mehrere Server für Testinstanzen
Proxyserver mit nginx
Datenbankcluster
10 / 25
Ziele der Dockerumgebung
Verwaltung als Systemdienst
11 / 25
Ziele der Dockerumgebung
Verwaltung als Systemdienst
zentrales Logging
12 / 25
Ziele der Dockerumgebung
Verwaltung als Systemdienst
zentrales Logging
neustarten bei Fehlern
13 / 25
Ziele der Dockerumgebung
Verwaltung als Systemdienst
zentrales Logging
neustarten bei Fehlern
dynamische Instanzen
14 / 25
Plattform
CentOS 7 als Betriebssystem
-> systemd als init-System
-> journald als Logsystem
15 / 25
systemd Grundlagen
Starten eines Dienstes
systemctlstartservice
Stoppen eines Dienstes
systemctlstopservice
Anzeigen des Dienststatus
systemctlstatusservice
Neuladen der Dienstdefinition
systemctldaemon-reload
16 / 25
systemd vs sysv-init
unit File statt Initscript
17 / 25
systemd vs sysv-init
unit File statt Initscript
run statt start
18 / 25
systemd vs sysv-init
unit File statt Initscript
run statt start
integriertes logging
19 / 25
unit File statt Initscript
20 / 25
Aufbau einer Unit File
21 / 25
Docker mit systemd
dockerrun-dunpraktisch
läuft als Daemon und nicht im Vordergrund
keine Laufzeitüberwachung durch systemd
kein Zugriff auf Stdout
22 / 25
Docker mit systemd
dockerrun-dunpraktisch
läuft als Daemon und nicht im Vordergrund
keine Laufzeitüberwachung durch systemd
kein Zugriff auf Stdout
systemd-docker als Hilfsmittel
startet den Container im Vordergrund
inklusive Laufzeitüberwachung
https://github.com/ibuildthecloud/systemd-docker
23 / 25
Unit file für docker
[Unit]
Description=Relution%i
After=network.targetdocker.service
Requires=docker.service
[Service]
EnvironmentFile=/opt/relution.%i/environment
ExecStartPre=/usr/bin/dockerpullhub.office.mwaysolutions.com/relution-server
ExecStart=/usr/bin/systemd-docker--cgroupsname=systemd--envrun--rm--namerelution.%i-v/opt/relution.%i/sql.conf:/opt/r
KillMode=mixed
KillSignal=SIGINT
Restart=always
SyslogIdentifier=relution-%i
RestartSec=10s
Type=notify
NotifyAccess=all
TimeoutStartSec=120
TimeoutStopSec=15
LimitNOFILE=1048576
LimitNPROC=1048576
[Install]
WantedBy=multi-user.target
24 / 25
Log Zugriff
Aktuelles Log
journalctl_SYSTEMD_UNIT=relution.service
Livelog
journalctl-f_SYSTEMD_UNIT=relution.service
25 / 25

systemd & Docker