도커 합성 실행을 사용하여 로그 출력을 보는 방법은 무엇입니까?
사용할 때docker-compose up내 모든 컨테이너에 대한 로그를 볼 수 있습니다.docker-compose.yml파일.
하지만, 사용할 때docker-compose run app다음에 대한 콘솔 출력만 표시됨app하지만 그 어떤 서비스도app에 따라 다릅니다.다른 서비스의 로그 출력은 어떻게 볼 수 있습니까?
이 글을 쓸 당시에docker-compose run명령은 다른 서비스의 로그를 볼 수 있는 스위치를 제공하지 않으므로 사용해야 합니다.docker-compose logs원하는 로그를 확인하는 명령을 입력합니다.
2022년 6월 10일 업데이트
@Sandburg 도커가 언급했듯이 컴포지트는 이제 도커에 통합되었습니다.여기에 설명된 것처럼 대부분의 도커 합성 명령은 하이픈 없이 동일한 방식으로 호출될 수 있습니다.따라서 도커 대신 도커를 구성합니다.
이제 도커 CLI의 일부로 구성 명령을 지원하는 새 구성 V2를 사용할 수 있습니다.
컴포지트 V2는 컴포지트 기능을 도커 플랫폼에 통합하여 이전 도커 컴포지트 기능과 플래그를 대부분 계속 지원합니다.도커 합성 대신 도커 합성을 사용하여 하이픈(-)을 공백으로 대체하여 V2 합성을 실행할 수 있습니다.
2019년 7월 1일 업데이트
docker-compose logs <name-of-service>
무슨 일이 있어도
docker-compose logs
설명서의 다음 옵션을 사용합니다.
사용량: 로그 [옵션] [SERVICE...]
옵션:
--노컬러 단색 출력을 생성합니다.
-f, --Follow log 출력을 따릅니다.
-t, --timestamp 타임스탬프를 표시합니다.
--tail="all" 각 컨테이너의 로그 끝에서 표시할 줄 수.
도커 로그 참조
도커 합성을 분리 모드로 시작하고 나중에 모든 컨테이너의 로그에 연결할 수 있습니다.로그 보기를 마친 경우 서비스를 종료하지 않고도 로그 출력에서 분리할 수 있습니다.
- 사용하다
docker-compose up -d모든 서비스를 분리 모드로 시작합니다(-d(분리 모드에서는 로그가 표시되지 않습니다.) - 사용하다
docker-compose logs -f -t실행 중인 모든 서비스의 로그에 자신을 첨부하는 반면,-f즉, 로그 출력을 따르고-t옵션은 타임스탬프를 제공합니다(도커 참조 참조). - 사용하다
Ctrl + z또는Ctrl + c실행 중인 컨테이너를 종료하지 않고 로그 출력에서 분리하기
단일 컨테이너의 로그에 관심이 있는 경우docker키워드 대신:
- 사용하다
docker logs -t -f <name-of-service>
출력 저장
출력을 파일에 저장하려면 logs 명령에 다음을 추가합니다.
docker-compose logs -f -t >> myDockerCompose.log
단말기의 모든 서비스의 출력 로그를 보려면 다음과 같이 하십시오.
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
언급URL : https://stackoverflow.com/questions/37195222/how-to-view-log-output-using-docker-compose-run
'programing' 카테고리의 다른 글
| JDBC Oracle - 쿼리에 대한 설명 계획 가져오기 (0) | 2023.08.15 |
|---|---|
| 입력 값이 프로그래밍 방식으로 변경될 때 트리거 Change 이벤트? (0) | 2023.08.15 |
| Angular 2에서 라우팅을 추적하는 방법은 무엇입니까? (0) | 2023.08.15 |
| 어쨌든 VLA의 의미는 무엇입니까? (0) | 2023.08.15 |
| 도커에서 여러 터미널을 여는 방법은 무엇입니까? (0) | 2023.08.15 |