你用了 Docker, 但是有沒有先創建永久性的儲存區?
(Container 的儲存區都是暫時性的, 關機就會消失)
請把你的 Docker 指令, 或是 compose.yml 貼上來看看?
你不可能只輸入了 docker 這六個英文字, 就能讓他跑起來;
docker 後面一定跟了一大串參數, 你的問題就在那一堆參數裡面.
(請看樓下貼了多少參數出來? 你沒下這些參數, 連跑都跑不動)
官網就以下參數沒了
mkdir librenms
cd librenms
wget https://github.com/librenms/docker/archive/refs/heads/master.zip
unzip master.zip
cd docker-master/examples/compose
sudo docker compose -f compose.yml up -d
根據你貼的這段文字, 我們得知: 參數都寫在 compose.yml 這個檔案裡面了 (指令中間的 -f compose.yml 就是在讀取這個參數檔案)
我一開頭不是已經跟你說:
把 compose.yml 的內容貼出來看, 才會知道他下了甚麼參數?
所以, 請把完整的 compose.yml 內容貼上來, 讓大家偵錯看看 (他是一個文字檔, 你下 cat compose.yml 指令就可以看到內容), 否則我們無法得知: 你的 docker compose 到底讀取了甚麼東西來執行?
若你是 Docker 安裝的 LibreNMS
這是最常見原因
問題:
Docker 沒有綁定持久化 Volume。
也就是容器重啟或主機重啟後,容器裡的 /data、/opt/librenms、/var/lib/mysql 都會被清空。
解法:
找出你的 docker-compose.yml
通常在 /opt/librenms/ 或 /home//librenms/。
確認其中 有設定 volume 掛載:
services:
librenms:
image: librenms/librenms:25.4.0
volumes:
- ./data:/data
- ./logs:/opt/librenms/logs
- ./rrd:/opt/librenms/rrd
以及:
mysql:
image: mariadb:10.6
volumes:
- ./mysql:/var/lib/mysql
如果沒有這些 volumes:,請補上並重建:
docker compose down
docker compose up -d
檢查權限:
sudo chown -R 1000:1000 ./data ./logs ./rrd ./mysql
確認資料真的被保存:
docker exec -it librenms bash
ls -l /data
如果你看到 .env、config.php、snmpd.conf 等檔案就代表有保存。