Dado podman se instala en un sistema Linux y una unidad systemd llamada baz.service:
# /etc/systemd/system/baz.service
[Service]
ExecStart=/usr/bin/podman run --rm --tty --name baz alpine sh -c 'while true; do date; sleep 1; done'
ExecStop=/usr/bin/podman stop baz
Y comenzó el servicio baz.ser:
# systemctl daemon-reload
# systemctl start baz.service
Luego, cuando puedo comprobar el estado de la unidad no veo el sho sleepproceso en el cgroup /system.slice/baz.service
# systemctl status baz
● baz.service
Loaded: loaded (/etc/systemd/system/baz.service; static; vendor preset: enabl
Active: active (running) since Sat 2019-08-10 05:50:18 UTC; 14s ago
Main PID: 16910 (podman)
Tasks: 9
Memory: 7.3M
CPU: 68ms
CGroup: /system.slice/baz.service
└─16910 /usr/bin/podman run --rm --tty --name baz alpine sh -c while
# ...
Yo estaba esperando a ver el she sleephijos en mi estado baz.service porque he oído a la gente de decir RedHat podman utiliza un modelo tradicional tenedor-ejecutivo.
Si podman hizo fork y exec, ¿entonces mi shy sleepproceso no serían hijos de podman y estarían en el mismo cgroup que el proceso original de podman?
Esperaba poder usar systemd y podman para poder administrar mis contenedores sin que los niños se vayan a un padre diferente y escapen de mi unidad baz.service ssystemd.
Mirando la salida de pspuedo ver eso shy en sleeprealidad son hijos de un proceso diferente llamado conmon. No estoy seguro de dónde vino Conmon, o cómo se inició, pero systemd no lo capturó.
# ps -Heo user,pid,ppid,comm
# ...
root 17254 1 podman
root 17331 1 conmon
root 17345 17331 sh
root 17380 17345 sleep
De la salida está claro que mi unidad baz.service no está administrando la cadena de sueño conmon -> sh ->.
- ¿En qué se diferencia Podman del modelo de servidor del cliente de Docker?
- ¿En qué se diferencia el conmon de Podman de los contenedores de Docker?
Tal vez ambos son tiempos de ejecución de contenedores y el dockerddemonio es de lo que la gente quiere deshacerse.
Entonces quizás Docker es como:
- dockerd daemon
- docker cli
- contenedor contenedor tiempo de ejecución
Y podman es como:
- podman cli
- tiempo de ejecución del contenedor conmon
Entonces, tal vez podman use un modelo tradicional de ejecución de horquilla, pero no es el cli de podman el que se bifurca y el ejecutivo, es el proceso de conmon.
Me siento confundido.