컨테이너화를 위해 systemd init에서 프로세스를 실행 중이신가요?

컨테이너화를 위해 systemd init에서 프로세스를 실행 중이신가요?

Docker는 컨테이너가 시작될 때 명령을 실행하는 기능을 제공합니다. 이는 다음을 사용하여 지정됩니다.CMDDockerfile에서.

하지만 내 컨테이너를 systemd로 시작하려면 다음을 사용해야 합니다.

CMD ["/usr/sbin/init"]

그런 다음 ps1에서 init를 수행하십시오. 그렇다면 CMD무슨 소용이 있습니까? systemd를 시작할 수 있는 방법이 있나요?다른 프로세스를 시작하도록 하세요.명령줄에서 또는 podman run무엇인가를 지정하시겠습니까?

컨테이너화에는 다양한 멍청한 초기화 프로세스가 있습니다. 예를 들면 다음과 같습니다.catatonit,dumb-init, 그리고tini그러나 그들은 모두 "바보"입니다. default.target을 클릭한 후 프로세스를 지정할 수 있는 실제 시스템 초기화를 원합니다.

답변1

CMD구성 컨테이너를 사용하여 systemd를 시작하고 있으므로 제 생각에는 "작동"합니다.

컨테이너에서 다른 명령을 시작하려면 다음을 수행할 수 있습니다.

  • 명령줄에서 docker exec;
  • 컨테이너 정의에서 systemd 서비스를 사용합니다.

관련 정보