컨테이너의 로그가 포함된 로그 파일은 어디에 있습니까?
다음을 사용하여 여러 컨테이너를 실행하고 있습니다.docker-compose명령을 사용하여 응용 프로그램 로그를 볼 수 있음docker-compose logs그러나 raw 로그 파일에 액세스하여 예를 들어 어딘가로 보내고 싶습니다.그것은 어디에 위치해 있나요?각 용기(용기 안?)마다 별도의 로그인 것 같은데 어디서 찾을 수 있나요?
컨테이너의 로그는 다음에서 확인할 수 있습니다.
/var/lib/docker/containers/<container id>/<container id>-json.log
(기본 로그 형식인 json을 사용하는 경우)
각 컨테이너에서 로그 위치를 확인할 수 있습니다.
docker inspect --format='{{.LogPath}}' $INSTANCE_ID
또한 로그의 전체 크기를 관리하거나 로그 자체의 매개 변수를 조정하기 위해 로그 위치를 파악하는 경우 다음과 관련이 있음을 알 수 있습니다.
로그에 예약된 공간 크기 수정
이는 로그 기록을 지우는 기능 요청(1083호)에서 가져온 것입니다.
도커 1.8과 도커 구성 1.4는 도커 구성 로그 드라이버와 log-opt max-size를 사용하여 로그 크기를 제한하는 방법이 이미 존재합니다.
mycontainer:
...
log_driver: "json-file"
log_opt:
# limit logs to 2MB (20 rotations of 100K each)
max-size: "100k"
max-file: "20"
도커가 버전 '2'의 파일을 작성할 때 구문이 약간 변경되었습니다.
version: '2'
...
mycontainer:
...
logging:
#limit logs to 200MB (4rotations of 50M each)
driver: "json-file"
options:
max-size: "50m"
max-file: "4"
(두 구문 모두에서 숫자는 따옴표로 묶은 문자열로 표시됩니다.)
발생 가능한 문제docker-compose logs끝나지 않는
- 1866호: 명령
logs컨테이너가 이미 중지된 경우 종료되지 않음
각 컨테이너의 로그가 차지하는 공간을 확인하려면 다음을 사용합니다.
docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs ls -hl
(필요할 수 있음)sudo전에ls).
docker inspect <containername> | grep log
윈도우즈의 기본 위치는 다음과 같습니다.C:\ProgramData\Docker\containers\<container-id>-json.log.
위치는 다음과 같습니다.
Windows 10 + WSL 2 (Ubuntu 20.04), Docker version 20.10.2, build 2291f61
예를 들어
DOCKER_ARTIFACTS == \\wsl$\docker-desktop-data\version-pack-data\community\docker
컨테이너 로그의 위치는 다음에서 확인할 수 있습니다.
DOCKER_ARTIFACTS\containers\[Your_container_ID]\[Your_container_ID]-json.log
여기 예가 있습니다.
로그 파일을 더 적게 보려면 다음을 사용합니다.
docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less
로 실행되는../viewLogs.sh CONTAINERNAME
2018년 8월 22일 기준 로그는 다음에서 확인할 수 있습니다.
/data/docker/containers/<container id>/<container id>-json.log
컨테이너당 로그 크기를 보려면 다음 bash 명령을 사용할 수 있습니다.
for cont_id in $(docker ps -aq); do cont_name=$(docker ps | grep $cont_id | awk '{ print $NF }') && cont_size=$(docker inspect --format='{{.LogPath}}' $cont_id | xargs sudo ls -hl | awk '{ print $5 }') && echo "$cont_name ($cont_id): $cont_size"; done
출력 예:
container_name (6eed984b29da): 13M
elegant_albattani (acd8f73aa31e): 2.3G
언급URL : https://stackoverflow.com/questions/33017329/where-is-a-log-file-with-logs-from-a-container
'programing' 카테고리의 다른 글
| MariaDB 또는 MySQL에 벡터 데이터가 있습니까? (0) | 2023.08.25 |
|---|---|
| 중복 항목 확인 vs PDO errorInfo 결과 사용 (0) | 2023.08.25 |
| Excel 2016에서 CSV 파일 열기 (0) | 2023.08.25 |
| 머리글 및 바닥글 파일을 여러 html 페이지에 포함시킵니다. (0) | 2023.08.25 |
| C# on load 이벤트에서 div 태그 내에 HTML을 동적으로 추가할 수 있습니까? (0) | 2023.08.25 |
