IPFS 在 Docker 環境運行

  • 使用最新版的 image - ipfs/kubo:latest
  • 相關環境配置
    • 設定檔案存放路徑

      su - jonathan
      mkdir -p /home/jonathan/ipfs
      export ipfs_staging=/home/jonathan/ipfs/staging
      export ipfs_data=/home/jonathan/ipfs/data

    • 啟動 ipfs , 預設開啟 ports 4001 (P2P TCP/QUIC transports), 5001 (RPC API) and 8080 (Gateway):

      docker run -d --name ipfs_host -v $ipfs_staging:/export -v $ipfs_data:/data/ipfs -p 4001:4001 -p 4001:4001/udp -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/kubo:latest

    • 查看 ipfs 運行紀錄

      docker logs -f ipfs_host

      看到以下的訊息表示啟動完成

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

    • 執行 ipfs 命令語法如下:

      docker exec ipfs_host ipfs <args...>

      Exp.

    • 查看連上 ipfs 網路的節點清單

      docker exec ipfs_host ipfs swarm peers

    • 將一個檔案上傳至 ipfs 網路 Exp. /home/jonathan/test.txt

      cp -r /home/jonathan/test.txt $ipfs_staging
      docker exec ipfs_host ipfs add -r /export/test.txt

      如果成功就會如下訊息

      $ docker exec ipfs_host ipfs add -r /export/test.txt
      added QmSz21eVFGpCn34JdVwRvaLgajKkMv95Wj2KRKu1u1ugQC test.txt
       16 B / 16 B  100.00%

    • 在使用 IPFS Browser 驗證

      curl https://api.ipfsbrowser.com/ipfs/get.php?hash=QmSz21eVFGpCn34JdVwRvaLgajKkMv95Wj2KRKu1u1ugQC

      正常會看到 test.txt 的內容

      20220904-231500

      第一次外部讀取有可能會花一點時間, 主要是因為其他節點找這hash檔案並由本地 ipfs 節點複製出去其他節點的時間, 所以愈多節點有這 hash 速度就會愈快

    • 停止 ipfs 的 docker 服務

      docker stop ipfs_host

    • 再次啟動 ipfs 的 docker 服務

      docker start ipfs_host

  • tech/ipfs-docker.txt
  • 上一次變更: 2022/09/04 23:43
  • jonathan