首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头集装箱间通信

码头集装箱间通信
EN

Stack Overflow用户
提问于 2020-10-26 11:33:52
回答 2查看 1.1K关注 0票数 0

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

我想开始两个码头集装箱与码头组成: InfluxDB和计时。

不幸的是,计时表无法以给定的主机名到达InfluxDB:“无法连接到InfluxDB流入1:错误联系源”。

这是什么原因?

这是我的docker-compose.yml

代码语言:javascript
复制
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,然后将容器彼此平分,或者使用wget获取另一个容器的HTTP。甚至容器之间的这种通信也不起作用。在使用wget和ping的两次尝试中,我都得到了超时。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-27 13:07:58

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

代码语言:javascript
复制
iptables --flush -t filter
iptables --flush -t nat

这将删除码头的条目和集装箱与互联网之间的通信将不再可能。

我重写了剧本,现在一切都恢复正常了。

票数 -1
EN

Stack Overflow用户

发布于 2020-10-26 12:46:52

如果未配置,则chronograf将尝试访问localhost:8086上的进水数据库。为了能够到达正确的influxdb实例,您需要使用--influxdb-url命令行标志或(个人偏好)环境变量INFLUXDB_URL相应地指定url。这些应该设置为http://influxdb:8086的值,它是从撰写文件的服务名称派生出来的停靠DNS名称(键比services低一级)。

这应该能起作用(片段):

代码语言:javascript
复制
  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

有关配置映像的详细信息,请查看自述 (使用带有InfluxDB的容器的部分),并查看有关网络和dns命名的更多信息的对接者组成网络文档。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64536311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档