Docker 部署
目标:从打开 cmd 和 SSH 登录 VPS 开始,用 Docker Compose 在服务器上跑起 huangxd-/danmu_api,改好 TOKEN 和 ADMIN_TOKEN,最后直接用浏览器访问测试。
这页只讲命令行主线。服务跑通后,直接接着看 Docker 绑定域名、反代与 HTTPS。
先把这 4 项准备好,后面会反复用到:
- 服务器公网 IP
- SSH 用户名,例如
root或ubuntu - SSH 密码
- SSH 端口;如果服务商没单独写,一般就是
22
第 1 步:如果你用 Windows,先打开 cmd
Section titled “第 1 步:如果你用 Windows,先打开 cmd”按这个顺序做:
- 按键盘上的
Win键 - 输入
cmd - 点
命令提示符
如果你用的是 macOS 或 Linux,就打开系统自带的终端;后面这一步的 SSH 命令同样可以照着执行。

cmd 打开,后面的 SSH 命令就在这个窗口里执行。第 2 步:在终端里先用 SSH 登录 VPS
Section titled “第 2 步:在终端里先用 SSH 登录 VPS”如果 SSH 端口就是默认的 22,执行:
ssh root@你的服务器IP如果服务商给的是其他端口,就执行:
ssh -p 端口 root@你的服务器IP这一步要这样替换:
root换成服务商给你的 SSH 用户名;如果你拿到的是ubuntu,这里就写ubuntu你的服务器IP换成服务器公网 IP端口换成服务商给你的 SSH 端口
第一次连接时,终端通常会询问是否继续,输入 yes,再回车。
如果后面要求输入密码,窗口里通常不会显示星号,也不会回显字符;直接输入密码,再回车就行,这是正常现象。
登录成功后,命令行前面的样子一般会变成类似 root@你的服务器:~# 这种 Linux 提示符;看到这种变化,再继续下一步。

第 3 步:先装 Docker 和 Docker Compose
Section titled “第 3 步:先装 Docker 和 Docker Compose”下面 3 组安装方式只选 1 组,不要 3 组都执行。 每次只复制当前这一条,等终端重新回到提示符,再继续下一条。
- 官方网络正常:用 Docker 官方脚本
- 国内 VPS 拉取慢:用 LinuxMirrors 的 Docker 脚本
- 机器刚装好,想顺手换系统源再装 Docker:用 OCSS 脚本
官方网络正常时,用这个
Section titled “官方网络正常时,用这个”先装 Docker:
curl -fsSL https://get.docker.com | sudo bash再装 nano:
sudo apt install -y nano国内 VPS 拉取慢时,用这个
Section titled “国内 VPS 拉取慢时,用这个”先装 Docker:
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)再装 nano:
sudo apt install -y nano想先换源再装 Docker 时,用这个
Section titled “想先换源再装 Docker 时,用这个”先跑脚本:
bash <(curl -sSL https://cdn.jsdelivr.net/gh/Master08s/ocss@latest/main.sh)再装 nano:
sudo apt install -y nano装好后再按顺序确认:
docker --versiondocker compose versiondocker —version 和 docker compose version 的版本号,再继续下一步。第 4 步:创建部署目录
Section titled “第 4 步:创建部署目录”后面统一在这个目录里操作,按顺序执行:
mkdir -p ~/danmu-apicd ~/danmu-apipwd~/danmu-api 里执行。第 5 步:创建 docker-compose.yml
Section titled “第 5 步:创建 docker-compose.yml”先回到部署目录:
cd ~/danmu-api再打开文件:
nano docker-compose.yml把下面这段内容原样粘贴进去:
services: danmu-api: image: logvar/danmu-api:latest container_name: danmu-api ports: - "9321:9321" volumes: - ./config:/app/config - ./.cache:/app/.cache restart: unless-stopped粘贴完以后按这个顺序保存:
-
Ctrl + O - 回车
-
Ctrl + X
第 6 步:第一次启动
Section titled “第 6 步:第一次启动”先启动服务:
docker compose up -d再看容器状态:
docker compose ps只要状态是 Up,就继续下一步。
docker compose ps。只要容器已经起来,就继续去改 config/.env。第 7 步:打开 config/.env,只改这两项
Section titled “第 7 步:打开 config/.env,只改这两项”第一次启动完成后,宿主机的 ~/danmu-api/config/.env 一般会自动生成。
现在直接打开它:
cd ~/danmu-apinano config/.env先确认这两项:
TOKEN=87654321# ADMIN_TOKEN=改成你自己的后台口令建议这样处理:
TOKEN先保持87654321- 把
ADMIN_TOKEN改成自己的值 - 如果
ADMIN_TOKEN这一行前面带#,先把#删除再保存
保存顺序:
-
Ctrl + O - 回车
-
Ctrl + X
正常保存后,一般不用重启。 如果保存后页面还是旧值,再手动执行一次:
docker compose restart danmu-apidocker compose psTOKEN 和 ADMIN_TOKEN。这一步不用自己手搓一份新的 .env。第 8 步:做部署后自检
Section titled “第 8 步:做部署后自检”容器启动后,不在这里重复写测试细节,直接按 部署后自检 继续检查首页、弹幕测试和管理员入口。
第 9 步:需要自动更新的话,再单独加 Watchtower
Section titled “第 9 步:需要自动更新的话,再单独加 Watchtower”先创建 Watchtower 目录:
mkdir -p ~/danmu-api-watchtower再进入目录:
cd ~/danmu-api-watchtower再打开配置文件:
nano docker-compose.yml把下面这段内容原样粘贴进去:
services: watchtower: image: nickfedor/watchtower container_name: watchtower-gx restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock environment: - TZ=Asia/Shanghai command: - --cleanup - --interval - "12600" - danmu-api保存后再按顺序启动:
cd ~/danmu-api-watchtowerdocker compose up -ddocker compose psdocker compose logs --tail=30 watchtower这里虽然 Watchtower 放在另一个目录里,但它监控的还是前面主服务目录里启动出来的 danmu-api 容器。
只要下面两项没改错,就能正常监控:
container_name还是danmu-api/var/run/docker.sock:/var/run/docker.sock还保留着
docker compose ps 里容器已经起来,再看日志里有没有下一次检查时间;有的话就说明 Watchtower 已经正常工作。第 10 步:以后想手动更新
Section titled “第 10 步:以后想手动更新”先回到主服务目录:
cd ~/danmu-api再拉最新镜像:
docker compose pull最后重新启动:
docker compose up -d最常见的 3 个问题
Section titled “最常见的 3 个问题”1)浏览器打不开
Section titled “1)浏览器打不开”先检查这两个地方有没有放行 9321:
- 服务器自己的防火墙
- 云厂商安全组
如果当前机器用的是 UFW,可以先执行:
sudo ufw allow 9321/tcp2)docker compose 提示找不到命令
Section titled “2)docker compose 提示找不到命令”说明 Docker Compose 插件没有装好,回到第 3 步重新执行你选的那组安装命令即可。
3)Watchtower 没启动
Section titled “3)Watchtower 没启动”如果你是单独目录部署的,就按这个顺序检查:
~/danmu-api-watchtower/docker-compose.yml里是不是写的image: nickfedor/watchtower/var/run/docker.sock:/var/run/docker.sock有没有保留- 日志里有没有正常看到下一次检查时间
这页做完后,下一步看哪里
Section titled “这页做完后,下一步看哪里”参考来源:huangxd-/danmu_api README、GeeksforGeeks 的 Windows 命令提示符教程页面、LinuxMirrors Docker 脚本、Master08s / OCSS 社区脚本、Docker 官方安装文档、Server World 的 SSH 截图,以及本次按正文真实命令整理的终端实操图。
纠错与建议
这一步有问题?
可以直接提交纠错或建议。我会按页面和步骤整理处理。
教程反馈