1. 개요

이 사용법(예시)에서 IntelliJ에서 Docker 컨테이너 디버깅 방법을 보자 . 테스트할 준비가 된 Docker 이미지가 있다고 가정합니다.

도커 이미지 빌드 여러 가지 방법이 있습니다 .

IntelliJ 공식 웹사이트 에서 다운로드 할 수 있습니다 .

이 기사에서는 이 단일 클래스 기반 Java 애플리케이션에 대해 설명합니다.

인용하다 . 손쉬운 도커화, 빌드 및 테스트 당신은 할 수 있습니다 .

테스트를 시작하기 전에 Docker 엔진이 시작되어 시스템에서 실행 중인지 확인해야 합니다.

2. 도커파일 구성 사용

Docker 파일 구성을 사용하는 경우 도커파일 이미지 이름, 이미지 태그, 컨테이너 이름 및 구성 이름에 대해 적절한 이름을 선택하고 제공하기만 하면 됩니다.

.
포트 매핑이 있는 경우 해당 매핑도 추가할 수 있습니다.

dockerfile로 구성

이 구성이 저장되면 디버그 옵션에서 선택하고 디버그를 누를 수 있습니다.

먼저 이미지를 빌드하고 Docker 엔진에 이미지를 등록한 다음 Docker화된 애플리케이션을 실행합니다.

3. 도커 이미지 구성 사용

도커 이미지 구성을 사용하는 경우 미리 빌드된 애플리케이션의 이미지 이름, 이미지 태그 및 컨테이너 이름을 제공해야 합니다.

표준 Docker 명령을 사용하여 Docker Engine에 이미지를 빌드하고 컨테이너를 등록할 수 있습니다.

포트 매핑이 있는 경우 해당 매핑도 추가할 수 있습니다.

Docker 이미지를 사용하여 구성

이 구성이 저장되면 디버그 옵션에서 선택하고 디버그를 누를 수 있습니다.

미리 빌드된 Docker 이미지와 컨테이너를 선택하고 실행하기만 하면 됩니다.

4. 원격 JVM 디버그 구성 활성화

원격 JVM 구성은 사전 실행된 모든 Java 프로세스에 연결됩니다.

따라서 먼저 Docker 컨테이너를 하나씩 실행해야 합니다.

Java 8용 Docker 이미지를 실행하는 명령은 다음과 같습니다.

docker run -d -p 8080:8080  -p 5005:5005 -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n" docker-java-jar:latest

Java 11을 사용하는 경우 다음 명령을 대신 사용하십시오.

docker run -d -p 8080:8080  -p 5005:5005 -e JAVA_TOOL_OPTIONS="-agentlib:jdwp=transport=dt_socket,address=*:5005,server=y,suspend=n" docker-java-jar:latest

여기 도커-자바-항아리 이미지 이름입니다 최신 해당 태그입니다.

일반 HTTP 포트 8080 외에 -피 확장을 통한 원격 디버깅을 위한 포트 5005 추가
붓다 매핑. 연결 해제 모드에서 Docker를 실행하는 방법 -디 확장 프로그램 사용 자바_도구_옵션 Java 프로세스에 환경 변수로 중재하다 -이자형 사용 .

자바_도구_옵션 ~에 -agentlib :jdwp=transport=dt_shmem,address=,server=y,suspend=n 값을 전달하여 자바 소송 절차 JDB 디버그 세션 시작 활성화 주소=*:5005 값을 전달하여 5005를 나타냅니다.

이것은 원격 디버깅 포트입니다.

따라서 위의 명령은 도커 컨테이너를 시작하고 이제 연결에 대한 원격 디버깅 구성을 구성할 수 있습니다.

원격 JVM 디버그로 구성

구성에서 포트 5005를 사용하여 원격 JVM에 연결하는 것을 볼 수 있습니다.

이제 디버그 옵션에서 이 구성을 선택하고 디버그를 클릭하면 이미 실행 중인 도커 컨테이너에 연결되고 디버그 세션이 시작됩니다.

5. 결론

이 문서에서는 IntelliJ에서 Docker화된 애플리케이션을 디버깅하는 데 사용할 수 있는 다양한 구성 옵션에 대해 배웠습니다.

res – REST with Spring(eBook)(어디서나)