[英]Docker localhost IP
我在笔记本电脑上运行各种容器:
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发现跨容器工作,我看不到这种工作(可疑!)
如果您使用的是docker-machine
和docker 1.9,则引用容器的新方法是通过发现服务 (例如consul )以及检查器服务(例如registrator) 。
另一种类似的方法是使用群体来管理那些服务(仍然与领事结合)
在所有情况下,这意味着至少要再有两个容器(一个用于领事主,一个用于检查,例如群主或注册人)。
请参阅“ 放置单独的服务发现并将其集成到Docker Swarm中的集群计算机之间有什么区别 ”。
与--link
相比, --link
是可以以任何顺序启动容器,可以停止容器并重新启动它们,并且彼此之间仍然可见。
--link
表示要链接的容器必须先启动,然后停止并重新创建, --link
不再有效。
此外,发现服务方法对本地主机或多个主机有效。 ( --link
仅在本地工作,不适用于主机)
我现在开始做的是在/etc/prometheus.yml
--net=host
localhost
与所有服务上的--net=host
docker run
的--net=host
选项一起使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.