ติดตั้งแบบคลิกเดียวด้วย Docker
ปรับใช้ FastBee รุ่นโอเพนซอร์สแบบคลิกเดียวด้วย Docker Compose ตั้งค่าสภาพแวดล้อมเสร็จภายใน 10 นาที เมื่อเทียบกับการปรับใช้แบบระบบ (ภาษาจีน) วิธี Docker ไม่ต้องติดตั้งคอมโพเนนต์แต่ละตัวด้วยตนเอง เหมาะกับผู้ใช้ส่วนใหญ่ หากต้องการควบคุมแต่ละคอมโพเนนต์อย่างละเอียด โปรดเลือกการปรับใช้แบบระบบ
ภาพรวมหน้านี้
ข้อกำหนดเบื้องต้น
- Linux / macOS / Windows (แนะนำเซิร์ฟเวอร์ Linux)
- Docker 20.10+
- Docker Compose 2.0+
- ขั้นต่ำ 2 คอร์ หน่วยความจำ 4GB
- พื้นที่ดิสก์ว่างอย่างน้อย 10GB (สำหรับอิมเมจและดาต้าโวลุม)
- พอร์ต 80, 443, 8080, 1883, 8083, 5061(UDP), 8082 และอื่น ๆ ยังไม่ถูกใช้งาน คำอธิบายพอร์ตฉบับสมบูรณ์ดูที่การติดตั้งและปรับใช้ (ภาษาจีน)
ก่อนปรับใช้ สามารถตรวจสอบสภาพแวดล้อม Docker ได้ดังนี้:
docker --version
docker-compose --versionติดตั้งแบบคลิกเดียว
sudo wget -c https://hub.fastbee.cn/resource/install.sh && bash ./install.shเลือก รุ่นโอเพนซอร์ส ตามคำแนะนำ สคริปต์จะดึงและเริ่มบริการทั้งหมดโดยอัตโนมัติ หลังติดตั้งเสร็จ ให้รัน docker-compose ps เพื่อยืนยันสถานะคอนเทนเนอร์แต่ละตัว และบันทึกที่อยู่เข้าถึงที่สคริปต์แสดงไว้
การปรับใช้ด้วยตนเอง
เมื่อสคริปต์แบบคลิกเดียวใช้ไม่ได้ หรือต้องการกำหนดการจัดวางเอง สามารถปรับใช้ด้วยตนเองตามหัวข้อนี้
1. เตรียมไดเรกทอรี
mkdir -p /var/data/{mysql,redis,java,nginx,zlmedia}การปรับใช้ด้วยตนเองต้องเตรียมไฟล์สำหรับเมานต์ต่อไปนี้เอง โดยดึงจากรีโพซิทอรีซอร์สโค้ด และสร้างตามการปรับใช้แบบระบบ (ภาษาจีน):
| เส้นทาง | เนื้อหา |
|---|---|
/var/data/java/fastbee-admin.jar | แพ็กเกจ jar ของบริการแบ็กเอนด์ |
/var/data/nginx/vue | ผลลัพธ์การบิลด์ฟรอนต์เอนด์ (vue/dist) |
/var/data/nginx/nginx.conf | การกำหนดค่า Nginx |
/var/data/mysql/mysql.cnf | การกำหนดค่า MySQL |
/var/data/zlmedia/conf/config.ini | การกำหนดค่า ZLMediaKit |
2. docker-compose.yml
version: '2'
networks:
network:
ipam:
driver: default
config:
- subnet: '177.7.0.0/16'
services:
mysql:
image: mysql:5.7
container_name: mysql
ports:
- 3306:3306
networks:
network:
ipv4_address: 177.7.0.11
volumes:
- /var/data/mysql/mysql:/var/lib/mysql
- /var/data/mysql/mysql.cnf:/etc/mysql/conf.d/mysql.cnf
- /var/data/mysql/initdb:/docker-entrypoint-initdb.d
environment:
MYSQL_DATABASE: fastbee
MYSQL_ROOT_PASSWORD: iot@admin123
command:
['mysqld','--character-set-server=utf8','--collation-server=utf8_unicode_ci',
'--default-time-zone=+8:00','--lower-case-table-names=1']
redis:
image: redis:7.0.0
container_name: redis
ports:
- 6379:6379
networks:
network:
ipv4_address: 177.7.0.10
volumes:
- /var/data/redis:/usr/local/etc/redis
- /var/data/redis/data:/data
command: ['-- requirepass iot@admin123','-- appendonly yes']
java:
image: openjdk:8-jre
container_name: java
ports:
- 8080:8080
- 1883:1883
- 8083:8083
- 5061:5061/udp
depends_on:
- redis
- mysql
- zlmedia
volumes:
- /var/data/java/fastbee-admin.jar:/server.jar
- /var/data/java/uploadPath:/uploadPath
- /var/data/java/logs:/logs
entrypoint: java -jar /server.jar
nginx:
image: nginx:stable
container_name: nginx
ports:
- 80:80
- 443:443
depends_on:
- java
volumes:
- /var/data/nginx/vue:/usr/share/nginx/html
- /var/data/nginx/nginx.conf:/etc/nginx/nginx.conf
zlmedia:
image: zlmediakit/zlmediakit:master
container_name: zlmedia
ports:
- 8082:80
- 554:554
- 1935:1935
volumes:
- /var/data/zlmedia/conf/config.ini:/opt/media/conf/config.ini3. เริ่มบริการ
docker-compose up -d
docker-compose ps # ตรวจสอบสถานะคอนเทนเนอร์4. นำเข้าฐานข้อมูล
นำเข้า springboot/sql/fastbee.sql เข้าสู่ MySQL
docker exec -i mysql mysql -uroot -piot@admin123 fastbee < fastbee.sqlเข้าถึงระบบ
หลังปรับใช้เสร็จ เปิดเบราว์เซอร์ไปที่:
http://server-ip:80- บัญชี:
admin - รหัสผ่าน:
admin123
คำเตือนด้านความปลอดภัย
หลังเข้าสู่ระบบครั้งแรก โปรดเปลี่ยนรหัสผ่านเริ่มต้นทันที รหัสผ่านเริ่มต้นของฐานข้อมูลและ Redis ใช้สำหรับการทดสอบในเครื่องเท่านั้น สภาพแวดล้อมการผลิตต้องเปลี่ยนใหม่
ตรวจสอบการปรับใช้
- ในผลลัพธ์ของ
docker-compose psคอนเทนเนอร์ mysql, redis, java, nginx, zlmedia ต้องมีสถานะ Up ทั้งหมด - เปิด
http://server-ipในเบราว์เซอร์ และเข้าสู่ระบบคอนโซลด้วยadmin/admin123สำเร็จ - ใช้ไคลเอนต์ เช่น MQTTX เชื่อมต่อพอร์ต
1883เพื่อตรวจสอบเส้นทางการเชื่อมต่ออุปกรณ์ พารามิเตอร์การเชื่อมต่อและขั้นตอนทดสอบดูที่ การเชื่อมต่อ MQTT
คำถามที่พบบ่อย
Q: พอร์ตถูกใช้งานอยู่ต้องทำอย่างไร? แก้ไขการแม็ปพอร์ตใน docker-compose.yml เช่น เปลี่ยน - 8080:8080 เป็น - 9090:8080
Q: จะดูล็อกอย่างไร?
docker logs -f java # ล็อกบริการแบ็กเอนด์
docker logs -f mysql # ล็อกฐานข้อมูลQ: คอนเทนเนอร์รีสตาร์ทซ้ำ ๆ ต้องทำอย่างไร? ใช้ docker logs <ชื่อคอนเทนเนอร์> ดูสาเหตุการหยุดทำงานก่อน สาเหตุที่พบบ่อย ได้แก่ พอร์ตชนกัน หน่วยความจำไม่พอ หรือไฟล์กำหนดค่าที่เมานต์หายไป ในการปรับใช้ด้วยตนเอง ให้ตรวจสอบเป็นพิเศษว่าไฟล์ในหัวข้อที่ 1 อยู่ครบแล้ว
Q: เปิดหน้าเว็บไม่ได้หรือเจอ 502? ยืนยันว่าคอนเทนเนอร์ nginx และ java กำลังทำงาน แบ็กเอนด์ต้องเริ่มต้นระบบในการเริ่มครั้งแรก ให้ยืนยันด้วย docker logs -f java ว่าเริ่มเสร็จแล้วจึงค่อยเข้าถึง
Q: แบ็กเอนด์แจ้งเชื่อมต่อฐานข้อมูลไม่สำเร็จ? ยืนยันว่าคอนเทนเนอร์ mysql ทำงานปกติ และรหัสผ่าน root ตรงกับการกำหนดค่าแบ็กเอนด์ ในกรณีปรับใช้ด้วยตนเอง ต้องยืนยันว่าได้รันขั้นตอนที่ 4 นำเข้า fastbee.sql แล้ว
Q: จะอัปเกรดอย่างไร? แทนที่ /var/data/java/fastbee-admin.jar แล้วรีสตาร์ทคอนเทนเนอร์:
docker restart java

