In einigen Anwendungsszenarien benötigt man zusätzlich zu dem Hauptprozess in einem Docker Container noch weitere Prozesse, die man nicht in einem eigenen Docker Container ausführen möchte.

Dafür gibt es verschiedene Möglichkeiten (z.B.: s6, supervisord).
Wir schauen uns hier systemd in einem CentOS7 Container an, den wir auf einem CentOS7 System mit eingeschaltetem selinux ausführen wollen.

Zuerst laden wir uns das passende Image vom Docker Hub herunter.

docker pull docker.io/centos/systemd:latest

Damit systemd in dem Container funktioniert, benötigt der Container Zugriff auf /sys/fs/cgroup.
Dafür gibt es einen Schalter, mit dem wir den Zugriff erlauben können.

setsebool -P container_manage_cgroup=true

Anschließend können wir CentOS starten und haben in dem Container dann einen funktionierenden systemd als init-prozess.

docker run --rm -v /sys/fs/cgroup:/sys/fs/cgroup:ro docker.io/centos/systemd:latest

Dieses Image können wir dann als Grundlage nehmen um mehrere Prozesse in einen Container zu installieren.

Previous Post Next Post