docker环境部署

1. 拉取基础镜像

项目所需cuda10.2+cudnn7.6.5+ubuntu18.04

cpp 复制代码
docker pull docker.1ms.run/misterlong/cuda:cuda10.2-cudnn7.6.5-torch1.10-miniconda3-devel-ubuntu18.04

镜像地址:cuda10.2

找了一个镜像源地址拉取成功毫秒镜像

2.运行docker

拉取成功后

bash 复制代码
docker image ls

查看拉取的image

bash 复制代码
docker run --gpus all -it --name my_base_env \
  docker.1ms.run/misterlong/cuda:cuda10.2-cudnn7.6.5-torch1.10-miniconda3-devel-ubuntu18.04

即进入docker中

3.更新cudnn

拉去的镜像为7.6.5,tensorrt需要8+,所以更新cudnn

卸载cudnn
bash 复制代码
dpkg -r libcudnn7-dev libcudnn7
apt autoremove
sudo rm -rf /usr/local/cuda/include/cudnn*.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
验证
bash 复制代码
dpkg -l | grep cudnn
安装cudnn
bash 复制代码
tar -zxvf cudnn-10.2-linux-x64-v8.1.1.33.tgz   
cp cuda/include/cudnn*.h /usr/local/cuda/include/
cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/
chmod a+r /usr/local/cuda/include/cudnn*.h /usr/local/cuda/lib64/libcudnn*
ldconfig
验证
bash 复制代码
cat /usr/local/cuda/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

3. 安装opencv

本地opencv文件传入docker

在宿主机新建终端后

bash 复制代码
docker cp /home/yfzx/下载/opencv4.2.0.zip my_base_env:/home/yfzx/env/
bash 复制代码
unzip opencv4.2.0.zip
cd opencv4.2.0
mkdir build
编译
bash 复制代码
 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/opencv4.2 -DOPENCV_EXTRA_MODULES_PATH=/home/yfzx/env/opencv4.2.0/opencv_contrib-4.2.0/modules -DOPENCV_GENERATE_PKGCONFIG=ON -DWITH_CUDA=ON -DOPENCV_DNN_CUDA=ON -DOPENCV_ENABLE_NONFREE=ON -DBUILD_EXAMPLES=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCUDA_ARCH_BIN=5.3 ..
bash 复制代码
make -j6
make install

4. 安装tensorrt

bash 复制代码
docker cp ./TensorRT-7.2.3.4.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn8.1.tar.gz my_base_env:/home/yfzx/env/
tar -zxvf TensorRT-7.2.3.4.Ubuntu-18.04.x86_64-gnu.cuda-10.2.cudnn8.1.tar.gz
cd TensorRT-7.2.3.4
sudo cp -r include/* /usr/local/cuda/include/
sudo cp -r lib/* /usr/local/cuda/lib64/

5.seetaface

宿主机

bash 复制代码
docker cp ./seetaface6_ubuntu.zip my_base_env:/home/yfzx/env/

docker:

bash 复制代码
cp -r ./seetaface6_ubuntu /usr/local/seetaface6

5.环境变量

bash 复制代码
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH 
export LD_LIBRARY_PATH=/home/yfzx/env/TensorRT-7.2.3.4/lib:$LD_LIBRARY_PATH

6. 动态库配置

  • cd /etc/ld.so.conf.d
  • sudo vim cuda.conf
    • 添加/usr/local/cuda-10.0/lib64
  • sudo vim darknet.conf
    • 添加/usr/local/darknet/lib
  • sudo vim opencv4.conf
    • 添加/usr/local/opencv4.2/lib
  • sudo vim seetaface6.conf
    • 添加/usr/local/seetaface6/lib64
相关推荐
weixin_6042366715 小时前
华三 路由器 极简核心配置
运维·服务器·网络·h3c·h3c路由器
鹤落晴春16 小时前
【Linux复习】管理SELinux安全性
linux·运维·服务器
梦梦代码精16 小时前
2026年PHP开源商城系统实测对比:架构、多商户、商用授权,谁才是真·省心?
vue.js·docker·架构·开源·代码规范
AI智图坊16 小时前
多件装组合SKU图的批量生产效率分析:从PS手工到AI自动化的工作流改造
大数据·运维·人工智能·gpt·ai作画·自动化·aigc
鹤落晴春19 小时前
【K8s】Pod调度、configMaps
云原生·容器·kubernetes
极客先躯20 小时前
高级java每日一道面试题-2026年02月02日-实战篇[Docker]-如何实现容器的持久化存储?
docker·容器·面试宝典·持久化·存储·韵味·java高级面试题
云计算磊哥@20 小时前
运维开发宝典026-MySQL02数据库表操作
运维·数据库·运维开发
天天进步201521 小时前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
My is 李豆21 小时前
CentOS 7 安装 Docker 完整教程(含 docker-compose 插件)
docker·eureka·centos
极客先躯21 小时前
高级java每日一道面试题-2026年02月01日-实战篇[Docker]-Docker Volume 的生命周期管理是怎样的?
java·运维·docker·容器·持久化·架构图·容器卷