vscode关联解决方案_vscode,pycharm+Docker远程服务器配置

最近一直在研究实验室的服务器配置,从使用jupyter notebook远程配置,慢慢过渡到vscode和pycharm,但是一直没有找到完美的解决方案:

这个是jupyter notebook+docker的方案:

蝈蝈:Docker,救你于「深度学习环境配置」的苦海​zhuanlan.zhihu.com
c07fbea3c3a085a11362fdc5a3e742a4.png

jupyter notebook不能代码补全

vscode在使用docker远程调试的时候参考资料特别少,且大部分都是直连docker的方式,这种直连的方法我都没有尝试成功,因此最后采用docker容器+openssh的方式

这是vscode+docker的方案:

可达鸭头好痛:Docker+VSCode配置属于自己的炼丹炉​zhuanlan.zhihu.com
628b6612514cc705f9d8db30c53da5e1.png

这是pycharm+docker的方案:

刘震:PyCharm+Docker:打造最舒适的深度学习炼丹炉​zhuanlan.zhihu.com
f1f3ce8e0135bca3c241ed271ebe976e.png

但是这样又有问题,就是在容器重启之后ssh不能自动打开,需要手动输入,有点麻烦

为了解决这个问题,搜索了很久,查了很多资料最终决定使用supervisor

如何让操作系统为ubuntu的docker容器在启动时自动重启sshd服务?​www.zhihu.com
zhihu-card-default.svg

但是使用supervisor又遇到了一开docker容器,容器就会自动关闭的问题

最后发现似乎是没有前台进程导致docker容器自动关闭,解决方案如下:

使用Dockerfile构建supervisor容器部署项目,CMD ["supervisord","-c","/etc/supervisord.conf"]执行失败​blog.csdn.net
0b62e0b8372b1e6d1ba469d2cf99b5a1.png

这里我附上自己的dockerfile和supervisor的配置文件,配置文件中大量参考以上给出的链接,有兴趣的朋友也可以根据以前的方法复现。

Dockerfile

#BASE IMAGE 选择你的基础镜像
FROM nvcr.io/nvidia/pytorch:20.12-py3

#LABEL MAINTAINER
LABEL maintainer = "yourname"

SHELL ["/bin/bash","-c"]
#这里将docker容器的root密码修改为passwd,可以自行更换
RUN echo 'root:passwd' | chpasswd 
#更换pip源
&& pip install -U pip 
&& pip config set global.index-url http://mirrors.aliyun.com/pypi/simple 
&& pip config set install.trusted-host mirrors.aliyun.com 
#更换apt源
&& sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list 
&& apt-get clean 
#安装并配置openssh-sever
&& apt update 
&& apt install -y supervisor 
&& apt install -y openssh-server 
&& mkdir /var/run/sshd 
#下面这一句要注意,有的可能需要将#删除,具体请看pycharm+docker的那个链接
&& sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config 
&& sed 's@sessions*requireds*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd 
&& echo "export VISIBLE=now" >> /etc/profile
#安装python第三方库
&& pip install geatpy

ADD supervisord.conf /etc/supervisor/supervisord.conf
EXPOSE 22
CMD ["supervisord","-n","-c","/etc/supervisor/supervisord.conf"]

supervisord.conf

[supervisord]
nodaemon=true

[program:sshd]
command=/usr/sbin/sshd -D
autostart=true
autorestart=true
startsecs=3

然后通过docker build建立关联dockerfile的docker镜像,最后通过docker run创建容器即可。可以在run里加入--restart=always这个命令,docker build的命令我就不再赘述,萌新朋友可以百度一下,这里附上我的命令

#后面的路径可以换成你自己的路径 -t 后面的dl_cuda111也可以换成你自己的,代表镜像的名字
docker build  -t dl_cuda111 ~/Desktop/mydocker
#docker run命令
sudo docker run --gpus all -idt -p 13001:13001 -p 13002:13002 -p 13003:22 --name='pytorch' -v /home/user:/workdir --ipc=host --restart=always dl_cuda111

至此就创建好了重启后仍然可以自启动,并且ssh仍然可以连接的docker容器,接下来你要配置vscode还是配置pycharm就很简单了,参考上面给的大佬的链接就可以了。

以上就是我最近折腾服务器的一点点总结,如有错误请各位指出,如果有小伙伴不懂的可以发在评论区,如果是我遇到过的我可以告诉你怎么解决,我偶尔会看评论区(不怎么玩知乎hh)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值