使用 docker-compose 的简单 Unifi 控制器设置
更新 2022-12-24:添加了 --bind_ip 127.0.0.1 以防止在 network_mode: host 上下文中的远程 MongoDB 访问。感谢 Matt Johnson 的建议 :-)
此设置使用 network_mode: host 运行 MongoDB 和 unifi,这就是我们在非标准端口上运行 MongoDB 的原因(这样它不会干扰其他 MongoDB 实例)。这具有允许直接第 2 层网络访问以实现 L2 接入点采用的巨大好处。
创建一个目录如 /opt/unifi 并创建 docker-compose.yml
docker-compose.yml
services:
mongo:
image: mongo:3.6
network_mode: host
restart: always
volumes:
- ./mongo_db:/data/db
- ./mongo/dbcfg:/data/configdb
command: mongod --bind_ip 127.0.0.1 --port 29718
controller:
image: "jacobalberty/unifi:latest"
depends_on:
- mongo
init: true
network_mode: host
restart: always
volumes:
- ./unifi_dir:/unifi
- ./unifi_data:/unifi/data
- ./unifi_log:/unifi/log
- ./unifi_cert:/unifi/cert
- ./unifi_init:/unifi/init.d
- ./unifi_run:/var/run/unifi
- ./unifi_backup:/unifi/data/backup
environment:
- DB_URI=mongodb://localhost:29718/unifi
- STATDB_URI=mongodb://localhost:29718/unifi_stat
- DB_NAME=unifi
logs:
image: bash
depends_on:
- controller
command: bash -c 'tail -F /unifi/log/*.log'
restart: always
volumes:
- ./unifi_log:/unifi/log现在创建具有正确权限的目录:
setup_unifi_dirs.sh
mkdir -p unifi_backup unifi_cert unifi_data unifi_dir unifi_init unifi_log unifi_run
chown -R 999:999 unifi_backup unifi_cert unifi_data unifi_dir unifi_init unifi_log unifi_run现在你可以使用我们来自在 10 秒内为你的 docker-compose 项目创建 systemd 服务的脚本在启动时自动启动控制器(并立即启动它):
install_service.sh
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdin现在访问 https://<控制器 IP>:8443 以开始设置或导入备份。
Check out similar posts by category:
Docker, Networking
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow