【声呐仿真】学习记录0.5-配置ssh远程连接docker、在docker中使用nvidia显卡

【声呐仿真】学习记录0.5-配置ssh远程连接docker、在docker中使用nvidia显卡

  • 配置ssh远程连接docker
    • 1.端口映射
    • 2.配置ssh
  • 在docker中使用nvidia显卡
  • 配置CUDA

注意:之前已经创建过容器的,需要打包成镜像,重新创建容器,因为要在创建的时候做端口映射

Docker隔离服务器不同用户环境

如何设置SSH远程连接docker容器_java ssh 执行docker命令-

配置ssh远程连接docker

1.端口映射

打包镜像:

docker ps
docker commit 容器id 镜像名

在这里插入图片描述

创建容器实例,将服务器的50003端口映射到容器的22端口上:

docker run -it -d -p 50003:22 ros

在这里插入图片描述

为了确保万无一失,所以在创建容器时加上之前的参数(环境变量env可以不加):

sudo docker run -it -d -p 50003:22 --gpus all -v /home/ouc/ros_noetic:/data --device=/dev/dri --group-add video --volume=/tmp/.X11-unix:/tmp/.X11-unix  --env="DISPLAY=$DISPLAY" --env="QT_X11_NO_MITSHM=1" --name=ros_noetic_2 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all ros /bin/bash

在这里插入图片描述

-----------------也可先执行下面的操作,然后打包镜像再创建容器--------------------

2.配置ssh

在容器实例里面执行下列指令:

apt-get update 
apt-get install openssh-server # 安装sshd 
which sshd

创建权限分离目录:

mkdir /var/run/sshd

设置密码,后续远程连接使用:

passwd

修改ssh配置文件,设置为允许root远程登录:

vim /etc/ssh/sshd_config

将PermitRootLogin prohibie-password 修改为:PermitRootLogin yes 即可。若没有则手动加上:

在这里插入图片描述

确保此时容器是开启状态(ssh连接服务器,开启的容器):

在这里插入图片描述

关闭服务器后,尝试连接容器:

ssh root@服务器ip -p 50003

刚开始没有映射端口的时候,报第一个错:
映射端口后,报第二个错:在这里插入图片描述

如何处理ssh: connect to host port 22: Connection refused

端口应该是已经开放了,但是还是连不上

sudo netstat -tlpn | grep 50003

在这里插入图片描述

解决了:

service ssh restart

在创建带端口映射的容器后,需要进入容器重启一下ssh才能远程

在这里插入图片描述

我一直以为容器关机开机,ssh服务相当于重启了,所以一直没有手动重启,没想到在这上面卡了这么长时间

使用ssh直连docker容器的方法 :解决Connection refused报错_docker connection refused-

在docker中使用nvidia显卡

在容器中查看显卡信息和CUDA版本:

nvidia-smi
nvcc --version

在这里插入图片描述

docker run -itd --gpus all --name 容器名 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility -e NVIDIA_VISIBLE_DEVICES=all 镜像名
怎么在docker中使用nvidia显卡

报错:docker: Error response from daemon: could not select device driver “” with capabilities: [[gpu]].
Docker 使用GPU 错误之Error could not select device driver ““ with capabilities: [[gpu]]

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.listsudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

在这里插入图片描述
在这里插入图片描述
少许报错,但是好像没有影响:

which nvidia-container-runtime

在这里插入图片描述

别忘了重启docker,然后创建容器:

在这里插入图片描述

配置CUDA

声呐仿真需要这个库Field-Robotics-Lab/nps_uw_multibeam_sonar:带有NVIDIA Cuda库的多波束声纳插件在这里插入图片描述

所以按需配置CUDA:多波束声纳|DAVE项目 — Multibeam Sonar | Project DAVE

我的NVIDIA驱动程序版本是535,准备安装CUDA 12.2(服务器上的是11.7,不知道后期会有影响不会)
在这里插入图片描述

CUDA工具包存档|NVIDIA开发者 — CUDA Toolkit Archive | NVIDIA Developer
Ubuntu22.04安装CUDA和cuDNN详细过程记录_ubuntu22.04安装cudnn-

在这里插入图片描述

wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run
sudo sh cuda_12.2.2_535.104.05_linux.run

注意安装的时候取消Driver(光标移动到Driver,然后按enter/空格即可取消,不取消会导致安装终止)
安装完会有个警告 Incomplete installation! 不需要管

配置环境变量:

vim ~/.bashrc
export PATH=$PATH:/usr/local/cuda-你的版本/bin  
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-你的版本/lib64  
source ~/.bashrc
nvcc -V

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/827558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++庖丁解牛】C++11---右值引用和移动语义

🍁你好,我是 RO-BERRY 📗 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 目录 1 左值引用和右值引用2 左…

前端vue scope的定义以及用法

这段代码是 Vue 组件中用于定义表格列的代码,包含了自定义模板和逻辑,以显示特定格式的内容。在这里,el-table-column 来自 Element UI 框架,提供了一种简洁的方式来定义表格的列及其显示内容。 让我们看看这段代码的细节&#x…

第一个Spring Boot程序

目录 一、Spring Boot介绍 二、创建Spring Boot项目 1、插件安装(专业版不需要) 2、创建SpringBoot项目 (1)这里如果插件下载失败,解决方案: (2)项目启动失败,解决…

web测试基础知识

目录 web系统的基础 web概念(worldwideweb) 网络结构 发展 架构 B/S C/S P2P 工作原理 静态页面 动态页面 web客户端技术 浏览器的核心--渲染引擎 web服务器端技术 web服务器 应用服务器 集群环境 数据库 案例-URL 协议类型 主机名 端口 IP地址 分类 …

C#开发的全套成熟的LIS系统源码JavaScript+SQLserver 2012区域云LIS系统源码

C#开发的全套成熟的LIS系统源码JavaScriptSQLserver 2012区域云LIS系统源码 医院云LIS系统是一套成熟的实验室信息管理系统,目前已在多家三级级医院应用,并不断更新。云LIS系统是为病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标…

贪心算法练习day.1

理论基础 贪心算法是一种常见的解决优化问题的方法,其基本思想就是在问题的每个决策阶段,都选择当前看起来最优的选择,即贪心地做出局部的最优决策,以此得到全局的最优解,例如在十张面额不同的钞票,让我们…

oracle sql 示例

-- 获取每个学员按照成绩的排名 selectt1.*,row_number() over (partition by student_name order by score desc) rn from t_score t1; -- 查询每个部门去除最高、最低薪水后的平均薪水 with t1 as (select t_salary_table.*,row_number() over (partition by department_id …

JVM(Java虚拟机)功能特点、垃圾回收机制

简介 JVM(Java虚拟机)是一种虚拟的计算机执行环境,用于执行Java字节码。Java虚拟机不仅仅用于执行Java语言编写的程序,还可以执行其他编译成Java字节码的语言(如Kotlin、Scala等)编写的程序。JVM的主要目标…

润申信息企业标准化管理系统 AddNewsHandler.ashx 任意用户创建漏洞复现

0x01 产品简介 润申信息科技企业标准化管理系统通过给客户提供各种灵活的标准法规信息化管理解决方案,帮助他们实现了高效的标准法规管理,完成个性化标准法规库的信息化建设。 0x02 漏洞概述 润申信息企业标准化管理系统 AddNewsHandler.ashx 接口处存在任意用户创建漏洞,…

web前端代码指南(vue3)

一、命名规范 市面上常用的命名规范: camelCase(小驼峰式命名法 —— 首字母小写)PascalCase(大驼峰式命名法 —— 首字母大写)kebab-case(短横线连接式)Snake(下划线连接式&#…

Linux安装部署Tomcat

个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Linux安装部署Tomcat //将tomcat压缩包解压到对…

python识别电脑是windows还是linux

代码实现 import osif os.name nt:print(当前操作系统是 Windows) elif os.name posix:print(当前操作系统是 Linux 或 Unix 类型的系统) else:print(未知的操作系统)

vue 3 + TS 组合式标注类型

1.组件的 emits 标注类型 <script setup lang"ts"> // 运行时 const emit defineEmits([change, update])// 基于选项 const emit defineEmits({change: (id: number) > {// 返回 true 或 false// 表明验证通过或失败},update: (value: string) > {//…

XiaodiSec day015 Learn Note 小迪安全学习笔记

XiaodiSec day015 Learn Note 小迪安全学习笔记 记录得比较凌乱&#xff0c;不尽详细 day15 还是基础的Php开发 看来是比较基础的 主题&#xff1a;登录验证 COOKIE & SESSION 后台系统有多个验证 为了方便验证使用cookie或session 类似于用户状态管理? cookie存储…

kubernetes中的副本控制器rc(replicationcontrollers)和rs(replicasets)

一、rc控制器replicationcontrollers rc控制器就是控制相同pod副本数量 使用rc控制器资源创建pod&#xff0c;设定创建pod资源的数量 1.1 案例 1.1.1、创建资源清单 [rootmaster rc-demo]# cat rc.yaml apiVersion: v1 kind: ReplicationController metadata: name: rc01 …

代码随想录打卡—day28—【回溯】— 回溯基础练习 4.17+4.19

1 93. 复原 IP 地址 也是类似前一天的分割回文串。可以用我的字符之间0101的思路&#xff0c;也可以直接用[start_idx,i]选取子串的方法&#xff0c;选取后者&#xff0c;代码简洁一点&#xff1a; class Solution { public:vector<string> ans;string path;void dfs(i…

【Ansible】04

【Ansible】03 任务块 block任务块 使用 block 可以将多个任务合并为一个组可以将整个 block任务组 , 一起控制是否要执行 # 如果webservers组中的主机系统发行版是Rocky&#xff0c;则安装并启动nginx [rootpubserver ansible]# vim block1.yml --- - name: block tasksho…

个人搭建alist网盘的经验记录备忘

1、搭建宝塔LINUX面板&#xff0c;安装Docker 2、添加仓库 3、从镜像拉取xhofe/alist:latest 4、添加容器 5、新建一个网站&#xff0c;别忘记申请个SSL证书&#xff0c;重要的是反向代理 6、新建个mysql数据库 7、修改alist数据库的链接地址&#xff0c;方便自己备份&a…

如何有效地进行汽车制造业文件共享,一文了解

随着数字化转变&#xff0c;企业的业务文件大多通过电子形式在内外部流转。这增加了外发文件数据泄露或被篡改的风险&#xff0c;如何保护外发文件安全已成为企业不容忽视的课题。其中汽车制造业是一个高度依赖文件共享与协作的行业&#xff0c;涉及设计图纸、技术文件、供应链…

Docker命令总结

一.Docker常用命令总结 1.镜像命令管理 指令描述ls列出镜像build构建镜像来自Dockerfilehistory查看历史镜像inspect显示一个或多个镜像的详细信息pull从镜像仓库拉取镜像push推送一个镜像到仓库rm移除一个或多个镜像prune一处未使用的的镜像&#xff0c;没有被标记或被任何容…