0

我想通过 influxdb 访问从 cadvisor 收集的数据,这里是我的 docker 配置:

//for cadvisor
docker run     
--volume=/:/rootfs:ro     
--volume=/var/run:/var/run:rw     
--volume=/sys:/sys:ro     
--volume=/var/lib/docker/:/var/lib/docker:ro     
--publish=8080:8080     
--detach=true     
--name=cadvisorDB     
google/cadvisor:latest     
-storage_driver=influxdb     
-storage_driver_host=127.0.0.1:8086
-storage_driver_db=databaseName

//for InfluxDB
docker run 
-d 
-p 8083:8083 
-p 8086:8086 
--expose 8090 
--expose 8099 
tutum/influxdb
//and I created manually the databse through the WEB UI on localhost:8083   
with the name databaseName`

所以一旦我启动了这两个容器,我就去 influxDB 探索数据(通过查询)。一个错误说没有数据

4

2 回答 2

2

配置中的一切看起来都很好。问题可能出在这一行:

-storage_driver_host=127.0.0.1:8086

因为 127.0.0.1 指的是 cadvisor 容器本地主机,而不是您的本地主机。尝试改为使用 docker Nat ip(通常为 172.17.42.1)。

于 2015-06-08T14:19:46.507 回答
2

这就是我在“docker-compose” YAML 文件中使用的内容。应该很容易翻译成通常的“docker run”语法。在我的情况下,我在 cAdvisor 中链接 InfluxDB 容器,因此 cAdvisor 知道如何解析主机名“influxdb”,而不管分配给容器的内部 Docker IP。

influxdb:
  image: tutum/influxdb
  hostname: influxdb
  volumes:
    - ./influxdb:/data
  environment:
    - PRE_CREATE_DB=cadvisor
  ports:
    - "8083:8083"
    - "8086:8086"
  expose:
    - "8090"
    - "8099"

cadvisor:
  image: google/cadvisor
  hostname: cadvisor
  volumes:
    - /:/rootfs:ro
    - /var/run:/var/run:rw
    - /sys:/sys:ro
    - /var/lib/docker:/var/lib/docker:ro
  ports:
    - "8089:8080"
  links:
    - influxdb
  command: -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086

注意:如果您设置PRE_CREATE_DB环境变量,InfluxDB 可以自动创建您的数据库。

于 2015-06-11T00:48:26.107 回答