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 서비스를 사용합니다.