Warum Discourse – habe keine anderen Container ausprobiert, weder Ubuntu noch Docker sind meine bevorzugte Waffe – andere (alle regulären?) Benutzer einbezieht?
Wenn ich Discourse starte, werden eine Reihe von Prozessen im Namen eines Benutzers gestartet, von dem ich nicht dachte, dass er etwas mit Discourse/Container zu tun hat, sicherlich ist es der Benutzer, von dem ich für die Discourse-Bereitstellung sudo ausführe. Hier:
unicorn_launche─┬─ruby─┬─ruby───23*[{ruby}]
│ ├─8*[ruby───8*[{ruby}]]
│ └─7*[{ruby}]
└─sleep
-> $ ps -Fp 8794
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
appmgr 8794 8792 0 3829 4320 2 12:17 ? 00:00:00 /bin/bash config/unicorn_launcher -E production -c config/unicorn.conf.rb
-> $ ps -Fp 8792
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
root 8792 8788 0 562 684 4 12:17 ? 00:00:00 runsv unicorn
Ist das, was ich sehe/bekomme, alles gültig und legitim? Wenn ja, wo wären dann einige Manpages, die mehr Licht darauf werfen? Als Sysadmin von Ubuntu/Docker/Discourse bin ich noch neu.
Wenn Sie Prozesse außerhalb des Containers anzeigen, werden die Discourse-bezogenen Prozesse unter dem Benutzer angezeigt, der auf dem Host die UID 1000 hat.
Der Grund dafür ist, dass die Prozesse innerhalb des Containers unter der UID 1000 des Containers laufen.
Es ist nur eine seltsame Eigenart, wie Docker-Container funktionieren.
Unicorn ist das Ding, das Seiten ausliefert. Ruby ist die Sprache, in der Discourse geschrieben ist. Sie können sehen, dass der Unicorn-Launcher all diese Prozesse gestartet hat.
Wenn Sie sich ansehen, was auf Ihrem Windows- oder Mac-Computer läuft, wissen Sie auch nicht, was all diese Dinge sind.
Ich bin mir wirklich nicht sicher, wie Sie das lernen würden. Vielleicht die Rails-Dokumentation? Für einen neuen Systemadministrator gibt es viele andere Dinge, die wahrscheinlich nützlicher sind.
Vielleicht habe ich es ein wenig vage formuliert – was mich verwirrte, war der Benutzer, zu dem (einige) Prozesse gehören. Tools, die ich für Container verwende und alle meine Container rootless mache – es sei denn, Netzwerkanforderungen machen es unmöglich – die machen eine schöne und klare Zuordnung zwischen/von echten UIDs und SubUIDs, man kann klar sehen, was was ist. Danke @ClawdiaWolf. Ich wünschte, diese wären in der offiziellen Dokumentation (nicht nur im Code).