当前位置:   article > 正文

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

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

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

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

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

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

配置ssh远程连接docker

1.端口映射

打包镜像:

docker ps
docker commit 容器id 镜像名
  • 1
  • 2

在这里插入图片描述

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

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

在这里插入图片描述

为了确保万无一失,所以在创建容器时加上之前的参数(环境变量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
  • 1

在这里插入图片描述

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

2.配置ssh

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

apt-get update 
apt-get install openssh-server # 安装sshd 
which sshd
  • 1
  • 2
  • 3

创建权限分离目录:

mkdir /var/run/sshd
  • 1

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

passwd
  • 1

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

vim /etc/ssh/sshd_config
  • 1

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

在这里插入图片描述

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

在这里插入图片描述

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

ssh root@服务器ip -p 50003
  • 1

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

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

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

sudo netstat -tlpn | grep 50003
  • 1

在这里插入图片描述

解决了:

service ssh restart
  • 1

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

在这里插入图片描述

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

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

在docker中使用nvidia显卡

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

nvidia-smi
nvcc --version
  • 1
  • 2

在这里插入图片描述

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.list

sudo apt-get update && sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

which nvidia-container-runtime
  • 1

在这里插入图片描述

别忘了重启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
  • 1
  • 2

注意安装的时候取消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
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/481658
推荐阅读
相关标签
  

闽ICP备14008679号