![컨테이너화를 위해 systemd init에서 프로세스를 실행 중이신가요?](https://linux55.com/image/177361/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%ED%99%94%EB%A5%BC%20%EC%9C%84%ED%95%B4%20systemd%20init%EC%97%90%EC%84%9C%20%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%EB%A5%BC%20%EC%8B%A4%ED%96%89%20%EC%A4%91%EC%9D%B4%EC%8B%A0%EA%B0%80%EC%9A%94%3F.png)
Docker는 컨테이너가 시작될 때 명령을 실행하는 기능을 제공합니다. 이는 다음을 사용하여 지정됩니다.CMD
Dockerfile에서.
하지만 내 컨테이너를 systemd로 시작하려면 다음을 사용해야 합니다.
CMD ["/usr/sbin/init"]
그런 다음 ps1에서 init를 수행하십시오. 그렇다면 CMD
무슨 소용이 있습니까? systemd를 시작할 수 있는 방법이 있나요?다른 프로세스를 시작하도록 하세요.명령줄에서 또는 podman run
무엇인가를 지정하시겠습니까?
컨테이너화에는 다양한 멍청한 초기화 프로세스가 있습니다. 예를 들면 다음과 같습니다.catatonit
,dumb-init
, 그리고tini
그러나 그들은 모두 "바보"입니다. default.target을 클릭한 후 프로세스를 지정할 수 있는 실제 시스템 초기화를 원합니다.
답변1
CMD
구성 컨테이너를 사용하여 systemd를 시작하고 있으므로 제 생각에는 "작동"합니다.
컨테이너에서 다른 명령을 시작하려면 다음을 수행할 수 있습니다.
- 명령줄에서
docker exec
; - 컨테이너 정의에서 systemd 서비스를 사용합니다.