2014-11-11 1 views
1

도커 데몬을 service docker start 또는 docker -d으로 시작하면 대개 쉘 터미널을 얻게됩니다. 그러나 도커 데몬 로그가 출력 될 필요가있을 때, 로그가 내 화면에 직접 인쇄되고 쉘 터미널을 잃어 버렸습니다. 나는 ENTER를 누르고 쉘 터미널을 다시 얻는다. 나는 이것을 원하지 않는다. 로그 파일에 docker 데몬 로그를 인쇄하면 나에게 더 좋을 것입니다. STDOUT이 아닌 logfiles에 도커 로그를 인쇄하는 방법은 무엇입니까?내 docker 데몬 로그를 STDOUT이 아닌 logfile로 인쇄하는 방법은 무엇입니까?

+0

어떤 플랫폼입니까 (예 : Ubuntu, Centos)? – Bryan

+0

CentOS 6.5,하지만 중요한 이유 – seanlook

+0

'서비스 시작'구현이 플랫폼마다 다릅니다. – Bryan

답변

2

유닉스 '재'의 개념을 가지고, 그래서 당신은 대신이 같은 명령을 사용하여 파일로 이동 표준 출력을 요청할 수 있습니다 :

docker -d > my_logfile 

(당신은 또한 표준 오류를 리디렉션 할 아마 것)

고정 표시기 서비스 startup script는 않습니다 정확히 지금이의 더 복잡한 버전은 무엇 :

그래서
start-stop-daemon [...] >> "$DOCKER_LOGFILE" 2>&1 

나는 당신이 당신의 테 출력을보고있는 이유를 잘 모르겠어요 그 경로를 사용한다면 rminal.

+0

'docker -d >> my_logfile 2> & 1'가 작동해야하지만 긴 명령을 입력하면 docker config에 로그 파일 경로를 구성하는 것이 좋습니다. – seanlook

+0

그리고'/ var/log/docker'는 자동으로 작성된 로그 파일입니다. 물론'docker -d>/dev/null 2> & 1'을 사용할 수 있습니다. – seanlook

-1

다른 옵션은 컨테이너를 시작할 때 volume을 마운트하는 것입니다. 그리고 호스트에서 로그를 읽으십시오. 예를 들어

: 위의 명령은 컨테이너를 실행하고 용기에 /mnt/logs에 호스트에서 /mnt/logs를 첨부합니다

docker run -d -v /mnt/logs:/mnt/logs <image>

. 그런 다음 로그를 특정 디렉토리의 일부 파일에 기록하도록 앱을 변경해야합니다. 호스트에서이 파일을 읽을 수도 있습니다.

+0

이것은 docker 데몬이 아니라 컨테이너의 출력을 나타냅니다. – Bryan

+0

@ 브라이언 =) 당신은 절대적으로 옳습니다. – Vor

+0

괜찮습니다. @Bryan에게 감사의 답변을 전합니다. – seanlook

관련 문제