Docker本地主机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
从这些容器中的至less一个中,我需要与其他容器进行通信。
例如这里是一个典型的configuration:
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变化 。 那么如何处理这个问题呢?
我推测使用X1C3.local
但我没有看到,没有发现工作跨容器bonjour工作(怀疑!)
如果您使用的是docker-machine
和docker1.9,引用容器的新方法将通过发现服务 ,例如领事 ,再加上像注册人那样的检查员服务。
另一个类似的方法是使用群体来pipe理这些服务(还与领事相结合)
在所有情况下,这意味着至less还有两个集装箱(一个是领事馆主,一个是集体主人或注册人)。
请参阅“ 将单独的服务发现并将其集成到Docker Swarm中的群集机器之间有什么不同? ”。
与“链接”相比, --link
在于,您可以按任意顺序启动容器,可以停止并重新启动容器,它们仍然可以互相看到。
--link
意味着你链接的容器必须先启动,并停止并重新创build, – --link
将不再有效。
此外,发现服务方法适用于本地主机或多个主机。 ( – --link
只能在本地使用,不能--link
主机)
我现在开始做的是在我的/etc/prometheus.yml
使用localhost
,在所有服务上使用--net=host
docker run
的--net=host
选项。