다음을 통해 공유


Docker 컨테이너에서 개발 프록시 사용

한눈에 보기
목표: Docker에서 개발 프록시 실행
시간: 15분
플러그인: 다양한
필수 구성 요소: Docker 설치됨

개발자 프록시를 사용하는 경우 컴퓨터 또는 Docker 컨테이너에서 직접 실행하도록 선택할 수 있습니다. Docker에서 개발 프록시를 실행하는 것은 로컬 환경에서 격리하는 좋은 방법입니다. 또한 로컬 컴퓨터와 CI/CD 환경 간에 개발자 프록시를 일관된 방식으로 사용할 수 있습니다.

개발자 프록시 Docker 이미지 사용

고객의 편의를 위해, Dev 프록시가 포함된 Docker 이미지를 제공합니다. 이를 사용하여 Docker 컨테이너에서 개발 프록시를 실행할 수 있습니다. 다음 명령을 사용하여 GitHub Container Registry에서 이미지를 끌어올 수 있습니다.

docker pull ghcr.io/dotnet/dev-proxy:latest

비고

최신 미리 보기 기능을 사용하려면 개발 프록시 컨테이너의 베타 버전을 사용합니다.

docker pull ghcr.io/dotnet/dev-proxy:beta

CI/CD 파이프라인에서 Dev Proxy를 사용하는 경우 latest 또는 beta 대신 이미지의 특정 버전을 사용하는 것을 고려하십시오. 이렇게 하면 파이프라인이 최신 버전의 개발 프록시에 도입된 주요 변경 내용의 영향을 받지 않도록 할 수 있습니다. 예를 들어 개발자 프록시 버전 0.26.0을 사용하려면 다음 명령을 사용합니다.

docker pull ghcr.io/dotnet/dev-proxy:0.26.0

개발 프록시 컨테이너 시작

개발 프록시 컨테이너를 시작하려면 다음 명령을 사용합니다.

docker run \
    # remove the container when it exits
    --rm \
    # run the container interactively
    -it \
    # map Dev Proxy ports to the host
    -p 8000:8000 -p 8897:8897 \
    # map volumes to the host. Create the `cert` folder in the current working directory before running the command
    -v ${PWD}:/config -v ${PWD}/cert:/home/devproxy/.config/dev-proxy/rootCert \
    # specify the image to use
    ghcr.io/dotnet/dev-proxy:0.26.0

명령을 실행하면 개발자 프록시가 자동으로 시작되고 포트 8000에서 트래픽을 수신 대기합니다. Docker 컨테이너에서 실행되므로 웹 요청을 가로채기 위해 호스트에서 시스템 프록시로 자동으로 등록되지 않습니다. 대신 호스트에서 시스템 프록시를 수동으로 구성하거나 애플리케이션에 대한 프록시를 구성해야 합니다.

옵션을 사용하여 -it 컨테이너를 대화형으로 실행하면 명령줄에서 Dev Proxy를 제어할 수 있습니다. 개발자 프록시와 상호 작용하는 것은 예를 들어 녹화 시작 및 중지, 화면 지우기 등에 유용합니다. 백그라운드에서 컨테이너를 시작하는 경우에도 개발 프록시 API를 사용하여 개발 프록시를 제어할 수 있습니다.

매개 변수

개발자 프록시 Docker에는 동작을 사용자 지정하는 데 사용할 수 있는 몇 가지 매개 변수가 포함되어 있습니다.

항구

이미지는 다음 포트를 노출합니다.

  • 8000 - 개발자 프록시가 들어오는 트래픽을 수신 대기하는 포트입니다.
  • 8897 - 개발자 프록시가 해당 API를 노출하는 포트입니다. 이를 사용하여 프로그래밍 방식으로 개발 프록시와 상호 작용할 수 있습니다.

중요합니다

로컬 컴퓨터에서 개발자 프록시에 액세스하고 개발 프록시 도구 키트를 사용할 수 있도록 두 포트를 호스트에 매핑해야 합니다.

용량

이미지는 다음 볼륨을 노출합니다.

  • /config - 컨테이너가 개발 프록시를 시작하는 현재 작업 디렉터리입니다. 매핑하는 폴더에 devproxyrc.json 파일이 포함된 경우, 개발자 프록시는 자동으로 자체 구성을 수행합니다.
  • /home/devproxy/.config/dev-proxy/rootCert - 개발자 프록시가 루트 인증서를 저장하는 폴더입니다. 호스트에 볼륨을 매핑하면 루트 인증서에 쉽게 액세스하여 시스템 또는 브라우저에 설치할 수 있습니다.

팁 (조언)

또는 루트 인증서를 호스트에 매핑하는 대신 개발자 프록시 API를 사용하여 PEM(개인 정보 보호 강화 메일) 형식 으로 루트 인증서의 공개 키를 다운로드 할 수 있습니다. 인증서를 다운로드하려면 엔드포인트를 호출합니다 GET http://127.0.0.1:8897/proxy/rootCertificate?format=crt .

Docker에서 개발 프록시 사용

개발자 프록시 컨테이너를 시작하면 포트 8000에서 들어오는 트래픽을 수신 대기하는 개발자 프록시가 자동으로 시작됩니다.

기본 구성

개발자 프록시는 /config 볼륨에 매핑된 폴더에서 devproxyrc.json 파일을 찾습니다. 파일을 찾으면 파일을 사용하여 자체 구성합니다. 파일을 찾지 못하면 기본 구성을 사용합니다.

사용자 지정 구성

개발자 프록시에 대한 사용자 지정 구성을 사용하려면 /config 볼륨에 매핑한 폴더에 devproxyrc.json 파일을 생성할 수 있습니다. 또는 개발 프록시를 시작할 때 매개 변수를 --config-file 사용하여 구성 파일을 지정할 수 있습니다. 예를 들어 파일 myconfig.json을 사용하려면 다음 명령을 사용합니다.

docker run \
    # remove the container when it exits
    --rm \
    # run the container interactively
    -it \
    # map Dev Proxy ports to the host
    -p 8000:8000 -p 8897:8897 \
    # map volumes to the host. Create the `cert` folder in the current working directory before running the command
    -v ${PWD}:/config -v ${PWD}/cert:/home/devproxy/.config/dev-proxy/rootCert \
    # specify the image to use
    ghcr.io/dotnet/dev-proxy:0.26.0 \
    # specify the configuration file to use
    --config-file /config/myconfig.json

지정한 구성 파일은 컨테이너에서 액세스할 수 있어야 합니다. 상대 경로를 사용하는 경우 볼륨을 /config 기준으로 해야 합니다.

기타 옵션

다른 옵션을 사용하려는 경우 머신에서 직접 개발 프록시를 실행할 때와 동일한 방식으로 지정할 수 있습니다. 예를 들어 감시할 URL을 지정하려면 다음 명령을 사용합니다.

docker run \
    # remove the container when it exits
    --rm \
    # run the container interactively
    -it \
    # map Dev Proxy ports to the host
    -p 8000:8000 -p 8897:8897 \
    # map volumes to the host. Create the `cert` folder in the current working directory before running the command
    -v ${PWD}:/config -v ${PWD}/cert:/home/devproxy/.config/dev-proxy/rootCert \
    # specify the image to use
    ghcr.io/dotnet/dev-proxy:0.26.0 \
    # specify the URLs to watch
    --urls-to-watch "https://example.com/*"

참고하십시오