Neo4j เป็น Graph Database ยี่ห้อนึง
ที่มีทั้งแบบ Free และแบบเสียตังค์
ต่างกันที่
การติดตั้งด้วย Docker ในบทความนี้ เราจะใช้ Image จาก Official https://hub.docker.com/_/neo4j
แบบ Free และแบบเสียตังค์ จะต่างกันตรง Image Tag
ถ้าแบบเสียตังค์ Image Tag จะมี
-enterprise
หรือenterprise
ต่อท้าย
ซึ่งในบทความนี้ เราจะติดตั้งกันเป็นแบบ Free ด้วย Image neo4j:latest
$ docker run -d \
--name neo4j \
-p 7474:7474 -p 7687:7687 \
-v $HOME/neo4j/data:/data \
-v $HOME/neo4j/logs:/logs \
-v $HOME/neo4j/import:/var/lib/neo4j/import \
-v $HOME/neo4j/plugins:/plugins \
--env NEO4J_AUTH=<DATA_BASE_USERNAME>/<DATA_BASE_PASSWORD> \
--env NEO4J_dbms_connector_https_advertised__address="<SERVER_IP>:7473" \
--env NEO4J_dbms_connector_http_advertised__address="<SERVER_IP>:7474" \
--env NEO4J_dbms_connector_bolt_advertised__address="<SERVER_IP>:7687" \
neo4j:latest
ดูผลลัพธ์
$ docker ps -a
เวลาติดตั้ง Neo4j เราจะต้อง Expose Port อย่างน้อย 2 Ports จากทั้งหมด 3 Ports เพื่อ Remote Access คือ
7474
for HTTP (สำหรับเข้าสู่หน้า Neo4j Browser แบบ Http)7473
for HTTPS (สำหรับเข้าสู่หน้า Neo4j Browser แบบ Https)7687
for Bolt (สำหรับ Neo4j Database Connection)จาก Script เรา Expose แค่ 2 Ports เนื่องจาก เราไม่ได้เปิด Https
ถ้าจะทำ Https เราต้องทำเพิ่มเติมเอง ซึ่งตาม Default แล้ว Docker Image นี้ไม่ได้มี Https มาให้
กำหนด Default Username/Password สำหรับ Login เข้า Database
--env NEO4J_AUTH=<DATA_BASE_USERNAME>/<DATA_BASE_PASSWORD>
ถ้าไม่ต้องการให้มี Username/Password ก็ให้กำหนดเป็น
--env NEO4J_AUTH=none
กำหนด Configuration ต่าง ๆ สำหรับ Neo4j Browser (เป็น Tool สำหรับ Query Data บน Browser คล้าย ๆ phpMyAdmin
)
--env NEO4J_dbms_connector_https_advertised__address="<SERVER_IP>:7473"
--env NEO4J_dbms_connector_http_advertised__address="<SERVER_IP>:7474"
--env NEO4J_dbms_connector_bolt_advertised__address="<SERVER_IP>:7687"
ถ้าเราไม่กำหนด เวลาเปิด Neo4j Browser ด้วย IP อื่น ๆ จะทำให้ ไม่สามารถ Login หรือ Query data จาก Database ได้ เนื่องจาก Connection จะ Default เป็น localhost
ถ้าใครใช้งาน Docker ไม่คล่อง สามารถอ่านเพิ่มเติมได้จาก พื้นฐาน Docker
เมื่อ Run Container เสร็จ ลองเข้าไปที่
http://<SERVER_IP>:7474
จากนั้น Connect ด้วย Username/Password ตามที่กำหนดไว้
เข้าใช้งานได้ปกติ
ใช้ Data จากลิงค์นี้
ลอง Run ดู (อย่าลืม Bookmark ตรงรูปดาวไว้ด้วย)
MATCH (node)
RETURN node
LIMIT 10
ผลลัพธ์
ถ้าใครอยากลองเล่น Neo4j แบบไม่ต้องติดตั้ง สามารถเข้าไปลองเล่นได้ที่ https://sandbox.neo4j.com/