docker环境配置之bevdet配置

这篇具有很好参考价值的文章主要介绍了docker环境配置之bevdet配置。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

python -m pip install --upgrade --no-deps --force-reinstall numpy-quaternion# 一、nvidia-dokcker配置

环境配置

$ 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

nvidia-dokcker安装

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit

重启docker服务

sudo systemctl restart docker

测试,如果测试出现了error,极有可能是新的cuda与系统内核版本不匹配了,可以尝试指定cuda版本信息即可。

docker run --rm --gpus all nvidia/cuda:11.0.3-base nvidia-smi

二、docker基础命令

1、查看已有镜像 ; 查看所有运行容器

docker images ; docker ps -a

2、创建容器,创建容器时一定用nvidia-docker,不然不能调GPU

nvidia-docker run --privileged=true --name=bevdet -it -v /home/sen/project_hao/bevdet:/root/workspace/bevdet -v /home/sen/dataset/cdc:/root/workspace//dataset -p 10022:22 --gpus all --ipc=host 65bb7d38a66b

# 参数说明
--name        #容器名字:用来区分容器,一个镜像能建立多不同容器
-it           #使用交互式运行:进入容器查看内容
-v            #挂载卷
		     #-v /home/tuolong/project/aiyolov7:/yolov7  宿主机yolov7代码地址:容器内yolov7地址
		     #-v /home/tuolong/project/dataset_aiyolo:/dataset  主机数据集地址:容器数据集地址
-p            #宿主机端口:容器内部端口
--gpus        #要添加到容器中的gpu设备(all用于传递所有gpu)
--ipc         #ipc=host表示主机与docker共享所有内存空间
#65bb7d38a66b 镜像id

3、查看当前目录存在文件:ls ; 查看当前文件路径:pwd ;找文件:whereis cudnn

4、删除容器 ;删除镜像

docker rm [容器id] ; docker rmi [镜像id]   

先删除容器,才能删除镜像

5、启动容器,关闭容器

docker start [容器id] ; docker stop [容器id]

6、进入docker容器 ; 退出容器

docker exec -it [容器id]/容器名  /bin/bash ; exit

7、拉取镜像

docker pull 镜像名:Tag

8、打标签

docker tag 镜像名称:tag 自定义的标签
eg:docker tag ubuntu:latest myubuntu:1.0.0

9、dockerfile安装

在dockerfile文件夹下执行以下命令,标签不能有大写字母

docker build . -t bedet:1.0.0 

10、复制本地文件到容器

docker cp 本地目录 容器id:/容器目录

docker cp /home/sen/project_hao/bevdet dddb6ef4350c:/root/workspace

拉docker的cuda环境
base:基于CUDA,包含最精简的依赖,用于部署预编译的CUDA应用,需要手工安装所需的其他依赖。runtime: 基于base, 添加了CUDA toolkit共享的库
devel: 基于Fruntime, 添加了编译工具链,头文件,静态库。用于从源码编译CUDA应用。

三、在容器中配置ssh

root@dddb6ef4350c:~# apt update
apt install -y openssh-server

3.1、 在root@dddb6ef4350c:依次输入

root@dddb6ef4350c:~# mkdir /var/run/sshd
root@dddb6ef4350c:~# echo 'root:123' | chpasswd
root@dddb6ef4350c:~# sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
root@dddb6ef4350c:~# sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
root@dddb6ef4350c:~# echo "export VISIBLE=now" >> /etc/profile

3.2、重启ssh

root@dddb6ef4350c:~# service ssh restart

3.3、设置root密码,后续登录会用到

root@dddb6ef4350c:/# passwd    #设置145494

3.4、修改配置文件

root@dddb6ef4350c:/# vim /etc/ssh/sshd_config
#PermitRootLogin prohibit-password
PermitRootLogin yes

UsePAM no # 原先为 yes

在普通模式下,可以使用“O”命令进行换行。
注释这一行PermitRootLogin prohibit-password
添加一行PermitRootLogin yes
UsePAM yes 修改为 no #禁用PAM

3.5、重启ssh

root@dddb6ef4350c:~# service ssh restart

bevdet docker,docker,容器,运维3.6、本机连接ssh,新开一个终端

ssh root@127.0.0.1 -p 10022

bevdet docker,docker,容器,运维

四、解决方法

查询docker内主机ip
root@dddb6ef4350c:~/workspace# hostname -i
172.17.0.2

测试ssh root 用户登录

ssh root@[主机ip] -p 22 #注意这里为docker容器内的主机ip 172.17.0.2

bevdet docker,docker,容器,运维
##  解决方案:
     查看/etc/ssh/sshd_config配置,将服务端PermitRootLogin 后缀改为yes.允许远程root登录 
     进入容器
    sen@sen:~$ docker exec -it dddb6ef4350c /bin/bash
     修改 sshd_config 配置
     root@dddb6ef4350c:/# vim /etc/ssh/sshd_config
     将PermitRootLogin 参数改为PermitRootLogin yes
     按esc键,:wq 退出
     重启ssh 
     root@dddb6ef4350c:/# service ssh restart
尝试再次使用root登录服务器

四、遇到报错

1

bevdet docker,docker,容器,运维

pip install numba==0.54.0 -i https://mirrors.aliyun.com/pypi/simple

2

bevdet docker,docker,容器,运维

python -m pip install --upgrade --no-deps --force-reinstall numpy-quaternion

3

转engine文件报错

python export_engine.py --config /root/workspace/bevdet/BEVDet-export/tools/hao/bevdet.yaml --img_encoder_onnx /root/workspace/project_hao/bevdet/BEVDet-export/tools/hao/img_stage_lt_d.onnx --bev_encoder_onnx /root/workspace/project_hao/bevdet/BEVDet-export/tools/hao/bev_stage_lt_d.onnx --postfix="_lt_d_fp16" --fp16=True

bevdet docker,docker,容器,运维用本地环境cuda11.7,cudnn8.6.0,bev_inchannels = 80

4

部署nvidia开发板时遇到libmmdeploy_tensorrt_ops.so 找不到

agx@ubuntu:~/bevdet/mmdeploy/mmdeploy/lib$ file libmmdeploy_onnxruntime_ops.so 
libmmdeploy_onnxruntime_ops.so: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=3fbeb794291e95712bb9c07145a347ca14a2e7db, not stripped

发现找到的 libmmdeploy_onnxruntime_ops.so 是x86架构的
改成arrm架构的libmmdeploy_onnxruntime_ops.so动态链接库文章来源地址https://www.toymoban.com/news/detail-820742.html

到了这里,关于docker环境配置之bevdet配置的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基础篇:容器化部署技术-—docker,从此摆脱多环境配置的苦恼!

    我们设想这样一个场景,现在 leader 给了你一个任务,让你把开发完毕的应用程序进行打包、分发、部署,要求多平台通用,程序的前后端是单独的工程、后端依赖了 mysql、redis、RabbitMQ 等。按常规的运维思路就是,先将配置好的前后端程序分别打包 -- 将打包文件上传到服务

    2024年02月22日
    浏览(24)
  • Ubuntu基础配置+Docker配置和使用+容器化centos7大数据环境准备

    环境:ubuntu 18.04 大数据技术与应用赛项平台环境 安装完Ubuntu之后,除了需要新建用户、设置密码之外,我们还要设置root密码,虽然Ubuntu默认有root超级管理员账户,但是具体的密码我们可以自行设置 1.1设置root密码: 1.启动Ubuntu 启动Ubuntu,有图形界面的,启动终端即可 2.终端

    2024年01月17日
    浏览(31)
  • Windows环境下清华ChatGLM3+docker-desktop镜像制作和配置GPU环境docker容器本地运行

    (1)下载或git拉取ChatGLM3镜像   拉取镜像,配置环境在此文就不多赘述   git clone https://github.com/THUDM/ChatGLM3.git (2)docker-desktop的安装 这里引用这位大佬的文章,讲的很详细

    2024年02月19日
    浏览(34)
  • 在服务器的docker容器中安装Anaconda配置环境以及使用编程工具远程连接环境

    一、连接服务器下载Anaconda 3 使用win+r输入cmd打开命令行,在命令行中输入ssh -p xxxxx(你的端口号如10101,下图红色部分)  root@xxx.xxx.xxx.xxx(服务器ip地址下图蓝色部分)   第一次连接时,连接没问题会出现Are you sure you want to continue connecting (yes/no/[fingerprint])?之后就不会出现了。 输

    2024年02月03日
    浏览(27)
  • 如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信

    MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,广泛用于物联网和传感器网络中。Mosquitto是一个流行的开源MQTT代理,可以在Docker中进行配置和部署。本文将详细介绍如何在Docker中配置Mosquitto MQTT代理,以便在容器化环境中运行和管理MQTT通信。 在开始之前,

    2024年02月06日
    浏览(27)
  • 第七次作业 运维高级 docker容器进级版

    1、使用mysql:5.6和 owncloud 镜像,构建一个个人网盘。 (1)拉取相应镜像 (2)运行mysql:5.6容器 (3)运行owncloud容器 (4)查看并验证 之后在浏览器中输入ipaddress:8080 2、安装搭建私有仓库 Harbor (1)下载好harbor和docker-compose (2)上传到Linux服务器 (3)复制docker-compose并修改权限 (4)解压harbor (

    2024年02月12日
    浏览(29)
  • K8S自动化运维容器化(Docker)集群程序

    1.什么是K8S K8S全程为Kubernetes,由于K到S直接有8个字母简称为K8S。 版本:目前一般是1.18~1.2.0,后续可能会到1.24-1.26,1.24版本后丢弃了docker(如需要使用需要第三方插件配合),目前最新版本是1.27 官网:https://kubernetes.io GitHub:GitHub - kubernetes/kubernetes: Production-Grade Container Schedul

    2024年02月10日
    浏览(26)
  • 【每日运维】RockyLinux8非容器化安装Mysql、Redis、RabitMQ单机环境

    系统版本:RockyLinux 8.6 安装方式:非容器化单机部署 安装版本:mysql 8.0.32 redis 6.2.11 rabbitmq 3.11.11 elasticsearch 6.7.1 前置条件:时间同步、关闭selinux、主机名、主机解析host 环境说明:PC电脑+VMware Workstation 下载离线二进制包:https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.32-lin

    2024年02月15日
    浏览(29)
  • 容器与虚拟化技术在云计算环境中的集成与运维实践

    作者:禅与计算机程序设计艺术 云计算是一种新型的分布式系统的计算机资源,其中涉及到的硬件设备,网络组件,存储设备都由云服务商提供并按需动态分配给用户,用户只需要关注业务逻辑的开发,部署和运行。 由于云计算平台的高度动态性,容器技术和虚拟机技术可

    2024年02月08日
    浏览(26)
  • 使用docker-compose.yml快速搭建开发、部署环境(nginx、tomcat、mysql、jar包、各种程序)以及多容器通信和统一配置

    image 镜像名称,可去镜像市场查找自己需要的 hostname 容器内服务名 container_name 容器名 volumes 可以把自己电脑的路径映射到容器中的文件夹中 networks 写同一个网络可以让容器之间进行通信 启动 在项目根目录的命令行中输入 docker-compose up 停止 在项目根目录的命令行中输入 d

    2024年02月12日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包