Docker 컨테이너에서 다중 프로세스 애플리케이션 인스턴스를 실행하고 있으며 각 프로세스는 간단한 데몬으로 실행됩니다. 컨테이너에서 발생하는 런타임 오류를 디버깅하는 것은 현재 불가능합니다. 왜냐하면 docker attach
자주 중단되고 (그리고 인터리브 된 인쇄 문을 생성) 컨테이너에서 제대로 작동 tmux
하지도 않기 때문 screen
입니다. 또한 각 개별 프로세스의 stdout을 다음과 같이 로그 파일로 리디렉션합니다.
python myfile.py 1>> mylogfile 2>&1 &
로그 파일에만 경고가 표시된다는 점에서 작동하지 않습니다. 이상적인 솔루션은 일을 시작 tmux
하는 것입니다. 컨테이너에서 프로세스를 어떻게 디버깅합니까?
당신이 설명한 모든 이유 때문에.
Docker 초기에는 "다중 프로세스를 실행하지 마십시오!" 그렇게 큰 규칙은 아니 었습니다. Supervisord는 하나의 컨테이너에서 여러 서비스를 처리하기 위해 권장되는 initd 유사 도구였습니다. 둘 다 모니터링을 시도 할 수 있으며 로깅을 올바르게 처리 할 수 있습니다.
docker exec
디버그에 사용docker exec [-it] <container> <command>
실행중인 컨테이너에서 추가 명령을 실행할 수 있습니다. 그것을 사용하여 껍데기를 얻고 탐험하십시오.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다