Docker 一鍵部署
使用 Docker Compose 一鍵部署 FastBee 開源版,最快 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://你的伺服器IP:80- 帳號:
admin - 密碼:
admin123
安全提醒
首次登入後請立即修改預設密碼;資料庫、Redis 的預設密碼僅用於本機測試,正式環境務必更換。
驗證部署
docker-compose ps輸出中 mysql、redis、java、nginx、zlmedia 狀態均為 Up。- 瀏覽器存取
http://你的伺服器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

