docker-compose run을 사용하여 로그 출력을 보는 방법은 무엇입니까?


96

사용할 때 docker-compose updocker-compose.yml파일의 모든 컨테이너에 대한 로그를 볼 수 있습니다 .

그러나 사용할 때 docker-compose run app콘솔 출력 만 표시 app되지만 app종속 된 서비스는 표시되지 않습니다 . 다른 서비스에 대한 로그 출력을 어떻게 볼 수 있습니까?


4
당신은 사용할 수 있습니다docker-compose logs -f service_name
Xiongbing Jin 2016 년

또한 docker-compose run실행할 때마다 새 컨테이너 를 만듭니다.
jazgot

임 실행 docker-compose run이 새 컨테이너를 생성하는 경우 단지는 괜찮 그래서 내 테스트를 실행 circleci에. 주요 문제는 종속 서비스의 로그 출력이 표시되지 않는 것입니다.
sthomps

답변:


135

2019 년 7 월 1 일 업데이트

docker-compose logs <name-of-service>

로부터 문서 :

사용법 : 로그 [옵션] [서비스 ...]

옵션 :

--no-color 단색 출력을 생성합니다.

-f, --follow 로그 출력을 따릅니다.

-t, --timestamps 타임 스탬프를 표시합니다.

--tail = "all"각 컨테이너의 로그 끝부터 표시 할 줄 수입니다.

Docker 로그보기

Docker compose를 분리 모드로 시작하고 나중에 모든 컨테이너 의 로그에 연결할 수 있습니다 . 로그 감시 마치면 서비스 종료 하지 않고 로그 출력에서 ​​분리 할 수 있습니다.

  1. 분리 모드 ( ) 에서 모든 서비스docker-compose up -d시작하는 데 사용 합니다 ( 분리 모드에서는-d 로그가 표시되지 않음).
  2. 실행중인 모든 서비스 의 로그 자신 docker-compose logs -f -t연결하는 데 사용 하지만 로그 출력을 따르고 옵션이 타임 스탬프를 제공함을 의미합니다 ( Docker 참조 참조 ).-f-t
  3. 실행중인 컨테이너를 종료 하지 않고 로그 출력에서 ​​자신 을 분리 하려면 Ctrl + z또는 Ctrl + c을 사용하십시오.

단일 컨테이너의 로그에 관심이 있다면 docker대신 키워드를 사용할 수 있습니다 .

  1. 사용하다 docker logs -t -f <name-of-service>

출력 저장

출력을 파일에 저장하려면 logs 명령에 다음을 추가합니다.

  1. docker-compose logs -f -t >> myDockerCompose.log

7
왜 이것이 받아 들여지는 대답인지 모르겠습니다. 질문은 docker-compose 실행에 관한 것이었고 많은 경우 -rm을 사용하여 실행하므로 로그가 없습니다. 실행중인 쉘 스크립트의 출력을보고 싶습니다.
James O'Brien

2
이것은 유용한 정보이지만 질문에 대한 답은 아닙니다. @ JamesO'Brien이 말했듯이, 질문은 docker-compose run다음에 나열된 서비스에서 고유 한 이름을 가진 해당 서비스에 대한 것입니다.docker.compose.yml
TetraDev 19

20

터미널의 모든 서비스 에서 출력 로그 를 보려면 .

docker-compose logs -t -f --tail <no of lines> 

예 : 모든 서비스에서 마지막 5 줄의 출력을 기록하고 싶다고 가정 해 보겠습니다.

docker-compose logs -t -f --tail 5

특정 서비스의 출력기록 하려면 다음과 같이 할 수 있습니다.

docker-compose logs -t -f --tail <no of lines> <name-of-service1> <name-of-service2> ... <name-of-service N>

용법:

예 : API 및 포털 서비스가 있다고 가정하면 다음과 같이 할 수 있습니다.

docker-compose logs -t -f --tail 5 portal api

여기서 5는 두 로그의 마지막 5 줄을 나타냅니다.

참조 : https://docs.docker.com/v17.09/engine/admin/logging/view_container_logs/


5
  1. 명령을 사용하여 분리 모드에서 컨테이너를 시작하십시오. docker-compose up -d
  2. 컨테이너 사용을 보려면 다음을 사용하십시오. docker ps
  3. 컨테이너에 대한 로그를 보려면 : docker logs <containerid>

1

불행히도 우리 docker-compose logsdocker-compose run. 이 작업을 안정적으로 수행하려면 docker-compose run종료 상태 를 억제 한 다음 로그를 리디렉션하고 올바른 상태로 종료해야합니다.

#!/bin/bash
set -euo pipefail
docker-compose run app | tee app.log || failed=yes
docker-compose logs --no-color > docker-compose.log
[[ -z "${failed:-}" ]] || exit 1
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.