1

私はラップトップでさまざまなコンテナを実行しています:

X1C3:~$ docker ps
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                    NAMES
4daccb82531d        prom/prometheus:latest   "/bin/prometheus -con"   12 hours ago        Up 12 hours         0.0.0.0:9090->9090/tcp   berserk_goldstine
32c2c31e0d5f        prom/blackbox-exporter   "/bin/go-run -config."   12 hours ago        Up 12 hours         0.0.0.0:9115->9115/tcp   goofy_wescoff
7490523a3bc7        prom/node-exporter       "/bin/go-run"            2 days ago          Up 2 days                                    sharp_albattani
61303633672b        prom/alertmanager        "/bin/go-run -config."   2 days ago          Up 2 days           0.0.0.0:9093->9093/tcp   goofy_kare
89ce4f49c426        grafana/grafana          "/usr/sbin/grafana-se"   2 days ago          Up 2 days           0.0.0.0:3000->3000/tcp   berserk_wozniak

そして、それらのコンテナーの少なくとも 1 つからprom/prometheus、他のコンテナーと通信する必要があります。

たとえば、一般的な構成は次のとおりです。

global:
 scrape_interval: 10s
 evaluation_interval: 10s
scrape_configs:
 - job_name: 'prometheus'
   target_groups:
    - targets:
      - localhost:9090
      - 192.168.88.161:9100
 - job_name: 'blackbox'
   metrics_path: /probe
   params:
     module: [icmp]
     target: [8.8.8.8]
   target_groups:
     - targets:
       - 192.168.88.161:9115

192.168.88.161localhost が機能しないため、指定する必要があることがわかりました。localhost がそのコンテナーに対してローカルであるように見えるためだと思います。192.168.88.161ただし、自宅にいるときは IP しか表示されないという厄介な側面があります。私は常に変化するので、私のIPは変化します。では、この問題にどう対処するか。

私は使用を推測しX1C3.localましたが、コンテナ間で動作するボンジュール検出なしでは動作しないと思います (疑わしい!)

4

2 に答える 2

1

docker 1.9を使用している場合docker-machine、コンテナーを参照する新しい方法は、たとえばconsulなどのディスカバリー サービスと、レジストレーター などのインスペクター サービスを組み合わせることです。

他の同様のアプローチは、swarmを使用してこれらのサービスを管理することです (まだ consul と結合されています)。

いずれの場合も、少なくとも 2 つのコンテナーが追加されることを意味します (コンサル マスター用に 1 つ、スウォーム マスターや登録者などの検査用に 1 つ)。「別のサービス ディスカバリーを配置することと、それを Docker Swarm のクラスター マシンに統合することの違いは何ですか
」を参照してください。

利点--linkは、コンテナーを任意の順序で開始できること、コンテナーを停止して再始動できること、およびコンテナーを別のコンテナーから引き続き表示できることです。
--linkリンク先のコンテナを最初に起動する必要があり、コンテナが停止して再作成--linkされると、無効になります。

また、検出サービスのアプローチは、localhost または複数のホストに対して有効です。(--linkホスト間ではなく、ローカルでのみ機能します)

于 2015-11-16T05:28:52.727 に答える
1

私が今始めたことは、すべてのサービスでwithのオプションを使用localhostすることです。/etc/prometheus.ymldocker run--net=host

于 2015-11-20T04:19:52.170 に答える