한눈에 보기
목표: Docker에서 개발 프록시 실행
시간: 15분
플러그인: 다양한
필수 구성 요소: Docker 설치됨
개발자 프록시를 사용하는 경우 컴퓨터 또는 Docker 컨테이너에서 직접 실행하도록 선택할 수 있습니다. Docker에서 개발 프록시를 실행하는 것은 로컬 환경에서 격리하는 좋은 방법입니다. 또한 로컬 컴퓨터와 CI/CD 환경 간에 개발자 프록시를 일관된 방식으로 사용할 수 있습니다.
팁 (조언)
개발 컨테이너 또는 GitHub Codespaces에서 개발하는 경우 별도의 개발 프록시 컨테이너가 필요하지 않습니다. 대신 Dev Proxy Dev Container Feature를 사용하여 개발 컨테이너에 Dev Proxy를 설치합니다. 자세한 내용은 개발 컨테이너 및 GitHub Codespaces에서 개발 프록시 사용을 참조하세요.
개발자 프록시 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를 노출하는 포트입니다. 이를 사용하여 프로그래밍 방식으로 개발 프록시와 상호 작용할 수 있습니다.
중요합니다
로컬 컴퓨터에서 개발자 프록시에 액세스하고 개발 프록시 도구 키트를 사용할 수 있도록 두 포트를 호스트에 매핑해야 합니다.
호스트에서 API에 도달할 수 있도록 이미지는 API를 모든 컨테이너 인터페이스(--api-ip-address 0.0.0.0)에 바인딩합니다. 모든 API 요청에는 Authorization 헤더에 Bearer 토큰이 필요합니다. 개발 프록시는 시작할 때 토큰을 인쇄합니다.
api 토큰 명령을 사용하여 실행 중인 컨테이너에서 가져올 수도 있습니다.
docker exec <container> devproxy api token
베타 이미지의 경우 devproxy 대신 devproxy-beta를 사용하세요. API는 HTTP를 사용하므로 신뢰할 수 있는 네트워크에서 원격으로 API에 액세스하려는 경우가 아니면 호스트 루프백 주소(-p 127.0.0.1:8897:8897)에서만 API 포트를 게시하십시오.
용량
이미지는 다음 볼륨을 노출합니다.
-
/config - 컨테이너가 개발 프록시를 시작하는 현재 작업 디렉터리입니다. 매핑하는 폴더에
devproxyrc.json파일이 포함된 경우, 개발자 프록시는 자동으로 자체 구성을 수행합니다. - /home/devproxy/.config/dev-proxy/rootCert - 개발자 프록시가 루트 인증서를 저장하는 폴더입니다. 호스트에 볼륨을 매핑하면 루트 인증서에 쉽게 액세스하여 시스템 또는 브라우저에 설치할 수 있습니다.
팁 (조언)
또는 루트 인증서를 호스트에 매핑하는 대신 개발자 프록시 API를 사용하여 PEM(개인 정보 보호 강화 메일) 형식 으로 루트 인증서의 공개 키를 다운로드 할 수 있습니다. 인증서를 다운로드하려면 GET http://127.0.0.1:8897/proxy/rootCertificate?format=crt 엔드포인트를 Authorization: Bearer <token> 헤더에 있는 API 토큰과 함께 호출합니다.
Docker에서 개발 프록시 사용
개발자 프록시 컨테이너를 시작하면 포트 8000에서 들어오는 트래픽을 수신 대기하는 개발자 프록시가 자동으로 시작됩니다.
기본 구성
개발자 프록시는 devproxyrc.json 볼륨에 매핑된 폴더에서 /config 파일을 찾습니다. 파일을 찾으면 파일을 사용하여 자체 구성합니다. 파일을 찾지 못하면 기본 구성을 사용합니다.
사용자 지정 구성
개발자 프록시에 대한 사용자 지정 구성을 사용하려면 devproxyrc.json 볼륨에 매핑한 폴더에 /config 파일을 생성할 수 있습니다. 또는 개발 프록시를 시작할 때 매개 변수를 --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/*"
참고하십시오
Dev Proxy