首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在码头环境上建立IPFS集群

在码头环境上建立IPFS集群
EN

Stack Overflow用户
提问于 2018-09-27 04:53:57
回答 2查看 2.5K关注 0票数 6

我正在尝试使用docker来设置一个2节点私有IPFS集群。为此,我使用ipfs/ipfs-cluster:latest图像。

我的停靠-撰写文件看起来像:

代码语言:javascript
复制
version: '3'
services:
  peer-1:
    image: ipfs/ipfs-cluster:latest
    ports:
      - 8080:8080
      - 4001:4001
      - 5001:5001
    volumes:
      - ./cluster/peer1/config:/data/ipfs-cluster
  peer-2:
    image: ipfs/ipfs-cluster:latest
    ports:
      - 8081:8080
      - 4002:4001
      - 5002:5001
    volumes:
      - ./cluster/peer2/config:/data/ipfs-cluster

启动容器时出现以下错误

代码语言:javascript
复制
ERROR   ipfshttp: error posting to IPFS: Post http://127.0.0.1:5001/api/v0/repo/stat?size-only=true: dial tcp 127.0.0.1:5001: connect: connection refused ipfshttp.go:745

请帮忙解决这个问题。

是否有关于如何在码头上设置IPFS群集的适当文档。文档遗漏了很多细节。

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-28 04:25:17

我想出了如何在码头环境下运行多节点IPFS集群。当前的ipfs/ipfs-cluster版本为0.4.17,它不运行ipfs对等点,即它中的ipfs/go-ipfs。我们需要分开处理。

因此,为了在码头环境中运行多节点(本例中为2个节点) IPSF集群,需要运行2个IPFS对等容器和2个IPFS集群容器,每个节点对应一个IPSF集群容器。

因此,您的停靠撰写文件将如下所示:

代码语言:javascript
复制
version: '3'

networks:
  vpcbr:
    driver: bridge
    ipam:
     config:
       - subnet: 10.5.0.0/16

services:
  ipfs0:
    container_name: ipfs0
    image: ipfs/go-ipfs
    ports:
          - "4001:4001"
          - "5001:5001"
          - "8081:8080"
    volumes:
      - ./var/ipfs0-docker-data:/data/ipfs/
      - ./var/ipfs0-docker-staging:/export
    networks:
      vpcbr:
        ipv4_address: 10.5.0.5

  ipfs1:
    container_name: ipfs1
    image: ipfs/go-ipfs
    ports:
          - "4101:4001"
          - "5101:5001"
          - "8181:8080"
    volumes:
      - ./var/ipfs1-docker-data:/data/ipfs/
      - ./var/ipfs1-docker-staging:/export
    networks:
      vpcbr:
        ipv4_address: 10.5.0.7

  ipfs-cluster0:
    container_name: ipfs-cluster0
    image: ipfs/ipfs-cluster
    depends_on:
      - ipfs0
    environment:
      CLUSTER_SECRET: 1aebe6d1ff52d96241e00d1abbd1be0743e3ccd0e3f8a05e3c8dd2bbbddb7b93
      IPFS_API: /ip4/10.5.0.5/tcp/5001
    ports:
          - "9094:9094"
          - "9095:9095"
          - "9096:9096"
    volumes:
      - ./var/ipfs-cluster0:/data/ipfs-cluster/
    networks:
      vpcbr:
        ipv4_address: 10.5.0.6

  ipfs-cluster1:
    container_name: ipfs-cluster1
    image: ipfs/ipfs-cluster
    depends_on:
      - ipfs1
      - ipfs-cluster0
    environment:
      CLUSTER_SECRET: 1aebe6d1ff52d96241e00d1abbd1be0743e3ccd0e3f8a05e3c8dd2bbbddb7b93
      IPFS_API: /ip4/10.5.0.7/tcp/5001
    ports:
          - "9194:9094"
          - "9195:9095"
          - "9196:9096"
    volumes:
      - ./var/ipfs-cluster1:/data/ipfs-cluster/
    networks:
      vpcbr:
        ipv4_address: 10.5.0.8

这将旋转2个对等IPFS集群,我们可以使用任何对等点存储和检索文件。

这里的问题是,我们需要将IPFS_API作为环境变量提供给ipfs-集群,这样ipfs-集群才能知道其对应的对等点。对于这两个ipfs集群,我们需要有相同的CLUSTER_SECRET。

票数 3
EN

Stack Overflow用户

发布于 2018-09-27 06:01:48

根据你发表的那篇文章:

容器不运行go-ipfs。例如,您应该使用IPFS /容器来重新运行ipfs守护进程。我们建议挂载/ data /ipfs-群集文件夹,以提供自定义、工作配置以及集群数据的持久性。这通常是通过将-v :/data/ipfs集群传递给docker运行来实现的。

实际上,如果您需要连接到修饰符-组合中的另一个服务,您可以简单地通过服务名称来引用它,因为主机名条目是在对接器-组合中的所有容器中创建的,这样服务就可以通过名称而不是ip来相互通信。

此外:

除非您使用--net=host运行docker,否则需要设置$IPFS_API或确保配置具有正确的node_multiaddress。

坞组合中的-net=host等效为network_mode: "host" (与端口映射不兼容) 模式

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

https://stackoverflow.com/questions/52529664

复制
相关文章

相似问题

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