1.安装服务镜像

  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。

  1. 安装 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
  1. 启动容器
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测试:

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐