사용할 때 docker-compose up
내 docker-compose.yml
파일의 모든 컨테이너에 대한 로그를 볼 수 있습니다 .
그러나 사용할 때 docker-compose run app
콘솔 출력 만 표시 app
되지만 app
종속 된 서비스는 표시되지 않습니다 . 다른 서비스에 대한 로그 출력을 어떻게 볼 수 있습니까?
사용할 때 docker-compose up
내 docker-compose.yml
파일의 모든 컨테이너에 대한 로그를 볼 수 있습니다 .
그러나 사용할 때 docker-compose run app
콘솔 출력 만 표시 app
되지만 app
종속 된 서비스는 표시되지 않습니다 . 다른 서비스에 대한 로그 출력을 어떻게 볼 수 있습니까?
docker-compose run
실행할 때마다 새 컨테이너 를 만듭니다.
docker-compose run
이 새 컨테이너를 생성하는 경우 단지는 괜찮 그래서 내 테스트를 실행 circleci에. 주요 문제는 종속 서비스의 로그 출력이 표시되지 않는 것입니다.
답변:
docker-compose logs <name-of-service>
로부터 문서 :
사용법 : 로그 [옵션] [서비스 ...]
옵션 :
--no-color 단색 출력을 생성합니다.
-f, --follow 로그 출력을 따릅니다.
-t, --timestamps 타임 스탬프를 표시합니다.
--tail = "all"각 컨테이너의 로그 끝부터 표시 할 줄 수입니다.
Docker compose를 분리 모드로 시작하고 나중에 모든 컨테이너 의 로그에 연결할 수 있습니다 . 로그 감시 를 마치면 서비스 를 종료 하지 않고 로그 출력에서 분리 할 수 있습니다.
docker-compose up -d
를 시작하는 데 사용 합니다 ( 분리 모드에서는-d
로그가 표시되지 않음).docker-compose logs -f -t
을 연결하는 데 사용 하지만 로그 출력을 따르고 옵션이 타임 스탬프를 제공함을 의미합니다 ( Docker 참조 참조 ).-f
-t
Ctrl + z
또는 Ctrl + c
을 사용하십시오.단일 컨테이너의 로그에 관심이 있다면 docker
대신 키워드를 사용할 수 있습니다 .
docker logs -t -f <name-of-service>
출력을 파일에 저장하려면 logs 명령에 다음을 추가합니다.
docker-compose logs -f -t >> myDockerCompose.log
docker-compose run
다음에 나열된 서비스에서 고유 한 이름을 가진 해당 서비스에 대한 것입니다.docker.compose.yml
터미널의 모든 서비스 에서 출력 로그 를 보려면 .
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/
docker-compose up -d
docker ps
docker logs <containerid>
불행히도 우리 docker-compose logs
는 docker-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
docker-compose logs -f service_name