更新时间 : 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。
使用 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
安装 nvidia container toolkit
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 运行在 ubuntu 16.04 和 cuda 10.1 环境中,nvidia 提供了带有 cuda 和 opengl 的镜像。在 https://hub.docker.com/r/nvidia/cudagl, 可以找到 ubuntu 16.04 + cuda 10.1 的相关镜像以及 Dockerfile。
执行下面的命令拉取镜像
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 出一个镜像
在 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 方法构建镜像
打开 https://hub.docker.com/r/vesdk/render 获取镜像信息
docker pull vesdk/render:10.1-base-ubuntu16.04
服务端渲染 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
安装 nvidia container toolkit
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 运行在 ubuntu 16.04 和 cuda 10.1 环境中,nvidia 提供了带有 cuda 和 opengl 的镜像。在 https://hub.docker.com/r/nvidia/cudagl, 可以找到 ubuntu 16.04 + cuda 10.1 的相关镜像以及 Dockerfile。
执行下面的命令拉取镜像
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 出一个镜像
在 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 方法构建镜像
打开 https://hub.docker.com/r/vesdk/render 获取镜像信息
docker pull vesdk/render:10.1-base-ubuntu16.04