LabHub

도커 기초 · 로그와 디버깅 · 퀴즈

퀴즈: 로그와 디버깅

LabHub 에서 이어서 보기

문항 5개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.

  1. 컨테이너가 재시작을 반복하는데 `docker logs` 가 완전히 비어 있습니다. 가장 먼저 확인할 것은?

    1. 이미지를 처음부터 다시 빌드한다
    2. 종료코드와 State.OOMKilled 를 확인한다
    3. 컨테이너 네트워크 설정을 확인한다
    4. 도커 로그 드라이버를 바꿔 본다
  2. 앱이 로그를 `/var/log/app.log` 파일에만 쓰도록 설정돼 있습니다. 컨테이너에서 이것이 문제인 이유는?

    1. 로그 파일 권한이 맞지 않기 때문
    2. 컨테이너 디스크가 금방 부족해져서
    3. 컨테이너 안에서는 로그 로테이션이 안 돼서
    4. 로그 수집·조회 도구가 전부 표준 출력을 전제로 하므로 파이프라인 전체가 무력해진다
  3. distroless 이미지에서 `docker exec -it app sh` 가 실패합니다. 가장 적절한 대응은?

    1. 이미지에 셸 바이너리를 추가해 다시 빌드한다
    2. 도구가 든 컨테이너를 같은 네임스페이스에 붙여 들여다본다
    3. 컨테이너를 특권 모드로 다시 띄운다
    4. 로그 드라이버를 바꾼다
  4. `docker logs` 로 본 출력에서 표준 출력과 표준 오류를 분리하려면?

    1. 도커에서는 분리할 방법이 없다
    2. --details 옵션을 쓴다
    3. docker logs 자체의 두 스트림을 셸 리다이렉션으로 나눈다
    4. docker inspect 로 나눠 읽는다
  5. `State.Error` 필드에 값이 들어 있고 로그는 비어 있습니다. 무엇을 뜻합니까?

    1. 앱이 실행 중 에러를 냈다
    2. 컨테이너 네트워크가 끊겼다
    3. 런타임이 컨테이너 프로세스를 아예 시작하지 못했다
    4. 내려받은 이미지가 손상됐다