Skip to content

Docker 一鍵部署 ​

使用 Docker Compose 一鍵部署 FastBee 開源版,最快 10 分鐘完成環境搭建。相較系統部署(简体中文),Docker 方式無需手動安裝各元件,適合大多數使用者;需要逐元件精細控制時請選擇系統部署。

頁面導讀 ​

頁面內容FastBee 開源版 Docker 部署的完整流程:環境要求、一鍵安裝指令碼、手動 docker-compose 部署、資料庫匯入與部署驗證。
適用場景適合首次部署或快速搭建測試環境的使用者,一條指令完成 MySQL、Redis、後端、Nginx 與串流媒體服務的安裝。
前置條件伺服器已安裝 Docker 20.10+ 與 Docker Compose 2.0+,最低 2 核 4GB 記憶體,相關連接埠未被佔用。
驗收點所有容器狀態為 Up,瀏覽器可開啟登入頁並使用 admin / admin123 登入,MQTT 1883 連接埠可連線。

前置條件 ​

  • Linux / macOS / Windows(建議 Linux 伺服器)
  • Docker 20.10+
  • Docker Compose 2.0+
  • 最低 2 核 4GB 記憶體
  • 至少 10GB 可用磁碟空間(用於映像與資料磁碟區)
  • 80、443、8080、1883、8083、5061(UDP)、8082 等連接埠未被佔用,完整連接埠說明見安裝部署(简体中文)

部署前可先驗證 Docker 環境:

bash
docker --version
docker-compose --version

一鍵安裝 ​

bash
sudo wget -c https://hub.fastbee.cn/resource/install.sh && bash ./install.sh

依提示選擇 開源版本,指令碼將自動完成所有服務的拉取與啟動。安裝結束後執行 docker-compose ps 確認各容器狀態,並記錄指令碼輸出的存取網址。

手動部署 ​

一鍵指令碼無法使用或需要自訂編排時,可依本節手動部署。

1. 準備目錄 ​

bash
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.confNginx 設定
/var/data/mysql/mysql.cnfMySQL 設定
/var/data/zlmedia/conf/config.iniZLMediaKit 設定

2. docker-compose.yml ​

yaml
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.ini

3. 啟動服務 ​

bash
docker-compose up -d
docker-compose ps   # 檢查容器狀態

4. 匯入資料庫 ​

將 springboot/sql/fastbee.sql 匯入 MySQL。

bash
docker exec -i mysql mysql -uroot -piot@admin123 fastbee < fastbee.sql

存取系統 ​

部署完成後,瀏覽器存取:

http://你的伺服器IP:80
  • 帳號:admin
  • 密碼:admin123

安全提醒

首次登入後請立即修改預設密碼;資料庫、Redis 的預設密碼僅用於本機測試,正式環境務必更換。

驗證部署 ​

  1. docker-compose ps 輸出中 mysql、redis、java、nginx、zlmedia 狀態均為 Up。
  2. 瀏覽器存取 http://你的伺服器IP,使用 admin / admin123 成功登入控制台。
  3. 使用 MQTTX 等用戶端連線 1883 連接埠驗證設備接入鏈路,連線參數與測試步驟見 MQTT 接入。

常見問題 ​

Q: 連接埠被佔用怎麼辦? 修改 docker-compose.yml 中的連接埠對應,如 - 8080:8080 改為 - 9090:8080。

Q: 如何查看日誌?

bash
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 後重新啟動容器:

bash
docker restart java