课堂质量诊断服务部署(Nvidia版本)
摘要:本文介绍了课堂质量诊断服务的Docker部署流程,包括:1)通过SCP或百度网盘传输镜像文件;2)安装Docker及相关依赖;3)加载Docker镜像并验证;4)安装配置nvidia-container-toolkit以支持GPU加速;5)多容器负载均衡部署方案;6)Nginx反向代理配置方法。特别针对Kylin系统提供了USTC镜像源配置方案,并详细说明了防火墙配置、容器日志查看等运维操作
1.安装服务镜像
- 使用U盘或SCP方式将tar镜像文件传输到目标服务器指定目录
百度网盘链接: https://pan.baidu.com/s/wrh1Kf0RqLN4Z9vxrB-a90dlfg?pwd=9ctf 提取码: 9ctf

scp speaker_v1.0.tar wzhpc@188.18.18.149:/opt/jyd01/wangruihua/

2.在目标服务器上加载镜像
SSH 登录到目标服务器,并运行以下命令以加载镜像:
docker load -i wzhpc@188.18.18.149:/opt/jyd01/wangruihua/speaker_v1.0.tar
如果不成功需要验证服务器是否安装docker:
docker --version
2. 安装 Docker
(1)更新软件包索引
sudo apt update

(2)通过 apt 安装 Docker 社区版:
sudo apt install docker.io -y

(3)验证安装
安装完成后,检查 Docker 版本以确认安装成功:
docker --version

(4)启动并设置 Docker 开机自启
sudo systemctl start docker
sudo systemctl enable docker
3. 检查docker服务状态:
sudo systemctl status docker
如果服务未运行,则重新启动 Docker:
sudo systemctl start docker
4. 加载 Docker 镜像
安装 Docker 后,以管理员权限加载 .tar 文件:
sudo docker load -i speaker_v1.0.tar

如果不成功需要开启管理员权限
sudo -s
5. 测试 Docker 镜像
加载镜像后,检查是否成功:
docker images
如果镜像加载成功,将会看到 speaker:v1.0。
- 安装 nvidia-container-toolkit 工具
使用 docker 运行该程序需要用到GPU, 需要使用 nvidia-container-toolkit 工具。需要使用国内镜像源安装,流程:
- 先下载镜像 gpgkey
sudo apt update
sudo apt install -y curl gnupg
curl -fsSL https://mirrors.ustc.edu.cn/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
②配置中国科技大学(USTC) 镜像 APT 源
curl -s -L https://mirrors.ustc.edu.cn/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://nvidia.github.io#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://mirrors.ustc.edu.cn#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

③ 更新 APT 包列表
sudo apt-get update

④ 安装 NVIDIA Container Toolkit
sudo apt-get install -y nvidia-container-toolkit

⑤ 验证安装
nvidia-container-cli --version

⑥ 重启docker
sudo systemctl restart docker
- 启动容器
docker run --gpus all -d -p 8006:8006 -p 8003:8003 --restart always --name jyd_speaker_container jyd_speaker:v1.0
![]()
查看是否启动:
docker ps

查看容器日志:
docker logs speaker_container

进入容器,检查日志情况:
docker exec -it speaker_container bash
进入日志目录:
cd logs/
查看日志详情:
tail -f nohup_8006.log

Kylin系统(基于 CentOS)安装nvidia-container-toolkit。解决方案
无法访问 GitHub安装,我们可以使用 中国科技大学(USTC)或清华 TUNA 镜像,手动配置 YUM 源并安装 nvidia-container-toolkit。
sudo vi /etc/yum.repos.d/nvidia-docker.repo
✅ 你要粘贴的内容是(使用中国科技大学 USTC 镜像):
[nvidia-docker]
name=NVIDIA Docker Repository (USTC Mirror)
baseurl=https://mirrors.ustc.edu.cn/nvidia-docker/centos7/x86_64
enabled=1
gpgcheck=0
✅ 然后继续执行以下命令安装:
sudo yum clean all
sudo yum makecache
sudo yum install -y nvidia-container-toolkit



✅ 最后配置 Docker 使用 NVIDIA runtime:
sudo vi /etc/docker/daemon.json
内容如下(如果文件不存在就新建):
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "nvidia-container-runtime",
"runtimeArgs": []
}
}
}
保存并退出后重启 Docker:
sudo systemctl restart docker
多容器启动与负载均衡
复制容器内文件到宿主机
docker cp jyd_speaker_gpu0:/app/. /opt/jyd01/wangruihua/jyd_speaker/
docker compose分为插件版和独立安装版
docker compose 命令启动(暂时不可用,需要安装docker-compose):
cp docker-compose.yml docker-compose_backup.yml
rm docker-compose.yml
nano docker-compose.yml
分别启动4个容器:
容器 1:使用 GPU 0
docker run --gpus '"device=0"' -d -p 8104:8006 -p 8003:8003 -v /opt/jyd01/wangruihua/jyd_speaker:/app --restart always --name jyd_speaker_gpu0 jyd_speaker:v1.0
容器 2:使用 GPU 1
docker run --gpus '"device=1"' -d -p 8105:8006 -v /opt/jyd01/wangruihua/jyd_speaker:/app --restart always --name jyd_speaker_gpu1 jyd_speaker:v1.0
容器 3:使用 GPU 2
docker run --gpus '"device=2"' -d -p 8106:8006 -v /opt/jyd01/wangruihua/jyd_speaker:/app --restart always --name jyd_speaker_gpu2 jyd_speaker:v1.0
容器 4:使用 GPU 3
docker run --gpus '"device=3"' -d -p 8107:8006 -v /opt/jyd01/wangruihua/jyd_speaker:/app --restart always --name jyd_speaker_gpu3 jyd_speaker:v1.0
打开防火墙:
部分服务器开启了防火墙
输入以下命令来允许TCP端口8104的入站连接:
sudo ufw allow 8104/tcp
Apipost测试四个容器:
配置nginx负载分发:
安装nginx
在 Ubuntu / Debian 系统上安装 Nginx 可以按以下步骤来:
1. 更新系统软件包
sudo apt update
sudo apt upgrade -y
这能确保你安装的是最新版本的 Nginx 及其依赖。
2. 安装 Nginx
sudo apt install nginx -y
安装完成后,Nginx 会自动启动。
3. 检查 Nginx 状态
systemctl status nginx
看到 active (running) 说明运行正常,按 q 退出状态查看。
4. 启动 / 停止 / 重启 Nginx
sudo systemctl start nginx # 启动
sudo systemctl stop nginx # 停止
sudo systemctl restart nginx # 重启
sudo systemctl reload nginx # 平滑加载配置
5. 设置开机自启
sudo systemctl enable nginx
6. 测试 Nginx
在浏览器访问你的服务器 IP,例如:
http://服务器IP
能看到 Welcome to nginx! 页面说明安装成功。
复制jyd_speaker/configs/speaker.conf到/etc/nginx/conf.d/speaker.conf
或者新建文件speaker.conf:
# 使用 audioid 参数做一致性 hash 路由
upstream speaker_backend{
hash $arg_audioid consistent;
server 127.0.0.1:8104;
server 127.0.0.1:8105;
server 127.0.0.1:8106;
server 127.0.0.1:8107;
}
server {
listen 8006;
server_name _;
location / {
proxy_pass http://speaker_backend;
# 保留客户端信息
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 确保 POST 请求数据被完整转发
proxy_set_header Content-Length $content_length;
proxy_set_header Content-Type $content_type;
proxy_pass_request_body on;
proxy_pass_request_headers on;
}
}
修改最大文件上传限制:
检查nginx语法
sudo nginx -t

重启nginx
sudo nginx -s reload
Apipost测试:


更多推荐


所有评论(0)