通过指定docker在宿主机中的共享路径,pycharm远程连接宿主机,编辑docker环境中的代码

需求:

windows电脑一台,装有代码编辑器pycharm
ubuntu服务器一台(宿主机),装有运行代码用的docker环境。
先需要在docker中运行python代码,在windows上远程调试。
之前的docker学习笔记在此:
https://blog.csdn.net/qq_34342853/article/details/121291196

解决方案一:配置docker容器和宿主的端口映射

给docker容器设置与宿主的22号端口的端口映射用于ssh服务,然后windows直接ssh到docker容器内。这个方案在我这里有点麻烦,因为我的ubuntu服务器用了内网透传到公网。我们连的不是他的22端口。这个方案踩过坑后就先pass了。

记录一下配置端口映射的方法:
-p 容器端口:宿主端口
由于我们是用ssh连接,需要配22号端口,即选一个容器端口:22
深度学习环境的话6006是tensorboard要用的,也可以配一个。
-d是后台运行
-i: 交互
-t: 分配一个伪终端

docker run -p 6009:6006 -p 23:22  -it -d --name <容器名称> <镜像>  /bin/bash

内网透传、rfp相关

原理参考这里:
https://segmentfault.com/a/1190000021876836
配置参考这里:
https://blog.csdn.net/weixin_43922901/article/details/109261700

https://blog.csdn.net/weixin_44003119/article/details/121646383 如何修改更新,不依赖安装包的路径

https://blog.csdn.net/realjh/article/details/82048492 开放端口1

解决方案二:指定docker容器在宿主机中的共享路径

创建容器时指定共享路径

本地Windows的pycharm通过ssh连宿主机,对共享路径进行操作。

首先创建docker容器的时候即指定好其在宿主机中的共享路径。
(-v 宿主机目录:容器目录)
-w <容器工作路径>

docker run -it -v <宿主机路径>:<容器路径> -w <容器工作路径> -d --name <容器名称> <镜像>  /bin/bash

-v会把 <宿主机路径>和<容器路径>共享起来,你在宿主机中这个路径里做任何修改,docker中也会有。
-w是指定容器的默认工作路径。

sftp上传项目文件

pycharm配置好以后可以自动上传下载文件,但,头一次大批量的文件,尤其是数据集啥的,还是专用的sftp工具更好,可以显示进度条,剩余时间等。
我这里用filezilla这一软件来上传文件。
配置好以后把整个项目文件夹放到服务器里刚才的共享路径下。

解压上传的文件

如果sftp的速度不太快,可以压缩后再上传,然后在linux端解压。
我上传的文件是rar格式,需要先安装rar的压缩和解压工具。
(亲测这样会快很多。我的完整文件5G,压缩后3G,上传网速约300kB/s, 而解压只用了十秒左右。)

安装解压工具:
解压功能: sudo apt-get install unrar
压缩功能:sudo apt-get install rar

解压: rar x filename.rar
压缩:rar a filename.rar dirName

如果压缩完发现少了或多了一层文件夹,可能用到以下命令:
新建文件夹: mkdir 文件夹名称
移动文件: mv filename dirname

open for write: permission denied

此时我收到一个报错:

open for write: permission denied
查了,应该是因为我的宿主机登录的用户对该路径没有写的权限,通过sudo chmod 777 该路径来给他赋予权限。

sudo chmod 777 /home/mydocker

error while writing: received failure with description ‘Failure’

传到一半又有一个报错:

error while writing: received failure with description 'Failure'

百度得知是磁盘空间不够了。学习了一下查询和清理磁盘空间的方法,笔记在此:
https://blog.csdn.net/qq_34342853/article/details/121403215
我们是很多人在用这个服务器,每人一个用户名,在home下有自己的文件夹。问了一些人,哪些东西还要用。不用的直接把home/人名 底下的所有内容删掉。

rm -rf *

pycharm远程连接

参考此文
简单的说,就是在pycharm里面,Tools-》deployment-》configuration,里面添加
(这段后面截点图再补)

这一步相当于是配置了一个sftp,同步这两个文件夹。
之后直接在pycahrm里修改保存,会自动上传

pycharm配解释器

可以参考pycharm配解释器
也可以不配置,直接在terminal用命令行运行:

python main.py
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值