方法一、不采用docker内部环境
该方法使用ssh的方式来访问服务器上的python解析器,该解析器可以被docker环境使用
1.1 利用你想使用的docker镜像运行一个容器
我采用如下命令开启一个容器:
docker run -v /data/michael/:/data/michael/ --ipc=host --gpus all --name michael_container -it docker_image
注意:这里我使用-v参数挂载了自己的一个文件路径,待会python安装在这个文件夹下,那么docker容器外面就可以只用该python解释器了,这个很重要
1.2 安装python解析器
本文采用anaconda安装,可以在官网自行下载。
安装包是一个.sh文件,运行下面指令进行安装
bash Anaconda3-5.3.1-Linux-x86_64.sh
运行后首先会弹出下面提示,按enter即可:
1.png
然后会出anaconda license提示,一直按enter既可,直到出现下面提示:
2.png
输入yes
然后重点来了,会出现下面提示,选择安装路径,这里一定要更改,使用的路径为docker挂载的路径中的某个文件夹,比如我用的是上面的/data/michael/anaconda3:
3.png
安装好后会让你选择是否写入环境配置文件中,如下图所示,写yes即可:
4.png
最后会问你装不装vscode,写no即可:
5.png
最后的最后source一下刚刚的环境配置文件,让python环境生效
source /root/.bashrc
生效后在终端输入下列命令查看python解析器的安装路径:
python -c 'import sys; print(sys.executable)'
1.3 本地pycharm配置
本文采用的是mac版的pycharm,其它系统可能界面稍有不同
选择preferences-》Project:**** -》 Project Interpreter-》点击设置Add,如下图所示
6.png
选择SSH Interpreter,在Host和Port中填入相应的服务器ip和端口号,Username填入登入的密码,点next
7.png
新弹出的界面中填入登入服务器的密码,点next:
8.png
新弹出的界面中选择服务器中解析器的路径,也就是上面安装python的路径,还有在下面的Sync folders中修改本地项目路径和远程项目路径,目的是为了同步两边的代码:
9.png
到这里就配置完成了
方法二、直接使用docker里面的python环境
先说明一下我们尽量不要用这种方法,因为每台服务器开放的端口不多,这种方法占端口。
2.1 利用你想使用的docker镜像运行一个容器
我采用如下命令开启一个容器
docker run -v /data/michael:/data/michael --ipc=host -p 7001:22 -it --gpus all --name video_det docker_image
注意:-p需要注意一定要映射docker容器的22端口,至于服务器的端口可以随意,只要本地可以通过该服务器端口访问到服务器就行,比如这里7001可以访问(一定要22是因为服务器需要通过ssh的22端口访问docker容器)。
2.2 安装python解析器
本文采用anaconda安装,可以在官网自行下载。
安装包是一个.sh文件,运行下面指令进行安装
bash Anaconda3-5.3.1-Linux-x86_64.sh
运行后首先会弹出下面提示,按enter即可:
1.png
然后会出anaconda license提示,一直按enter既可,直到出现下面提示:
2.png
输入yes
然后会出现下面提示,来说明anaconda的安装路径,按enter即可:
10.png
安装好后会让你选择是否写入环境配置文件中,如下图所示,写yes即可:
4.png
最后会问你装不装vscode,写no即可:
5.png
最后的最后source一下刚刚的环境配置文件,让python环境生效
source /root/.bashrc
生效后在终端输入下列命令查看python解析器的安装路径:
python -c 'import sys; print(sys.executable)'
2.3 docker容器ssh配置
为了使得服务器可以通过ssh访问docker容器,需要在容器里配置SSH服务
首先运行下面指令安装ssh服务包
apt install openssh-server
然后设置ssh访问密码,运行下面指令
passwd
再然后修改/etc/ssh/sshd_config文件,将/etc/ssh/sshd_config文件中PermitRootLogin prohibit-passwd 改为 PermitRootLogin yes
最后运行下面指令重启容器的ssh服务
/etc/init.d/ssh restart
可以使用ssh在服务器的终端访问一下docker容器,看看能不能通
ssh root@serverip -p 7001
上面serverip是服务器的ip,7001是与docker容器22端口对应的映射端口
2.4 本地pycharm配置
本文采用的是mac版的pycharm,其它系统可能界面稍有不同
选择preferences-》Project:**** -》 Project Interpreter-》点击设置Add,如下图所示
6.png
选择SSH Interpreter,在Host和Port中填入相应的服务器ip和端口号,Username填入登入的密码,点next(这里的port应写为7001,为映射docker容器22端口的服务器端口)
7.png
新弹出的界面中填入登入服务器的密码,点next:
8.png
新弹出的界面中选择服务器中解析器的路径,也就是上面安装python的路径,还有在下面的Sync folders中修改本地项目路径和远程项目路径,目的是为了同步两边的代码:
9.png
到这里就配置完成了
网友评论