在 docker 环境中设置 IPFS 集群
Setting up IPFS Cluster on docker environment
我正在尝试使用 docker 设置一个 2 节点私有 IPFS 集群。为此,我使用 ipfs/ipfs-cluster:latest
图片。
我的 docker-compose 文件看起来像:
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
启动容器时出现以下错误
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
请帮忙解决问题。
是否有任何关于如何在 docker 上设置 IPFS 集群的适当文档。 This 文档遗漏了很多细节。
谢谢。
根据您发布的文章:
The container does not run go-ipfs. You should run the IPFS daemon
separetly, for example, using the ipfs/go-ipfs Docker container. We
recommend mounting the /data/ipfs-cluster folder to provide a custom,
working configuration, as well as persistency for the cluster data.
This is usually achieved by passing -v
:/data/ipfs-cluster to docker run).
如果您实际上需要连接到 docker-compose 中的另一个服务,您可以简单地通过服务名称引用它,因为主机名条目是在 [=22] 中的所有容器中创建的=]-compose 以便服务可以通过名称而不是 ip
相互通信
此外:
Unless you run docker with --net=host, you will need to set $IPFS_API
or make sure the configuration has the correct node_multiaddress.
docker-compose 中 --net=host 的等效项是 network_mode: "host"
(与端口映射不兼容)https://docs.docker.com/compose/compose-file/#network_mode
我想出了如何在 docker 环境中 运行 多节点 IPFS 集群。
当前的 ipfs/ipfs-cluster
版本 0.4.17 没有 运行 ipfs 对等体,即其中的 ipfs/go-ipfs
。我们需要单独 运行 它。
所以现在为了在docker环境中运行一个多节点(本例中为2个节点)IPSF集群,我们需要运行2个IPFS对等容器和2个IPFS cluster container 1对应每个peer.
因此您的 docker-compose 文件将如下所示:
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-cluster,以便 ipfs-cluster 知道其对应的对等点。对于两个 ipfs-cluster,我们需要具有相同的 CLUSTER_SECRET.
我正在尝试使用 docker 设置一个 2 节点私有 IPFS 集群。为此,我使用 ipfs/ipfs-cluster:latest
图片。
我的 docker-compose 文件看起来像:
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
启动容器时出现以下错误
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
是否有任何关于如何在 docker 上设置 IPFS 集群的适当文档。 This 文档遗漏了很多细节。
谢谢。
根据您发布的文章:
The container does not run go-ipfs. You should run the IPFS daemon separetly, for example, using the ipfs/go-ipfs Docker container. We recommend mounting the /data/ipfs-cluster folder to provide a custom, working configuration, as well as persistency for the cluster data. This is usually achieved by passing -v :/data/ipfs-cluster to docker run).
如果您实际上需要连接到 docker-compose 中的另一个服务,您可以简单地通过服务名称引用它,因为主机名条目是在 [=22] 中的所有容器中创建的=]-compose 以便服务可以通过名称而不是 ip
相互通信此外:
Unless you run docker with --net=host, you will need to set $IPFS_API or make sure the configuration has the correct node_multiaddress.
docker-compose 中 --net=host 的等效项是 network_mode: "host"
(与端口映射不兼容)https://docs.docker.com/compose/compose-file/#network_mode
我想出了如何在 docker 环境中 运行 多节点 IPFS 集群。
当前的 ipfs/ipfs-cluster
版本 0.4.17 没有 运行 ipfs 对等体,即其中的 ipfs/go-ipfs
。我们需要单独 运行 它。
所以现在为了在docker环境中运行一个多节点(本例中为2个节点)IPSF集群,我们需要运行2个IPFS对等容器和2个IPFS cluster container 1对应每个peer.
因此您的 docker-compose 文件将如下所示:
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-cluster,以便 ipfs-cluster 知道其对应的对等点。对于两个 ipfs-cluster,我们需要具有相同的 CLUSTER_SECRET.