# Docker

> 使用 Proxyman 抓取 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 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)
