====== 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 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
===== 參考網址 =====
* https://docs.ipfs.tech/how-to/run-ipfs-inside-docker
{{tag>ipfs docker}}