我想通过Influxdb访问来自cadvisor的收集数据 这里我的码头配置:
//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来探索数据(通过查询)。错误表示没有数据
答案 0 :(得分:2)
配置中的所有内容都很好。问题可能出在这一行:
-storage_driver_host = 127.0.0.1:8086
因为127.0.0.1引用了cadvisor容器localhost而不是你的localhost。试着把docker Nat ip(通常是172.17.42.1)放进去。
答案 1 :(得分: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可以自动创建您的数据库。