我在我的笔记本电脑上运行各种容器:
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
并且至少从其中一个容器中,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.161
因为 localhost 不起作用。我猜是因为 localhost 似乎是该容器的本地。然而令人讨厌的192.168.88.161
是,当我在家时,它只是IP。我的IP 发生了变化,因为我一直在变化。那么如何处理这个问题呢?
我推测使用X1C3.local
,但我认为没有 bonjour 发现可以跨容器工作(值得怀疑!)