나간 컨테이너의 로그를 볼 수있는 방법이 있습니까?
를 사용하여 종료 된 컨테이너의 컨테이너 ID를 가져올 수 docker ps -a
있지만 실행 중일 때 어떤 일이 발생했는지 알고 싶습니다.
답변
사용 docker logs
. 중지 된 컨테이너에 대해서도 작동하며 컨테이너의 기본 프로세스의 전체 STDOUT 및 STDERR 스트림을 캡처합니다.
$ docker run -d --name test debian echo "Hello World"
02a279c37d5533ecde76976d7f9d1ca986b5e3ec03fac31a38e3dbed5ea65def
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
49daa9d41a24 debian "echo test" 2 minutes ago Exited (0) 2 minutes ago test
$ docker logs -t test
2016-04-16T15:47:58.988748693Z Hello World
답변
docker logs --tail=50 <container id>
마지막 50 줄-컨테이너가 오랫동안 실행되었을 때 유용합니다.
답변
아래 명령을 사용하여 종료 된 컨테이너에서도 로그를 복사 할 수 있습니다.
docker
cp
container_name:
path_of_file_in_container destination_path_locally
예 :
docker cp sravya:/tmp/report /root/mylog
답변
종료 된 컨테이너의 로그 파일을 더 적게, 파일 끝으로 스크롤하여 직접 보려면 다음을 사용합니다.
docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less +G
./viewLogs.sh CONTAINERNAME로 실행
이 방법은 docker logs
파일을 스트리밍하는 대신 직접 열 수 있다는 점에서 기반 접근 방식에 비해 이점 이 있습니다.
LogPath / File은 일반적으로 루트 소유이므로 sudo가 필요합니다.