systemd & Docker

25
Systemd & Docker 1 / 25

Transcript of systemd & Docker

Page 1: systemd & Docker

Systemd & Docker

1 / 25

Page 2: systemd & Docker

Über mich

Thorsten Höger

Sr. Software Engineer @ M-Way Solutions GmbH

@hoegertn

2 / 25

Page 3: systemd & Docker

Unser Use Case für DockerServer für Frontendentwickler

3 / 25

Page 4: systemd & Docker

Unser Use Case für DockerServer für Frontendentwickler

Testserver

4 / 25

Page 5: systemd & Docker

Unser Use Case für DockerServer für Frontendentwickler

Testserver

Datenbanken für Entwickler

5 / 25

Page 6: systemd & Docker

Unser Use Case für DockerServer für Frontendentwickler

Testserver

Datenbanken für Entwickler

TLS Proxy für Entwickler

6 / 25

Page 7: systemd & Docker

Unser Use Case für DockerServer für Frontendentwickler

Testserver

Datenbanken für Entwickler

TLS Proxy für Entwickler

7 / 25

Page 8: systemd & Docker

Testserver Infrastrukturmehrere Server für Testinstanzen

8 / 25

Page 9: systemd & Docker

Testserver Infrastrukturmehrere Server für Testinstanzen

Proxyserver mit nginx

9 / 25

Page 10: systemd & Docker

Testserver Infrastrukturmehrere Server für Testinstanzen

Proxyserver mit nginx

Datenbankcluster

10 / 25

Page 11: systemd & Docker

Ziele der DockerumgebungVerwaltung als Systemdienst

11 / 25

Page 12: systemd & Docker

Ziele der DockerumgebungVerwaltung als Systemdienst

zentrales Logging

12 / 25

Page 13: systemd & Docker

Ziele der DockerumgebungVerwaltung als Systemdienst

zentrales Logging

neustarten bei Fehlern

13 / 25

Page 14: systemd & Docker

Ziele der DockerumgebungVerwaltung als Systemdienst

zentrales Logging

neustarten bei Fehlern

dynamische Instanzen

14 / 25

Page 15: systemd & Docker

PlattformCentOS 7 als Betriebssystem

-> systemd als init-System

-> journald als Logsystem

15 / 25

Page 16: systemd & Docker

systemd GrundlagenStarten eines Dienstes

systemctl start service

Stoppen eines Dienstes

systemctl stop service

Anzeigen des Dienststatus

systemctl status service

Neuladen der Dienstdefinition

systemctl daemon-reload

16 / 25

Page 17: systemd & Docker

systemd vs sysv-initunit File statt Initscript

17 / 25

Page 18: systemd & Docker

systemd vs sysv-initunit File statt Initscript

run statt start

18 / 25

Page 19: systemd & Docker

systemd vs sysv-initunit File statt Initscript

run statt start

integriertes logging

19 / 25

Page 20: systemd & Docker

unit File statt Initscript

20 / 25

Page 21: systemd & Docker

Aufbau einer Unit File

21 / 25

Page 22: systemd & Docker

Docker mit systemddocker run -d unpraktisch

läuft als Daemon und nicht im Vordergrund

keine Laufzeitüberwachung durch systemd

kein Zugriff auf Stdout

22 / 25

Page 23: systemd & Docker

Docker mit systemddocker run -d unpraktisch

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

Page 24: systemd & Docker

Unit file für docker[Unit]Description=Relution %iAfter=network.target docker.serviceRequires=docker.service

[Service]EnvironmentFile=/opt/relution.%i/environmentExecStartPre=/usr/bin/docker pull hub.office.mwaysolutions.com/relution-serverExecStart=/usr/bin/systemd-docker --cgroups name=systemd --env run --rm --name relution.%i -v /opt/relution.%i/sql.conf:/opt/relution/conf/sql.conf -p ${PORT}:8080 hub.office.mwaysolutions.com/relution-server:latestKillMode=mixedKillSignal=SIGINTRestart=alwaysSyslogIdentifier=relution-%iRestartSec=10sType=notifyNotifyAccess=allTimeoutStartSec=120TimeoutStopSec=15LimitNOFILE=1048576LimitNPROC=1048576

[Install]WantedBy=multi-user.target

24 / 25

Page 25: systemd & Docker

Log ZugriffAktuelles Log

journalctl _SYSTEMD_UNIT=relution.service

Livelog

journalctl -f _SYSTEMD_UNIT=relution.service

25 / 25