前言
最近这段时间感觉unifi-controller使用起来有点小bug小问题,不过也没有影响到网络就没有太在意,直到早两天看了下docker下的image发现unifi-controller这个镜像包竟然都是今年1月的,大半年都没有自动更新了。 最开始还以为是linuxserver摆烂了,要不就换回jacobalberty的镜像包好了,直到我找到这个声明 https://info.linuxserver.io/issues/2023-09-06-unifi-controller/
大概就是说由于什么原因,unifi-controller不更新了,要换到unifi-network-application这个镜像,需要数据库支持。
不是,我就两个ap两个sw,这咋还要外挂数据库呢,最开始想着换回到jacobalberty算了,但是去他家的镜像页面看了下,虽然一直在更新,好像支持的版本也不高,那数据库就数据库吧,还是更换到linuxserver的unifi-network-application吧。
步骤
首先需要备份配置,备份之后就先把docker里的旧容器直接删了,反正删了容器也不影响设备和网络的使用,为了不引起端口冲突,就先删掉容器。
1:创建一个数据库文件夹
mkdir /opt/mongo
mkdir /opt/mongo/data
2:创建数据库配置文件
cd /opt/mongo
nano init-mongo.js
在文件中输入以下内容
db.getSiblingDB("MONGO_DBNAME").createUser({user: "MONGO_USER", pwd: "MONGO_PASS", roles: [{role: "dbOwner", db: "MONGO_DBNAME"}]});
db.getSiblingDB("MONGO_DBNAME_stat").createUser({user: "MONGO_USER", pwd: "MONGO_PASS", roles: [{role: "dbOwner", db: "MONGO_DBNAME_stat"}]});
3:创建数据库容器
docker run -d \
--name unifi-db \
-v /opt/mongo/data:/data/db \
-v /opt/mongo/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro \
--restart unless-stopped \
docker.io/mongo:3.6.23
4:创建unifi容器
docker run -d \
--name=unifi-network-application \
-e TZ=Asia/Shanghai \
-e MONGO_USER=MONGO_USER \
-e MONGO_PASS=MONGO_PASS \
-e MONGO_HOST=unifi-db \
-e MONGO_PORT=27017 \
-e MONGO_DBNAME=MONGO_DBNAME \
-p 8443:8443 \
-p 3478:3478/udp \
-p 10001:10001/udp \
-p 8080:8080 \
-v /opt/unifi:/config \
--link unifi-db\
--restart unless-stopped \
lscr.io/linuxserver/unifi-network-application:latest
5:恢复备份之后就完成了。
关于新旧镜像的文件夹我试了好像是不通用的,最开始用旧的镜像文件夹是打不开的web页面的,后来我move旧的,重新建了文件夹才打开了web。
完成之后看了下版本,旧的版本是停留在V8.0.24,新的版本是V8.3.32。
来源引用:
1、在Homeassistant OS中运行Unifi-Network-Application
2、linuxserver/unifi-network-application - Docker Image