【声呐仿真】学习记录0.5-配置ssh远程连接docker、在docker中使用nvidia显卡
注意:之前已经创建过容器的,需要打包成镜像,重新创建容器,因为要在创建的时候做端口映射
如何设置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.list
sudo 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库的多波束声纳插件
我的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