내가하려고하는 것과 똑같은 일을하는 많은 자습서를 보았지만 어떤 이유로 Docker 컨테이너가 종료됩니다. 기본적으로 Docker 컨테이너 안에 웹 서버와 몇 가지 데몬을 설정하고 있습니다. run-all.sh
Dockerfile에서 CMD를 통해 실행 되는 bash 스크립트를 통해 마지막 부분을 수행합니다 . run-all.sh
다음과 같이 보입니다 :
service supervisor start
service nginx start
그리고 다음과 같이 Dockerfile 내에서 시작합니다.
CMD ["sh", "/root/credentialize_and_run.sh"]
수동으로 작업을 실행할 때 서비스가 모두 올바르게 시작되는 것을 볼 수 있습니다 (예 : -i -t / bin / bash를 사용하여 이미지에 가져 오기). 이미지를 실행할 때 모든 것이 올바르게 실행되는 것처럼 보이지만 한 번 종료됩니다. 프로세스 시작을 마칩니다. 프로세스가 무기한으로 실행되기를 원하며 이해하는 한 컨테이너가 계속 실행되어야합니다. 그럼에도 불구하고을 실행 docker ps -a
하면 다음을 볼 수 있습니다.
➜ docker_test docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c7706edc4189 some_name/some_repo:blah "sh /root/run-all.sh 8 minutes ago Exited (0) 8 minutes ago grave_jones
무엇을 제공합니까? 왜 종료 되나요? bash 스크립트 끝에 while 루프를 배치하여 유지할 수 있다는 것을 알고 있지만 종료하지 못하게하는 올바른 방법은 무엇입니까?