Skip to content

Despliegue con Docker en un solo comando ​

Despliegue la edición open source de FastBee con Docker Compose en un solo comando y monte el entorno en tan solo 10 minutos. En comparación con el despliegue del sistema (简体中文), el método con Docker no requiere instalar manualmente cada componente y es adecuado para la mayoría de los usuarios; cuando necesite un control detallado componente a componente, elija el despliegue del sistema.

Guía de la página ​

Contenido de la páginaProceso completo de despliegue con Docker de la edición open source de FastBee: requisitos del entorno, script de instalación en un solo comando, despliegue manual con docker-compose, importación de la base de datos y verificación del despliegue.
Escenarios de usoAdecuada para quienes despliegan por primera vez o montan rápidamente un entorno de pruebas: un solo comando instala MySQL, Redis, el backend, Nginx y el servicio de streaming.
Requisitos previosServidor con Docker 20.10+ y Docker Compose 2.0+ instalados, un mínimo de 2 núcleos y 4 GB de memoria, y los puertos correspondientes libres.
Criterios de aceptaciónTodos los contenedores en estado Up, la página de inicio de sesión accesible desde el navegador con admin / admin123 y el puerto MQTT 1883 disponible para conexiones.

Requisitos previos ​

  • Linux / macOS / Windows (se recomienda un servidor Linux)
  • Docker 20.10+
  • Docker Compose 2.0+
  • Mínimo 2 núcleos y 4 GB de memoria
  • Al menos 10 GB de espacio libre en disco (para imágenes y volúmenes de datos)
  • Los puertos 80, 443, 8080, 1883, 8083, 5061 (UDP) y 8082, entre otros, deben estar libres; la descripción completa de puertos está en Instalación y despliegue (简体中文)

Antes de desplegar puede comprobar el entorno Docker:

bash
docker --version
docker-compose --version

Instalación en un solo comando ​

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

Cuando se le solicite, elija la edición open source; el script descargará e iniciará automáticamente todos los servicios. Al finalizar la instalación, ejecute docker-compose ps para confirmar el estado de los contenedores y anote la dirección de acceso que muestra el script.

Despliegue manual ​

Cuando el script de un solo comando no esté disponible o necesite una orquestación personalizada, puede desplegar manualmente siguiendo esta sección.

1. Preparar los directorios ​

bash
mkdir -p /var/data/{mysql,redis,java,nginx,zlmedia}

En el despliegue manual debe preparar los siguientes archivos de montaje, que puede obtener del repositorio de código fuente y compilar según el despliegue del sistema (简体中文):

RutaContenido
/var/data/java/fastbee-admin.jarPaquete jar del servicio backend
/var/data/nginx/vueArtefactos de compilación del frontend (vue/dist)
/var/data/nginx/nginx.confConfiguración de Nginx
/var/data/mysql/mysql.cnfConfiguración de MySQL
/var/data/zlmedia/conf/config.iniConfiguración de ZLMediaKit

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. Iniciar los servicios ​

bash
docker-compose up -d
docker-compose ps   # Comprobar el estado de los contenedores

4. Importar la base de datos ​

Importe springboot/sql/fastbee.sql en MySQL.

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

Acceder al sistema ​

Una vez finalizado el despliegue, acceda desde el navegador a:

http://your-server-ip:80
  • Usuario: admin
  • Contraseña: admin123

Aviso de seguridad

Cambie la contraseña predeterminada inmediatamente después del primer inicio de sesión; las contraseñas predeterminadas de la base de datos y de Redis son solo para pruebas locales y deben sustituirse obligatoriamente en producción.

Verificar el despliegue ​

  1. En la salida de docker-compose ps, los contenedores mysql, redis, java, nginx y zlmedia deben estar en estado Up.
  2. Acceda desde el navegador a http://your-server-ip e inicie sesión en la consola con admin / admin123.
  3. Utilice un cliente como MQTTX para conectarse al puerto 1883 y verificar la cadena de integración de dispositivos; los parámetros de conexión y los pasos de prueba están en Integración MQTT.

Preguntas frecuentes ​

Q: ¿Qué hacer si un puerto está ocupado? Modifique el mapeo de puertos en docker-compose.yml; por ejemplo, cambie - 8080:8080 por - 9090:8080.

Q: ¿Cómo consultar los registros?

bash
docker logs -f java   # Registros del servicio backend
docker logs -f mysql  # Registros de la base de datos

Q: ¿Qué hacer si un contenedor se reinicia constantemente? Consulte primero el motivo de la salida con docker logs <nombre-del-contenedor>; las causas habituales son conflictos de puertos, memoria insuficiente o archivos de configuración montados que faltan. En el despliegue manual, compruebe especialmente que todos los archivos de la sección 1 estén en su sitio.

Q: ¿La página no carga o devuelve 502? Confirme que los contenedores nginx y java estén en ejecución. El backend necesita tiempo de inicialización en el primer arranque; compruebe con docker logs -f java que el arranque ha finalizado antes de acceder.

Q: ¿El backend indica un error de conexión con la base de datos? Confirme que el contenedor mysql funciona con normalidad y que la contraseña de root coincide con la configuración del backend; en el despliegue manual, compruebe que haya ejecutado el paso 4 para importar fastbee.sql.

Q: ¿Cómo actualizar? Sustituya /var/data/java/fastbee-admin.jar y reinicie el contenedor:

bash
docker restart java