# Docker

> Docker 上のサービスの HTTP/HTTPS 通信をキャプチャし、コンテナからの送信リクエストを Proxyman 経由にするように設定します。

## 1. Docker コンテナの通信をキャプチャ {#1-capture-traffic-from-your-docker-container}

デフォルトでは、Mac から Docker コンテナ内で実行しているサービスに送信したリクエストを、Proxyman でキャプチャできます。

例として、サンプルの 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 Issue #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)
