pycharm远程连接实验室docker镜像

1.说明

这个教程需要读者有一定的docker基础,能用ssh连上实验室的服务器(也很简单)。

2.创建Docker Image 和Container

实验室使用docker容器,每个人在自己的容器里跑,这样不管怎么弄,坏的只有自己的容器,其他人正常跑。个人理解docker容器是一个轻量级的虚拟机,非常非常地轻量,但是具体有多轻,我不知道这个度。
输入

docker image ls

可以查看在本地的docker镜像
在这里插入图片描述
输入

docker container ls

在这里插入图片描述
查看正在运行的容器
如果你想创建的容器是anaconda3,但是你本地没有这个镜像,就需要拉下来,网站是:https://hub.docker.com/下拉代码

docker pull continuumio/anaconda3

拉好之后,anaconda就到本地了,用之前的镜像查看命令就可以查看了。
这个时候创建自己的container,输入(这里只是以anaconda3为例子)

docker run --name yourname -p 9999:22-it -v /home/tom/DISK/DISK 1/:/home/ continuumio/anaconda3  /bin/bash

其中 -name yourname :container名字为yourname
-p:指定端口映射,格式为:宿主机端口:容器端口。
注意,这里的宿主机端口可以是任意的,找个没人用的端口,但是这里的容器端口一定要是22!
容器端口一定要是22!容器端口一定要是22!
重要的事情说三遍。我自己的经历,如果不是22的话,他docker里面的ssh服务会疯狂报错,且不可修复。我百度了一下22有什么说法,好像是因为22是ssh的默认端口。但是我在其他教程里没有看到这个关于22的强调,很多都是任意端口映射。可能他们可以,我不行。理论上是可以把ssh的端口改成其他编号的,但是我试的不行。
-v:挂载目录,冒号前表示的是要挂载到宿主机的地址,是绝对地址,冒号后是容器内部地址,建议挂载到/home/tom/DISK/DISK1/下
continuumio/anaconda3是image的名字,在你想要的image下创建这个container
/bin/bash为初始指令,创建好这个container后直接bash运行
如果需要用到gpu,请在创建时添加–runtime = nvidia

docker run --runtime=nvidia --name yourname-p 9999:22-it -v /home/tom/DISK/DISK1/:/home/ airaria/pytorch0.4.1  /bin/bash

3.配置docker容器

启动创建好的docker容器,进入页面之后直接修改root密码

passwd

在这里插入图片描述
给容器安装openssh-server和openssh-client

apt-get install openssh-server
apt-get install openssh-client

如果是第一次的话,可能会报错
在这里插入图片描述
是因为、etc/apt/source.list中的源比较旧,需要更新,输入命令:

apt-get -y update

之后重新执行openssh的两个命令
执行完毕之后,修改ssh配置文件

vim /etc/ssh/sshd_config

打开sshd_config文件,在文件最后添加

PermitRootLogin yes #允许root用户使用ssh登录

重启ssh服务

/etc/init.d/ssh restart

docker就配置好了
退出容器,连接测试,注意,连接容器的时候需要保证容器是运行的,并且ssh服务时运行的,如果遇到connection refused情况试试重启ssh服务
这个就可以在自己的windows电脑上使用了
win+r进入cmd界面 输入

ssh root@127.0.0.1 -p 8080

root:容器内部系统的root账号,不是服务器的用户账号
127.0.0.1:服务器本机ip
-p 端口号:这里的端口是启动容器时映射的主机端口号9999,不是容器的端口22
这里会要输入密码,这个密码就是我们设置的root的密码。

4配置pycharm并连接docker容器

1.configuration配置远程连接
请添加图片描述
请添加图片描述
请添加图片描述
这个步骤2中设置的密码就是root的密码,记得要保存密码,不然下一次还得重新配置

路径映射:
在这里插入图片描述

本地路径和在容器里的路径

上传本地代码数据到docker容器中去

在这里插入图片描述
上传完代码数据之后,需要选择设置python编译器:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置好就可以run代码了
在这里插入图片描述

5 更换远程的docker里的python解释器

我用的是英伟达的pytorch镜像,里面有conda,可以自己换环境,创建新解释器,和anaconda一样用,我想换一个新的env怎么办呢

配置过程和第4步一样,也是要配置SFTP文件,唯一不同的是最后一步
在这里插入图片描述
这里选择容器内部的python编译器,他的默认envs是在/opt/conda/bin/python下面,但是你自己在conda里面新建的env的解释器是在/opt/conda/envs/py3/bin/python
这里的envs是环境,可能有s可能没有,具体读者自己看一下,py3是我创建的环境名。
到此,pycharm连接远程docker就结束了。

6 总结

配置环境搞了我很多天,特别是那个端口号22,恶心了我3 5天,基本上就是卡在这里,给刷到我这篇文章的读者提个醒。
我在配置环境的时候找了很多教程,主要的文章是pycharm连接远程docker。图也是用这个文章里面的,因为我懒得截了。这里还有dockerfile连接的方式,我暂时用不到,就没看了。
如果有读者还想用jupyter notebook ,可以看这个远程连接docker,使用jupyter notebook。这个jupyter notebook比较简单,没什么坑

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值