【问题标题】:IPFS public node in a Docker container?Docker容器中的IPFS公共节点?
【发布时间】:2023-03-08 19:21:01
【问题描述】:

我正在尝试在我的家庭网络上设置IPFS 服务器。我有一个CoreOS 框,我想启动并运行它。由于 CoreOS 专注于 Docker 容器,这就是我的设置。

我已经让它工作了,这样我就可以启动一个运行守护进程的 Docker 容器:

docker run --name ipfs.service \
  -p 8080:8080 -p 4001:4001 -p 5001:5001 \
  ipfs/go-ipfs:v0.4.14

我已经登录到正在运行的容器 (docker exec -it ipfs.service sh) 并将“Addresses.Gateway”选项更新为“/ip4/0.0.0.0/tcp/8080”。

在启动时,日志确实显示:

API server listening on /ip4/0.0.0.0/tcp/5001
Gateway (readonly) server listening on /ip4/0.0.0.0/tcp/8080
Daemon is ready

现在,我希望能够从我的家庭网络上的另一个工作站浏览 IPFS 内容。但是,导航到 http://192.168.0.100:8080/ipfs/QmW2WQi7j6c7UgJTarActp7tDNikE4B2qXtFCfLPdsgaTQ/cat.jpg(我的 CoreOS 的本地 IP 地址为 192.168.0.100)时,我在 Chrome 中收到“连接被拒绝”错误。

使用 SSH 隧道,我可以访问 IPFS 内容(将服务器 8080 端口转发到我的本地工作站),所以我知道 IPFS 服务器至少在为外部 CoreOS 层提供服务。

但是如何让它更进一步呢?我不确定这是 CoreOS 配置错误还是 IPFS 守护程序配置错误。如何进一步排除此连接断开的位置?

【问题讨论】:

    标签: docker coreos ipfs


    【解决方案1】:

    可能是 docker 的事情,因为在 IPFS 配置方面一切看起来都不错。

    运行 docker 容器时,请尝试使用 docker run ... -p 0.0.0.0:8080:8080 而不是仅使用 -p 8080:8080 运行它。我认为docker默认绑定8080:8080127.0.0.1而不是0.0.0.0

    【讨论】:

      【解决方案2】:

      这个问题原来是 IPFS 版本的问题;更新到最新版本的 IPFS 导致问题消失。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-06
        • 2020-06-16
        • 2021-10-26
        • 2017-02-03
        • 1970-01-01
        相关资源
        最近更新 更多