"color: #ff0000">1、配置远程服务器docker
第一步:购置配置服务器(如果已有服务器跳过)
"htmlcode">
sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
详细可参考文末参考文献【2】
注:sudo命令是指使用最高权限root执行,如果当前账户是root则无需sudo命令。
第三步:拉取镜像
"htmlcode">
sudo docker pull pytorch/pytorch
即可下载相关文件,可通过下面命令查看已经拉取的镜像:
sudo docker images
详细可参考文末参考文献【6】
第四步:创建容器
"htmlcode">
ssudo docker run -p [自选端口号]:22 --gpus all -itd --name [自己起个名字] -v [宿主机(本地)的目录]:[自定义创建好的容器内的目录] /bin/bash
执行上面命令可以完成实例化一个容器,其中的相关参数有:
- -p [自选端口号]:22:同时将该容器映射到对应的端口号,并与22号端口进行关联监听;
- –gpus all:指定该实例化的容器内可使用所有宿主机包含的gpu;
- -i:保持STDIN开启;
- -t:分配一个伪终端;
- -d:在后台运行
- –name [自己起个名字]:为了避免记住冗长复杂的容器id,通常可为容器设置一个名称,注意不要与现有的名称相同;
- -v [宿主机(本地)的目录]:[自定义创建好的容器内的目录]:为了让容器内的文件与宿主机保持同步,可执行该参数,注意自定义创建好的容器内目录必须是绝对路径。
"htmlcode">
sudo docker run -p 8848:22 --gpus all -itd --name wjn -v /home/gm/wangjianing/docker:/wjn pytorch/pytorch /bin/bash
其表示实例化镜像pytorch/pytorch为一个容器,其占用宿主机端口号为8848,并与ssh端口22保持关联监听,可使用所有gpu,名称为“wjn”,宿主机的地址“/home/gm/wangjianing/docker”与容器内目录“/wjn”保持关联,使用/bin/bash作为命令脚本。
"htmlcode">
sudo docker ps
第五步:开通端口
"htmlcode">
sudo /sbin/iptables -I INPUT -p tcp --dport 8848 -j ACCEPT
第六步:启动容器
"htmlcode">
sudo docker start [容器id或自己起的名字]
例如刚才创建好的容器编号为“5621fade441e”,名称为“wjn”,则可以执行:
sudo docker start 5621fade441e
或
sudo docker start wjn
启动后,可通过:
sudo docker ps -a
查看所有已启动并运行的容器,如图:
注:至此应该可以看到该容器的相关信息, 特别注意PORTS属性,需要有端口信息才能判断当前创建的容器是可以通过端口访问的,如果没有此信息,则无法完成远程访问容器,且目前无法直接修改已创建好的容器的端口,所以只能重新创建。
第七步:进入容器
"htmlcode">
sudo docker exec -it [容器id或自己起的名字] /bin/bash
2、容器配置ssh
"htmlcode">
apt update apt install -y openssh-server
然后建立一个配置文件夹并进行必要的配置:
mkdir /var/run/sshd echo ‘root:passwd' | chpasswd
注意,这里的root表示待会要远程访问的用户名,passwd为访问密码,可自行设置,例如本人设置的为:
echo ‘root:123456' | chpasswd
第九步:设置登录权限:
执行下面三行命令设置权限
sed -i ‘s/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config sed ‘s@session\srequired\spam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd echo “export VISIBLE=now” /etc/profile
第十步:修改ssh配置文件
博主完成第二步后,依然无法远程连接,因此经过查询后发现,需要修改相关配置文件:
执行下面命令打开ssh配置文件:
vim /etc/ssh/sshd_config
如果vim没有安装,则执行:
apt install vim
打开后,修改文件:
AddressFamily any 前面的 # 删除
修改PermitRootLogin yes 前面的 # 删除
修改PasswordAuthentication yes 前面的 # 删除
在vim编辑器中,执行命令保存并退出:
:wq
最后重启ssh服务:
service ssh restart
详细可参考参考文献【1】和【3】
3、ssh测试
配置完后,按理来说应该完成了服务器的设置,下面可以进行简单的测试,例如
(1)在宿主机中执行命令查看当前端口,可知有8848端口
sudo netstat -ntlp
(2)在宿主机上执行命令,也可以查看当前容器是否存在对应的端口映射关系:
sudo docker port [容器id或自己起的名字] 22
例如,博主执行后返回0.0.0.0:8848,说明成功
(3)进入容器内,执行:
python3
进入python环境,再依次执行
import torch print(torch.cuda.is_available())
如果返回 True,说明该docker可以使用GPU了。
(4)远程访问试一试,任意在一台联网的机器上(若在局域网内,则需要连VPN)执行:
ssh [第八步创建的用户名]@[你的服务器地址] -p [自己定义的端口号]
如果显示输入密码,说明连接成功,输入密码后即可直接进入对应的容器。例如博主执行:
ssh root@10.11.6.13 -p 8848
显示如下信息说明已经连接成功。
4、pycharm测试
如果使用pycharm直接访问远程服务器docker,则可以在pycharm上进行相关设置:
第十一步:安装pycharm(已安装直接跳过)
需要安装专业版的pycharm,安装后,可通过激活码、或直接去官网使用学生邮箱注册一个账号可免费使用一年,安装后进入pycharm
详细可参考文末参考文献【7】
第十二步:设置ssh
如下图,依次点击后进入菜单:
然后新增一个连接,由左向右依次点击:
进入编辑ssh界面,填写配置信息:
点击“Test Connection”测试一下,如果success则说明pycharm也可以连接远程容器了:
返回到上一个页面,选择配置好的ssh后,可以再选择需要pycharm关联到容器内的具体的目录。例如博主直接选择在创建容器时域宿主机进行关联的目录/wjn作为pycharm可更新上传的位置,最后保存即可。
至此完成所有配置工作,在pycharm可以自由地与服务器docker内的项目进行调试了
参考文献:
【1】SSH客户端远程登陆Linux服务器密码总是错误问题
【2】Docker安装
【3】PyCharm+Docker:打造最舒适的深度学习炼丹炉
【4】pycharm远程连接服务器运行代码加调试
【5】解决pytorch GPU 计算过程中出现内存耗尽的问题
【6】Docker 镜像使用
【7】学生如何免费使用Pycharm专业版全部功能
更新日志
- 老头杯第二届规则是什么 英雄联盟老头杯第二届规则介绍
- 王崴-爵士听堂.蓝色波萨(HQCD)[WAV+CUE]
- 群星《欧美动听情歌·柔情第5季》2CD【DTS-WAV分轨】
- [极品珍藏]德意志进行曲集卡拉扬SACD[WAV+CUE]
- 前暴雪制作人呼吁反击DEI 玩家:夺回文化!
- 腾讯证实子公司Sharkmob大规模裁员:整个市场很低迷
- 荣耀加冕 问鼎冠军 中国代表队获第四届东亚电竞锦标赛团体总冠军
- 污甩乐队.2024-Let.the.dirt.left【摩登天空】【FLAC分轨】
- 杜德伟.1994-ALL.FOR.YOU(英)【滚石】【WAV+CUE】
- 群星.2013-百代好声音ADMSCD1【EMI百代】【WAV+CUE】
- 群星《私人音乐精选示范碟》PRIVATEMUSIC 发烧唱片名碟[WAV+CUE][1.1G]
- 山口百惠《あなたへの子守唄》日本索尼钢刻字首版[WAV分轨][1.1G]
- 群星《宝丽金20周年特别发烧版》1:1母盘直刻限量编号[低速原抓WAV+CUE][1G]
- 凤飞飞.1984-仲夏(夏艳)[WAV]
- 常安《民歌红·江南燕》DTS-ES6.1[WAV]