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