0

我在这里面临一个相对简单的问题,但我开始想知道为什么它不起作用。

我想用 Docker Compose 启动两个 Docker 容器:InfluxDB 和 Chronograph。

不幸的是,计时码表没有在给定的主机名下到达 InfluxDB:“无法连接到 InfluxDB Influx 1:联系源时出错”

这可能是什么原因?

这是我的 docker-compose.yml

version: "3.8"

services:
  influxdb:
    image: influxdb
    restart: unless-stopped
    ports:
      - 8086:8086
    volumes:
      - influxdb-volume:/var/lib/influxdb
    networks:
      - test

  chronograf:
    image: chronograf
    restart: unless-stopped
    ports:
      - 8888:8888
    volumes:
      - chronograf-volume:/var/lib/chronograf
    depends_on:
      - influxdb
    networks:
      - test

volumes:
  influxdb-volume:
  chronograf-volume:

networks:
  test:
    driver: bridge

我还尝试在两个容器内启动一个 shell,然后相互 ping 容器或使用 wget 获取另一个容器的 HTTP-API。即使容器之间的这种通信也不起作用。在使用 wget 和 ping 的两次尝试中,我都会超时。

不得不说,我这里用的是香蕉派 BPI-M1。是否有可能是由于 Linux 导致容器到容器的通信不起作用?

4

2 回答 2

2

If not configured, chronograf will try to access influxdb on localhost:8086. To be able to reach the correct influxdb instance, you need to specify the url accordingly using either the --influxdb-url command line flag or (personal preference) an environment variable INFLUXDB_URL. Those should be set to the value of http://influxdb:8086 which is the docker DNS name derived from the service name of your compose file (the keys one level below services).

This should do the trick (snippet):

  chronograf:
    image: chronograf
    restart: unless-stopped
    ports:
      - 8888:8888
    volumes:
      - chronograf-volume:/var/lib/chronograf
    environment:
      - INFLUXDB_URL=http://influxdb:8086
    depends_on:
      - influxdb
    networks:
      - test

Please check the chronograf readme (section Using the container with InfluxDB) for details on configuring the image and check the docker compose networking docs on some more info about networks and dns naming.

于 2020-10-26T12:46:52.107 回答
-1

Docker 服务在表过滤器和 nat 中创建一些 iptables 条目。我的 OpenVPN 网关脚本在启动时执行了以下命令:

iptables --flush -t filter
iptables --flush -t nat

这将从 Docker 中删除条目,并且容器和 Internet 之间的通信将不再可能。

我已经重写了脚本,现在一切都恢复了。

于 2020-10-27T13:07:58.723 回答