สวัสดีครับ ในบทความนี้ผมจะอธิบายการใช้งาน IPFS ด้วย Docker ซึ่งการใช้งาน IPFS ด้วย Docker นั้นเป็นแนวทางนึงในการใช้งาน IPFS สําหรับใครที่อยากจะติดตั้งบนเครื่องก็สามารถอ่านเพิ่มเติมได้จาก Document ของ IPFS ได้เลยครับ แต่โดยส่วนตัวของผมนั้น ผมชอบที่จะใช้ผ่าน Docker เนื่องจากไม่ต้องติดตั้ง IPFS บนเครื่องของเรา ถ้าใครยังไม่รู้จัก Docker สามารถไปอ่านบนความเก่าๆได้ครับที่นี่ https://thiti.dev/tags/docker
เริ่มทําตามไปที่ละ Step นะครับ
Step1: Running IPFS ใน Docker
เราจะใช้ Docker image จาก hub.docker.com/r/ipfs/go-ipfs นะครับ
Start container ด้วยคําสั่งนี้
docker run -d --name ipfs_host -v <Your export directory>:/export -v <Your ipfs data directory>:/data/ipfs -p 4001:4001 -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/go-ipfs:latest
เปลี่ยน <Your export directory> และ <Your ipfs data directory> เป็น Directory ตามต้องการ
ตัวอย่าง
docker run -d --name ipfs_host -v /home/thiti/export:/export -v /home/thiti/ipfs:/data/ipfs -p 4001:4001 -p 127.0.0.1:8080:8080 -p 127.0.0.1:5001:5001 ipfs/go-ipfs:latest
จะพบว่ามี Docker Container ชื่อ ipfs_host รันขึ้นมา โดยมี Daemon ของ IPFS รันอยู่ภายใน
ให้ตรวจสอบ log ของ IPFS ว่าพร้อมใช้งานหรือยังด้วยคําสั่ง
docker logs -f ipfs_host
รอจนกว่าจะขึ้นประมาณนี้ แสดงว่า IPFS พร้อมใช้งานแล้ว
Gateway (readonly) server
listening on /ip4/0.0.0.0/tcp/8080
หลังจากนี้เมื่อต้องการใช้งาน IPFS ก็จะเรียกใช้งานผ่าน ipfs_host ครับ
Step2: เพิ่มไฟล์ที่ต้องการเข้าไปยัง IPFS Networkห
Copy File ที่ต้องการไปไว้ใน Directory export (Directory ที่เรา map volume ไว้ตอน Run Docker container)
เพิ่มไฟล์ที่ต้องการเข้าไปยัง IPFS Network โดยใช้คําสั่งตามนี้
docker exec ipfs_host ipfs add /export/<Your file name>
หรือถ้าต้องการเพิ่มทั้ง Directory ก็ใส่ “-r” ตามนี้ครับ
docker exec ipfs_host ipfs add -r /export/<Your directory name>
File ของคุณจะ Online และ IPFS จะแสดงค่า Hash ของ File ขึ้นมา ประมาณนี้
โดยคุณสามารถเข้าถึงไฟล์ด้วยค่า Hash ดังกล่าวผ่านทาง Url นี้
https://ipfs.io/ipfs/<Your hash>
ตัวอย่าง ipfs.io/ipfs/QmVPv5MTWK5k9wbDZcD2LTKzgcpCbnRB3RBNvN4AcZx2VL
เท่านี้ไฟล์ของคุณก็จะคนอยู่ใน IPFS Network เป็นที่เรียบร้อย
File ที่ถูกเพิ่มเข้าไป จะยัง Online อยู่เสมอตามใดที่เครื่องยังเปิดอยู่ หรือมีคนสนใจไฟล์นี้ และ Pin ไฟล์นี้ไว้