skip to content
Logo hxjx blog

纯ipv6的vps用docker-compose.yml部署双面板和openlist

/ 9 min read

一、准备工作

1. 一台 NAT VPS:确保您可以通过 SSH 正常登录

2. 一个域名:并且必须将这个域名的 DNS 管理权交给 Cloudflare

二、安装 Docker 和 Docker Compose (运行环境)

在安装面板之前,我们需要先在您的 NAT VPS 上安装 Docker 运行环境

1. SSH 登录到您的 NAT VPS

2. 安装 nano 对于 Debian / Ubuntu 系统 (最常见),只需要执行一行命令来安装它:

Terminal window
apt-get update && apt-get install -y nano

3. 执行 Docker 官方一键安装脚本:

Terminal window
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

这个脚本会自动检测您的系统,并安装最新版本的 Docker Engine 和 Docker Compose 插件

4. 验证安装:

Terminal window
docker version
Terminal window
docker compose version

如果您能看到版本号输出而没有报错,说明安装成功

三、安装并配置Komari和nezha双面板

1. 两种方式配置安装

1.1 一键生成docker-compose.yml

文件为了避免任何格式错误,请完整复制下面这个灰色代码框里的所有内容,将您的个人信息替换进去,然后一次性粘贴到您的SSH终端中,按回车键

Terminal window
cat > /etc/cloudflared/config.yml <<EOF
services:
# Komari 面板服务
komari:
container_name: komari
image: ghcr.io/komari-monitor/komari:latest
network_mode: "host"
volumes:
- ./komari_data:/app/data
environment:
- TZ=Asia/Shanghai
- ADMIN_USERNAME=帐号
- ADMIN_PASSWORD=密码
restart: unless-stopped
# 哪吒面板服务
nezha:
container_name: nezha
image: ghcr.io/nezhahq/nezha:latest
network_mode: "host"
volumes:
- ./nezha_data:/dashboard/data
restart: unless-stopped
# 如果需要配置环境变量,请在这里添加
# environment:
# - NZ_HOST=域名
# - NZ_TLS=0
# openlist服务
openlist:
container_name: openlist
image: openlistteam/openlist:latest
network_mode: "host"
environment:
- TZ=Asia/Shanghai
- OPENLIST_ADMIN_PASSWORD=密码
volumes:
- ./oplist_data:/opt/openlist/data
restart: unless-stopped
# 这里不再需要 volumes: 部分,因为你只用了绑定挂载
EOF

1.2 输入以下命令来打开 docker-compose.yml 文件

Terminal window
nano docker-compose.yml

粘贴以下内容:

Terminal window
version: '3.8'
services:
# Komari 面板服务
komari:
container_name: komari
image: ghcr.io/komari-monitor/komari:latest
network_mode: "host"
volumes:
- ./komari_data:/app/data
environment:
- TZ=Asia/Shanghai
- ADMIN_USERNAME=帐号
- ADMIN_PASSWORD=密码
restart: unless-stopped
# 哪吒面板服务
nezha:
container_name: nezha
image: ghcr.io/nezhahq/nezha:latest
network_mode: "host"
volumes:
- ./nezha_data:/dashboard/data
restart: unless-stopped
# 如果需要配置环境变量,请在这里添加
# environment:
# - NZ_HOST=ne.363689.xyz
# - NZ_TLS=0
# openlist服务
openlist:
container_name: openlist
image: openlistteam/openlist:latest
network_mode: "host"
environment:
- TZ=Asia/Shanghai
- OPENLIST_ADMIN_PASSWORD=密码
volumes:
- ./oplist_data:/opt/openlist/data
restart: unless-stopped
# 这里不再需要 volumes: 部分,因为你只用了绑定挂载

清空旧内容: 使用键盘上的方向键移动光标到文件开头,然后连续按 Ctrl + K 来剪切(删除)整行,直到文件变为空白

保存: 按下 Ctrl + O(不是零),然后按 Enter 键确认文件名。

退出: 按下 Ctrl + X 退出 nano 编辑器

1.3 设置./oplist_data文件夹的权限,确保 Openlist 容器可以正常读写

Terminal window
sudo chown -R 1001:1001 ./oplist_data

1.4 启动面板服务

Terminal window
docker compose up -d

1.5 补充监控自动拉取更新的方法

Terminal window
version: '3.8'
services:
# Komari 面板服务
komari:
container_name: komari
image: ghcr.io/komari-monitor/komari:latest
network_mode: "host"
volumes:
- ./komari_data:/app/data
environment:
- TZ=Asia/Shanghai
- ADMIN_USERNAME=帐号
- ADMIN_PASSWORD=密码
restart: unless-stopped
# 哪吒面板服务
nezha:
container_name: nezha
image: ghcr.io/nezhahq/nezha:latest
network_mode: "host"
volumes:
- ./nezha_data:/dashboard/data
restart: unless-stopped
# 如果需要配置环境变量,请在这里添加
# environment:
# - NZ_HOST=域名
# - NZ_TLS=0
watchtower:
# 默认监控全部容器
image: containrrr/watchtower:latest
container_name: watchtower
restart: always
environment:
- TZ=Asia/Shanghai
- WATCHTOWER_INTERVAL=3600
# - WATCHTOWER_SCHEDULE=0 0 6 * * * # cron方式
network_mode: host
volumes:
- /var/run/docker.sock:/var/run/docker.sock

四、通过回源方式访问面板

具体方法参考openlist的设置方法

1.域名dns添加AAAA记录

2.创建规则

2.1 规则名称
2.2 当传入请求匹配时
字段运算符
主机名等于域名
2.3目标端口重写到

8008(nazhe)

25774(komari)

2544(openlist)

五、部署成功后备份、恢复、删除数据

1、备份数据

Terminal window
cp -r ./nezha_data ./nezha_data_backup

2. 恢复数据

2.1 停止服务:
Terminal window
docker compose down
2.2 恢复文件:
Terminal window
cp -r ./nezha_data_backup/. ./nezha_data/

最后的 /. 是为了确保所有内容(包括隐藏文件)都被复制

2.3 启动服务:
Terminal window
docker compose up -d

3. 删除数据

3.1 停止服务:
Terminal window
docker compose down
3.2 删除命令
Terminal window
rm -r ./nezha_data

rm -r 是一个不可逆的操作,请务必确认你备份了数据再执行

4. 转移数据

4.1 在旧服务器上备份

首先,在新旧服务器上都停止哪吒面板的服务,避免数据冲突

Terminal window
docker compose down

在旧服务器上,进入 docker-compose.yml 所在的目录,将 nezha_data 文件夹打包成一个压缩文件

Terminal window
tar -czvf nezha_data_backup.tar.gz ./nezha_data

tar -czvf:这是一个打包和压缩命令,将文件夹打包成 .tar.gz 文件

4.2 将备份文件传输到本地

使用 scp 命令来传输文件。在你的本地电脑上打开终端,运行:

Terminal window
scp root@<旧服务器IP>:/path/to/nezha_data_backup.tar.gz .
  • <旧服务器IP>:替换成你旧服务器的 IP 地址。

  • /path/to/:替换成 nezha_data_backup.tar.gz 文件在旧服务器上的路径。

4.3 将备份文件上传到新服务器

在你的本地电脑上打开终端,运行:

Terminal window
scp ./nezha_data_backup.tar.gz root@<新服务器IP>:/path/to/
4.4 在新服务器上恢复

进入你上传 nezha_data_backup.tar.gz 文件的目录。

解压缩文件。

Terminal window
tar -xzvf nezha_data_backup.tar.gz

确保 nezha_data 文件夹的内容已经正确解压到 docker-compose.yml 文件所在的目录

重启服务

5. 使用 pwd 和 ls 命令查看文件

5.1 pwd:查看当前目录路径
Terminal window
pwd

pwd (Print Working Directory) 命令用于显示你当前所在的目录的完整路径。

5.2 ls:查看当前目录文件
Terminal window
ls -l

-l 参数会显示文件的详细信息,包括权限、所有者、大小和修改日期

5.3 find:查找文件路径
Terminal window
find / -name "your_file_name"

/:表示从根目录开始搜索。

“your_file_name”:替换成你想要查找的实际文件名。

六、更新镜像

1 拉取最新镜像

Terminal window
docker pull nezhahq/nezha:latest

2. 重新创建容器

Terminal window
docker compose up -d --force-recreate
  • docker compose up -d 会在后台启动你的服务。

  • —force-recreate 会强制 Docker 重新创建容器,即使容器的配置没有改变。这确保了你的服务会使用刚刚拉取的最新镜像

七、哪吒面板设置

1. 修改面板密码

2. Agent对接地址【域名/IP:端口】

如:[2a14:67c1:a070:2::71]:8008

八、探针安装

1. komari探针

1.1 通用安装命令:

Terminal window
bash <(curl -sL https://raw.githubusercontent.com/komari-monitor/komari-agent/refs/heads/main/install.sh) -e https://km.363689.xyz --auto-discovery 65XYUFUXSTekd98agpiDfW5L

1.2 到期通用安装:

Terminal window
bash <(curl -sL https://raw.githubusercontent.com/komari-monitor/komari-agent/refs/heads/main/install.sh) -e https://km.363689.xyz --auto-discovery 65XYUFUXSTekd98agpiDfW5L --valid-until 2026-12-31T00:00:00Z

1.3 删除探针

  • 停止并禁用服务
Terminal window
# 停止服务
sudo systemctl stop komari-agent
# 禁用服务,使其不再开机自启
sudo systemctl disable komari-agent
  • 删除服务文件
Terminal window
sudo rm /etc/systemd/system/komari-agent.service
sudo systemctl daemon-reload
  • 确认无任何自定义修改可以使用一行命令一键删除
Terminal window
sudo systemctl stop komari-agent && sudo systemctl disable komari-agent && sudo rm -f /etc/systemd/system/komari-agent.service && sudo systemctl daemon-reload && sudo rm -rf /opt/komari /var/log/komari

2. 哪吒探针

1.1 ipv4安装命令:

Terminal window
curl -L https://raw.githubusercontent.com/nezhahq/scripts/main/agent/install.sh -o agent.sh && chmod +x agent.sh && env NZ_SERVER=nf.363689.xyz:80 NZ_TLS=false NZ_CLIENT_SECRET=IW0S5ke8JHvHoLF2EsCp5cpJcmwlc7TD ./agent.sh

1.2 ipv6安装命令:

Terminal window
curl -L https://raw.githubusercontent.com/nezhahq/scripts/main/agent/install.sh -o agent.sh && chmod +x agent.sh && env NZ_SERVER=[2a14:67c1:a070:2::71]:8008 NZ_TLS=false NZ_CLIENT_SECRET=O52OhEOrEMdmPKawD3tklh0YZJpNfoDJ ./agent.sh

1.3 恢复uuid安装参数:

NZ_UUID=xxxxxxx

1.4 删除探针

  • 停止并卸载服务:
Terminal window
cd /opt/nezha/agent/
./nezha-agent service uninstall
  • 删除 Agent 文件夹:
Terminal window
rm -rf /opt/nezha/agent/
  • 如果安装了多个服务并想要全部卸载,可以使用 Agent 安装脚本的卸载功能:
Terminal window
./agent.sh uninstall