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选项。