龙空技术网

保姆级教程:CentOS. 7.9 + docker + ffmpeg硬件加速的环境配置

墨染流年 64

前言:

当前朋友们对“联想y470centos”大体比较注意,大家都想要剖析一些“联想y470centos”的相关知识。那么小编同时在网摘上搜集了一些对于“联想y470centos””的相关知识,希望朋友们能喜欢,大家一起来学习一下吧!

一、安装docker

1、安装步骤见

2、设置docker随着机器开机自启动

systemctl enable docker.service

3、修改docker的daemon.json

默认情况下在/etc/docker/daemon.json位置,修改内容如下:

{    "default-runtime": "nvidia",    "runtimes": {        "nvidia": {            "path": "nvidia-container-runtime",            "runtimeArgs": []        }    }}

4、重启docker

systemctl restart docker

二、安装驱动前的准备工作

1、查看系统是否有gcc

gcc -v

若无,安装gcc

yum install gcc

2、更新系统内核头文件和开发包

yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)

以及

yum install epel-release

3、禁用nouveau

nouveau是一个第三方开源的Nvidia驱动,一般Linux安装的时候默认会安装这个驱动。 这个驱动会与Nvidia官方的驱动冲突,在安装Nvidia驱动和和CUDA之前应先禁用nouveau。

查看系统是否正在使用nouveau

lsmod | grep nouveau

如果有输出内容,则表示存在,需要禁掉,执行如下命令:

vim /etc/modprobe.d/blacklist-nouveau.conf# 填写如下内容blacklist nouveauoptions nouveau modeset=0# 填写如上内容#备份当前的镜像mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bakdracut --force /boot/initramfs-$(uname -r).img $(uname -r)# 重启宿主机reboot

# 系统开机后再次验证是否存在

lsmod | grep nouveau

三、安装nvidia driver

1、查看宿主机上的GPU信息

lspci | grep -I nvidia

2、查看系统信息

uname -m && cat /etc/redhat-release

3、下载driver

下载页面为

这里GPU是T4系列的,操作系统选择的RHEL 7(CentOS 7),cuda版本选择11.4,然后按照提示下载rpm包。

4、安装

执行下面命令安装

rpm -i nvidia-driver-local-repo-rhel7-470.161.03-1.0-1.x86_64.rpmyum clean allyum install cuda-drivers# 最后重启下宿主机reboot

重启机器后,可以执行nvidia-smi查看驱动的信息了。

四、安装cuda

1、下载

在页面上选择合适版本的cuda,比如11.4的,然后选择相关的平台:

这里选择rpm(local),即本地rpm安装 。

2、安装

执行如下命令进行安装:

rpm -i cuda-repo-rhel7-11-4-local-11.4.0_470.42.01-1.x86_64.rpmyum clean allyum -y install nvidia-driver-latest-dkms cudayum -y install cuda-drivers

如果安装过程中出现conflict信息,可以加上参数--skip-broken跳过。

五、构造一个带有cuda和硬件加速选项的docker镜像

1、基础镜像的选择

使用镜像,根据宿主机的系统和GPU情况选择合适的镜像tag,比如4.4-nvidia1804,表示是基于ubuntu18.04操作系统实现的带nvida 编解码器。

docker pull jrottenberg/ffmpeg:4.4-nvidia1804

2、运行容器

docker run --runtime=nvidia -e TZ="Asia/Shanghai" -itd --entrypoint='bash' --restart=always --name ffmpeg-nvidia -v /Users/zy/work/data/ffmpeg:/opt/data/ffmpeg jrottenberg/ffmpeg:4.4-nvidia1804

3、观察GPU的消耗情况

宿主机上另开一个终端窗口,输入如下命令观察GPU的消耗情况:

watch -n 3 nvidia-smi

表示每隔3秒更新一次GPU消耗情况,比如当ffmpeg命令执行时候,GPU的内存会有明显消耗。

六、其他

1、让ffmpeg容器环境也支持java运行

在容器内部执行:

apt-get install openjdk-8-jdk

2、保存新容器

退出上面运行中容器,然后保存运行中容器为一个新镜像,比如:

docker commit ffmpeg-nvidia ffmpeg-nvidia-jdk:1.0

标签: #联想y470centos