Docker운영과 디버깅

inspect, exec, debug 기본

실행 중인 컨테이너 내부를 확인하고, 셸에 들어가고, 설정과 포트 매핑을 읽는 기본 디버깅 흐름을 정리합니다.

마지막 수정 2026년 3월 19일

기본 패턴

bash
docker logs app
docker exec -it app sh
docker inspect app

설명

  • 컨테이너가 기대대로 동작하지 않을 때 가장 먼저 보는 것은 보통 로그, 내부 셸, 객체 메타데이터입니다.
  • docker logs는 애플리케이션 표준 출력 기반 로그를 확인하는 가장 빠른 출발점입니다.
  • docker exec -it <name> sh는 실행 중인 컨테이너 안으로 들어가 파일, 환경 변수, 프로세스를 직접 확인할 때 유용합니다.
  • docker inspect는 포트 매핑, 마운트, 네트워크 설정, 이미지 정보 같은 저수준 메타데이터를 JSON으로 보여 줍니다.
  • 따라서 디버깅은 "로그 -> 내부 셸 -> 메타데이터 확인" 순서로 잡으면 대부분의 기초 문제를 빠르게 줄일 수 있습니다.

짧은 예제

bash
docker logs web
docker exec -it web sh
docker inspect --format='{{.Config.Image}}' web
docker inspect --format='{{json .NetworkSettings.Ports}}' web

빠른 정리

명령볼 수 있는 것
docker logs애플리케이션 출력 로그
docker exec -it컨테이너 내부 셸과 파일 상태
docker inspect포트, 마운트, 네트워크, 설정
--format필요한 값만 추출
기본 흐름로그 후 내부 확인, 그다음 설정 확인

주의할 점

디버깅을 위해 컨테이너 안을 손으로 고친 내용은 보통 재시작이나 재배포 때 사라집니다. 원인을 찾는 데만 쓰고, 실제 수정은 Dockerfile이나 Compose 설정으로 되돌려야 합니다.

참고 링크

2 sources