좀비 프로세스의 PID 1 문제를 해결하려면 docker를 어떻게 호출해야 합니까?

좀비 프로세스의 PID 1 문제를 해결하려면 docker를 어떻게 호출해야 합니까?

phusion/baseimage가벼운 초기화 프로세스로 pid 1 문제를 해결했다고 자랑합니다 . phusion/baseimage를 올바르게 사용하는 방법은 무엇입니까? ps auxshow psrun with PID 1 명령을 사용하여 이미지 호출을 시도했습니다 .

내가 뭘 잘못했나요? 이미지를 사용하는 올바른 방법은 무엇입니까?

me@host:~/app1$ docker run --rm phusion/baseimage ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  3.0  0.0  29180  1404 ?        Rs   01:27   0:00 ps aux

답변1

docker에는 옵션이 있습니다 --init. 초기화 시스템 시작매우 작은PID 1로.

tini/usr/bin/docker-init호스트에 저장됩니다 . 불행하게도 일부 시스템(예: fedora 및 openSUSE) --initdocker run --help.

tini도커 이미지에 직접 추가하고 를 사용할 수 있습니다 ENTRYPOINT /tini --.작은 readme 파일.

실종에 대한 자세한 내용을 보려면 /usr/bin/docker-init다음을 방문하세요.https://github.com/mviereck/x11docker/issues/23#issuecomment-386817295

답변2

나는 그것을 알아 (여기에서) 올바른 사용 방법 phusion/baseimage은 다음과 같이 실행하는 것입니다.

docker run --rm -t -i phusion/baseimage /sbin/my_init ps aux`

my_initPID1로 실행하고 my_init프로세스 생성ps aux

*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
*** Running /etc/my_init.d/10_syslog-ng.init...
May  8 04:18:23 daf3cfab8573 syslog-ng[10]: syslog-ng starting up; version='3.5.6'
May  8 04:18:23 daf3cfab8573 syslog-ng[10]: WARNING: you are using the pipe driver, underlying file is not a FIFO, it should be used by file(); filename='/dev/stdout'
May  8 04:18:24 daf3cfab8573 syslog-ng[10]: EOF on control channel, closing connection;
*** Running /etc/rc.local...
*** Booting runit daemon...
*** Runit started as PID 16
*** Running ps aux...
May  8 04:18:24 daf3cfab8573 cron[20]: (CRON) INFO (pidfile fd = 3)
May  8 04:18:24 daf3cfab8573 cron[20]: (CRON) INFO (Running @reboot jobs)
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  5.0  0.0  32304 10796 ?        Ss+  04:18   0:00 /usr/bin/python3 -u /sbin/my_init ps aux
root        10  1.0  0.0  72364  7552 ?        S    04:18   0:00 /usr/sbin/syslog-ng --pidfile /var/run/syslog-ng.pid -F --no-caps
root        16  0.0  0.0   4392  1124 ?        S+   04:18   0:00 /usr/bin/runsvdir -P /etc/service
root        17  0.0  0.0  37656  3340 ?        R+   04:18   0:00 ps aux
root        18  0.0  0.0   4240   672 ?        Ss   04:18   0:00 runsv cron
root        19  0.0  0.0   4240   800 ?        Ss   04:18   0:00 runsv sshd
root        20  0.0  0.0  29272  2840 ?        S    04:18   0:00 /usr/sbin/cron -f
*** ps exited with status 0.
*** Shutting down runit daemon (PID 16)...
*** Running /etc/my_init.post_shutdown.d/10_syslog-ng.shutdown...
May  8 04:18:24 daf3cfab8573 syslog-ng[10]: syslog-ng shutting down; version='3.5.6'
May  8 04:18:24 daf3cfab8573 syslog-ng[10]: EOF on control channel, closing connection;
*** Killing all processes...

관련 정보