环境确认准备:
确保服务器和本地电脑属于同一网段,可正常建立通信:
ping xxx.xxx.xxx.xxx
显示如下,说明通信正常:
PING 192.168.9.99 (192.168.9.99) 56(84) bytes of data.
64 bytes from 192.168.8.98: icmp_seq=1 ttl=60 time=27.4 ms
64 bytes from 192.168.8.98: icmp_seq=2 ttl=60 time=27.1 ms
64 bytes from 192.168.8.98: icmp_seq=3 ttl=60 time=27.2 ms
1. 启动并运行交互式容器
(1)如果docker版本在19.03或以上,運行
注:创建之前验证端口是否被占用,避免与之前其他端口冲突。
netstat -anp|grep 10013
docker run -itd --shm-size=8G -entrypoint="" -p 8089:22 --name="pgf_train" --gpus all -v /home/th/PycharmProjects/qa/:/workspace/qa pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime /bin/bash
(2)如果docker版本在19.03以下,運行
docker run -itd --shm-size=8G -entrypoint="" -p 8089:22 --name="vscode_train2" -e NVIDIA_VISIBLE_DEVICES=2,3 -v /mnt/inspurfs/user-fs/panguofeng:/pgf_api pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime /bin/bash
这里需要映射主机端口到容器端口,后续就是通过端口来连通容器的。
-v /home/th/PycharmProjects/qa/:/workspace/qa 路径挂载,冒号前为服务器root权限目录,冒号后为容器内路径
pytorch/pytorch:1.4-cuda10.1-cudnn7-runtime 代表镜像,也可以通过docker images命令查到的IMAGE_ID代替
-p 8089:22 -这里主机端口8089(pycharm映射端口), 容器端口是22
--shm-size=8G -共享内存设置,提升cpu到gpu数据传输的效率
--gpus all -容器创建所使用的gpu数量;
2.进入交互后修改容器的root密码
passwd
3.给容器安装openssh-server和openssh-client
apt-get install openssh-server
apt-get install openssh-client
安装ssh服务时如果出现错误,进 行源更新,更新命令如下:
apt-get -y update
4.修改SSH配置文件
vim /etc/ssh/sshd_config
打开sshd_config文件后,在文件最后面添加以下内容
# PermitRootLogin prohibit-password
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
保存后退出。
5.重启ssh服务
/etc/init.d/ssh restart
6.退出容器,链接测试
ssh [email protected] -p 8089
root: 容器内部系统的root帐号,不是服务器的用户帐号
127.0.0.1:服务器本机ip,也可以通过ifconfig查看对应实际ip4地址
-p 8089: 该端口号是链接容器端口22的映射端口,外部链接使用.
然后输入前面设置的passwd设置的密码,进入容器代表链接成功。
二、配置vscode并连接docker容器
1. Configuration配置远程连接
打开vscode,安装Remote-SSH,该工具为远程资源管理器。
VSCode远程连接容器
在安装Remote-SSH插件后点击左侧栏的SSH连接图标:
点击新建一个SSH连接:
输入步骤一中设置的远程链接:
ssh [email protected] -p 8089
输入密码确认:
正常链接容器后,即可打开代码开始调试(调试相关环境需要自行在容器中配置)
vscode配置容器内的python环境:
在vscode最下面点击python配置栏
在本机配置:
ssh -L 127.0.0.1:6666:127.0.0.1:6666 -N -f root@***.***.***.***
然后登录测试:
ssh [email protected] -p 6666