# Docker

> Docker 서비스의 HTTP/HTTPS 트래픽을 캡처하고, 컨테이너에서 나가는 요청이 Proxyman을 거치도록 설정하세요.

## 1. Docker 컨테이너의 트래픽 캡처 {#1-capture-traffic-from-your-docker-container}

기본적으로 Proxyman은 Mac에서 Docker 컨테이너 안에서 실행 중인 서비스로 보내는 요청을 캡처할 수 있습니다.

예를 들어, 다음과 같은 Docker 컨테이너가 있다고 가정하겠습니다:

1. NodeJS와 Express로 간단한 HTTP 서버를 구성한 뒤 Docker 이미지로 만드세요. 가이드는 [https://nodejs.org/en/docs/guides/nodejs-docker-webapp/](https://nodejs.org/en/docs/guides/nodejs-docker-webapp/)에서 확인할 수 있습니다.
2. 서버가 8080 포트로 노출되어 있는지 확인하세요.
3. Safari에서 http://localhost:8080 에 접속해 동작을 확인할 수 있습니다.

## 2. Docker 컨테이너 내부의 트래픽 캡처 {#2-capture-traffic-inside-docker-containers}

[GitHub 이슈 #419](https://github.com/ProxymanApp/Proxyman/issues/419#issuecomment-1059096490)의 단계를 참고하세요.

## 3. 대안 방법: {#3-alternative-solution}

1. docker-compose.proxyman.yml 파일을 추가합니다. \<php8.1-fpm-xdebug>를 사용 중인 서비스 이름으로 바꾸세요.

```yaml
version: '2'
services:
  php8.1-fpm-xdebug:
    environment:
      HTTP_PROXY: host.docker.internal:9090
      HTTPS_PROXY: host.docker.internal:9090
      http_proxy: host.docker.internal:9090
      https_proxy: host.docker.internal:9090
```

2. Docker를 시작합니다:

`docker-compose -f docker-compose.yml -f docker-compose.proxyman.yml up -d`

참고: [https://github.com/ProxymanApp/Proxyman/issues/1712#issuecomment-1642279537](https://github.com/ProxymanApp/Proxyman/issues/1712#issuecomment-1642279537)
