扫一扫咨询方案
首页
登录/注册

{user.username}

ID: {user.id}

模板 SDK 文档

  • 云渲染

    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK

    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK

    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程

    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程

    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南
产品简介
安卓端 SDK
iOS SDK
服务端 SDK
开发指南
Demo 下载
用户常见问题
首页 > 服务端 SDK > 服务端开发接入 > Docker 环境配置

Docker 环境配置

更新时间 : 2021-07-15 09:37:47

服务端渲染 sdk 支持部署在 docker 中运行,本文将介绍部署 docker 相关的步骤和注意事项。本文假设读者已经熟悉并能熟练使用 docker, 所以 docker 相关的使用不会过多介绍。

环境介绍

Docker 的运行环境,一部分依赖于宿主机器的环境,比如 nvidia 显卡,内核版本,编译的 GLIBC 版本。 服务端 sdk 的编译环境如下:

操作系统: ubuntu 16.04 64bit
linux 内核版本: 4.15
GLIBC : 2.23
GLIBCXX :3.4.21
nvidia 显卡驱动: 418.56
cuda 版本: 10.1 
freeimage: libfreeimage3
ffmpeg: 4.1 或以上
opengl: 3.0 或以上

由于 nvidia-docker 实际只是把宿主的 gpu 暴露给 docker 内部使用,docker 实际是在使用宿主的 显卡驱动,要确保宿主的驱动版本能兼容在 docker 使用的 cuda 版本。由于硬解码的接口在 cuda 10.2 中有变化, cuda 的版本必须为 10.1

搭建步骤

安装宿主机器环境

构建运行 VeSdk 的镜像

服务端 VeSdk 运行在 ubuntu 16.04 和 cuda 10.1 环境中,nvidia 提供了带有 cuda 和 opengl 的镜像。在 https://hub.docker.com/r/nvidia/cudagl, 可以找到 ubuntu 16.04 + cuda 10.1 的相关镜像以及 Dockerfile。

方法 1: 在 cudagl 镜像中更改然后 commit 生成镜像
方法 2:编写 Dockerfile 构建镜像
方法 3: 使用 VE 构建好的镜像

打开 https://hub.docker.com/r/vesdk/render 获取镜像信息

docker pull vesdk/render:10.1-base-ubuntu16.04
首页 > 服务端 SDK > 服务端开发接入 > Docker 环境配置
Docker 环境配置
更新时间 : 2021-07-15 09:37:47
  • 云渲染
    • Demo下载
    • SDK
    • 开发指南
    • AI API 文档
    • 开发者 API 文档
    • 控制台指南
    • 快速入门
    • 产品简介
  • 模板SDK
    • 用户常见问题
    • Demo 下载
    • 开发指南
    • 服务端 SDK
    • iOS SDK
    • 安卓端 SDK
    • 产品简介
  • 剪辑SDK
    • Demo下载
    • SDK
    • 开发指南
    • 产品简介
  • 模板制作教程
    • 模板制作进阶教程
    • 测试模板素材案例下载
    • 常见模板制作案例
    • 模板制作教程
    • 模板制作工具下载
    • 入门指南
  • 剪辑制作教程
    • 剪辑特效导出教程
    • 剪辑特效测试素材
    • 剪辑特效制作工具下载
    • 入门指南

服务端渲染 sdk 支持部署在 docker 中运行,本文将介绍部署 docker 相关的步骤和注意事项。本文假设读者已经熟悉并能熟练使用 docker, 所以 docker 相关的使用不会过多介绍。

环境介绍

Docker 的运行环境,一部分依赖于宿主机器的环境,比如 nvidia 显卡,内核版本,编译的 GLIBC 版本。 服务端 sdk 的编译环境如下:

操作系统: ubuntu 16.04 64bit
linux 内核版本: 4.15
GLIBC : 2.23
GLIBCXX :3.4.21
nvidia 显卡驱动: 418.56
cuda 版本: 10.1 
freeimage: libfreeimage3
ffmpeg: 4.1 或以上
opengl: 3.0 或以上

由于 nvidia-docker 实际只是把宿主的 gpu 暴露给 docker 内部使用,docker 实际是在使用宿主的 显卡驱动,要确保宿主的驱动版本能兼容在 docker 使用的 cuda 版本。由于硬解码的接口在 cuda 10.2 中有变化, cuda 的版本必须为 10.1

搭建步骤

安装宿主机器环境

  • 使用 ubuntu 16.04 64 bit 作为宿主机器操作系统

  • 安装显卡驱动

    wget https://download.nvidia.com/XFree86/Linux-x86_64/418.56/NVIDIA-Linux-x86_64-418.56.run
    chmod +x NVIDIA-Linux-x86_64-418.56.run
    ./NVIDIA-Linux-x86_64-418.56.run
    reboot
  • 安装 docker

    参考: https://docs.docker.com/engine/install/ubuntu/

  • 安装 nvidia container toolkit

    参考:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/install-guide.html#container-runtimes

    distribution=$(. /etc/os-release;echo $ID$VERSION_ID) && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
    
    sudo apt-get update
    sudo apt-get install -y nvidia-docker2
    sudo systemctl restart docker

构建运行 VeSdk 的镜像

服务端 VeSdk 运行在 ubuntu 16.04 和 cuda 10.1 环境中,nvidia 提供了带有 cuda 和 opengl 的镜像。在 https://hub.docker.com/r/nvidia/cudagl, 可以找到 ubuntu 16.04 + cuda 10.1 的相关镜像以及 Dockerfile。

方法 1: 在 cudagl 镜像中更改然后 commit 生成镜像
  • 执行下面的命令拉取镜像

    docker pull nvidia/cudagl:10.1-base-ubuntu16.04
  • 启动镜像

    sudo docker run -it  --gpus 'all,"capabilities=compute,utility,graphics,video,display"' nvidia/cudagl:10.1-devel-ubuntu16.04 /bin/bash
    
    # 执行 nvidia-smi 能看到驱动的相关信息, 说明运行成功。
  • 进入容器后安装相应的依赖

    apt update 
    && apt-get -y install software-properties-common 
    && add-apt-repository -y  ppa:jonathonf/ffmpeg-4 
    && apt-get update 
    && apt-get -y install ffmpeg 
    && apt-get -y install libfreeimage3
  • 退出后添加应用需要的参数

  • 根据需要决定在此基础上 commit 出一个镜像

方法 2:编写 Dockerfile 构建镜像
  • 在 nvidia/cudagl 的基础上编写的 Dockerfile 如下:

    FROM nvidia/cudagl:10.1-base-ubuntu16.04
    LABEL maintainer "vetools<vetools@seeshiontech.com>"
    
    RUN  rm /etc/apt/sources.list.d/cuda.list && rm /etc/apt/sources.list.d/nvidia-ml.list 
        && apt-get update 
        && apt-get -y install software-properties-common 
        && add-apt-repository -y ppa:jonathonf/ffmpeg-4 
        && apt-get update  
        && apt-get -y install ffmpeg 
        && apt-get install -y libfreeimage3 
    
    # 根据需要自行添加其他命令
  • 运行 docker build 方法构建镜像

方法 3: 使用 VE 构建好的镜像

打开 https://hub.docker.com/r/vesdk/render 获取镜像信息

docker pull vesdk/render:10.1-base-ubuntu16.04