검색

3.6. 컨테이너에서 애플리케이션 디버깅

download PDF

문제 해결의 다양한 측면에 맞는 다양한 명령줄 툴을 사용할 수 있습니다. 다음은 일반적인 명령줄 툴과 함께 카테고리를 제공합니다.

참고

이는 명령줄 툴의 전체 목록이 아닙니다. 컨테이너 애플리케이션을 디버깅하기 위한 툴 선택은 컨테이너 이미지와 사용 사례에 따라 크게 달라집니다.

예를 들어 systemctl,journalctl,ip,netstat,ping,traceroute,perf,iostat 툴에서는 보안상의 이유로 rootless 컨테이너에서 제한되는 네트워킹, systemd 서비스 또는 하드웨어 성능 카운터와 같은 시스템 수준 리소스와 상호 작용하므로 루트 액세스 권한이 필요할 수 있습니다.

루트리스 컨테이너는 승격된 권한이 필요 없이 작동하여 사용자 네임스페이스 내에서 루트가 아닌 사용자로 실행하여 호스트 시스템에서 향상된 보안 및 격리를 제공합니다. 호스트와의 제한된 상호 작용, 공격 면적 감소 및 보안 강화를 통해 권한 상승 취약점의 위험을 완화합니다.

루트 저장 컨테이너는 일반적으로 루트 사용자로 승격된 권한으로 실행되며 시스템 리소스 및 기능에 대한 전체 액세스 권한을 부여합니다. 근본 컨테이너는 유연성 및 제어 기능을 제공하지만 권한 상승 및 호스트 시스템의 취약점으로 인해 보안 위험이 발생합니다.

rootful 및 rootless 컨테이너에 대한 자세한 내용은 root less 컨테이너 설정, root리스 컨테이너로 업그레이드, rootless 컨테이너에 대한 특수 고려 사항을 참조하십시오.

systemd 및 프로세스 관리 툴

systemctl
컨테이너 내의 systemd 서비스를 제어하여 시작, 중지, 활성화, 작업을 비활성화합니다.
journalctl
systemd 서비스에서 생성한 로그를 보고 컨테이너 문제 해결에 도움이 됩니다.

네트워킹 툴

ip
컨테이너 내에서 네트워크 인터페이스, 라우팅 및 주소를 관리합니다.
netstat
네트워크 연결, 라우팅 테이블 및 인터페이스 통계를 표시합니다.
ping
컨테이너 또는 호스트 간의 네트워크 연결을 확인합니다.
traceroute
네트워크 문제를 진단하는 데 유용한 대상에 도달하는 데 사용하는 경로를 식별합니다.

프로세스 및 성능 툴

ps
컨테이너 내에서 현재 실행 중인 프로세스를 나열합니다.
top
컨테이너 내 프로세스의 리소스 사용량에 대한 실시간 정보를 제공합니다.
htop
리소스 사용률 모니터링을 위한 대화형 프로세스 뷰어입니다.
perf
CPU 성능 프로파일링, 추적 및 모니터링은 시스템 또는 애플리케이션 내에서 성능 병목 현상을 파악하는 데 도움이 됩니다.
vmstat
컨테이너 내의 가상 메모리 통계를 보고하여 성능 분석을 지원합니다.
iostat
컨테이너 내에서 블록 장치에 대한 입력/출력 통계를 모니터링합니다.
GDB (GNU Debugger)
사용자가 실행을 추적 및 제어하고, 변수를 검사하며, 메모리를 분석하고, 런타임 중에 등록할 수 있도록 하여 프로그램 검사 및 디버깅에 도움이 되는 명령줄 디버거입니다. 자세한 내용은 Red Hat OpenShift 컨테이너 내에서 애플리케이션 디버깅 문서를 참조하십시오.
strace
프로그램에서 수행한 시스템 호출을 가로채고 기록하므로 프로그램과 운영 체제 간의 상호 작용을 표시하여 문제를 해결할 수 있습니다.

보안 및 액세스 제어 도구

sudo
승격된 권한으로 명령을 실행할 수 있습니다.
chroot
명령의 루트 디렉터리를 변경하여 다른 루트 디렉터리 내에서 테스트 또는 문제 해결에 유용합니다.

podman-Specific Tools

Podman 로그
배치-실행 시 하나 이상의 컨테이너에 존재하는 모든 로그를 검색합니다.
podman inspect
이름 또는 ID로 식별된 대로 컨테이너 및 이미지에 대한 하위 수준 정보를 표시합니다.
Podman 이벤트
Podman에서 발생하는 이벤트를 모니터링하고 출력합니다. 각 이벤트에는 타임스탬프, 유형, 상태, 이름(해당되는 경우) 및 이미지(해당되는 경우)가 포함됩니다. 기본 로깅 메커니즘은 journald 입니다.
podman run --health-cmd
상태 점검을 사용하여 컨테이너 내에서 실행되는 프로세스의 상태 또는 준비 상태를 확인합니다.
podman top
컨테이너의 실행 중인 프로세스를 표시합니다.
podman exec
실행 중인 컨테이너에서 명령을 실행하거나 연결하는 것은 컨테이너에서 발생하는 상황을 더 잘 이해하는 데 매우 유용합니다.
podman export
컨테이너가 실패하면 기본적으로 어떤 일이 발생했는지 알 수 없습니다. 컨테이너에서 파일 시스템 구조를 내보내면 마운트된 볼륨에 없는 다른 로그 파일을 확인할 수 있습니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.