# 使用 Docker 安装 Collector

LLMS index: [llms.txt](/llms.txt)

---

以下命令将拉取一个 Docker 镜像并在容器中运行 Collector。
请将 `0.149.0` 替换为你想运行的 Collector 版本。

   <ul class="nav nav-tabs" id="tabs-1" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-01-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-00" role="tab"
          data-td-tp-persist="dockerhub" aria-controls="tabs-01-00" aria-selected="true">
        DockerHub
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-01-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-01-01" role="tab"
          data-td-tp-persist="ghcr.io" aria-controls="tabs-01-01" aria-selected="false">
        ghcr.io
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-1-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-01-00" role="tabpanel" aria-labelled-by="tabs-01-00-tab" tabindex="1">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">docker pull otel/opentelemetry-collector:0.149.0
</span></span><span class="line"><span class="cl">docker run otel/opentelemetry-collector:0.149.0
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-01-01" role="tabpanel" aria-labelled-by="tabs-01-01-tab" tabindex="1">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">docker pull ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:0.149.0
</span></span><span class="line"><span class="cl">docker run ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:0.149.0
</span></span></code></pre></div>
    </div>
</div>


如果需要从当前工作目录加载自定义配置文件，可以将该文件挂载为一个卷：

   <ul class="nav nav-tabs" id="tabs-2" role="tablist">
  <li class="nav-item">
      <button class="nav-link active"
          id="tabs-02-00-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-00" role="tab"
          data-td-tp-persist="dockerhub" aria-controls="tabs-02-00" aria-selected="true">
        DockerHub
      </button>
    </li><li class="nav-item">
      <button class="nav-link"
          id="tabs-02-01-tab" data-bs-toggle="tab" data-bs-target="#tabs-02-01" role="tab"
          data-td-tp-persist="ghcr.io" aria-controls="tabs-02-01" aria-selected="false">
        ghcr.io
      </button>
    </li>
</ul>

<div class="tab-content" id="tabs-2-content">
    <div class="tab-body tab-pane fade show active"
        id="tabs-02-00" role="tabpanel" aria-labelled-by="tabs-02-00-tab" tabindex="2">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">docker run -v <span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>/config.yaml:/etc/otelcol/config.yaml otel/opentelemetry-collector:0.149.0
</span></span></code></pre></div>
    </div>
    <div class="tab-body tab-pane fade"
        id="tabs-02-01" role="tabpanel" aria-labelled-by="tabs-02-01-tab" tabindex="2">
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-sh" data-lang="sh"><span class="line"><span class="cl">docker run -v <span class="k">$(</span><span class="nb">pwd</span><span class="k">)</span>/config.yaml:/etc/otelcol/config.yaml ghcr.io/open-telemetry/opentelemetry-collector-releases/opentelemetry-collector:0.149.0
</span></span></code></pre></div>
    </div>
</div>


## Docker Compose

你也可以将 OpenTelemetry Collector 添加到现有的 `docker-compose.yaml` 文件中：

```yaml
otel-collector:
  image: otel/opentelemetry-collector
  volumes:
    - ./otel-collector-config.yaml:/etc/otelcol/config.yaml
  ports:
    - 1888:1888 # pprof 扩展
    - 8888:8888 # Collector 暴露的 Prometheus 指标
    - 8889:8889 # Prometheus exporter 指标
    - 13133:13133 # health_check 扩展
    - 4317:4317 # OTLP gRPC 接收器
    - 4318:4318 # OTLP HTTP 接收器
    - 55679:55679 # zpages 扩展
```

`otel-collector-config.yaml` 文件是 Collector 启动所必需的。
更多信息请参见 [Collector 配置](/docs/collector/configuration/)。

下面是一个最小化的 Collector 配置示例，用于记录所有接收到的遥测数据：

```yaml
receivers:
  otlp:
    protocols:
      grpc:
        endpoint: 0.0.0.0:4317
      http:
        endpoint: 0.0.0.0:4318

exporters:
  debug:
    verbosity: detailed

service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [debug]
    metrics:
      receivers: [otlp]
      exporters: [debug]
    logs:
      receivers: [otlp]
      exporters: [debug]
```
