Docker容器 ---- pycharm远程连接
开发环境准备
一、Docker容器 ---- pycharm远程连接
1.1 创建一个目标容器
$ docker run -it --name journal-test --restart always --gpus all -p 10025:10010 -p 10024:22 -v /home/elfin/utils/journal-test:/home/medaxis/ --net layoutnet ubuntu_ai:18.04 /bin/bash
这里的ubuntu_ai:18.04镜像是我之前生成的一个工作基础镜像,其中包含了linux常用指令集,nvidia的相关配置,anaconda3的python环境。
1.2 安装ssh服务
测试容器是否有ssh服务
$ /etc/init.d/ssh status
没有就安装
$ sudo apt-get install openssh-server
配置文件修改
$ vim /etc/ssh/sshd_config
# 将#PermitRootLogin prohibit-password下添加一行“PermitRootLogin yes”
# 添加:
# RSAAuthentication yes
# PubkeyAuthentication yes
重启ssh服务
$ service ssh restart
# 或者:
$ systemctl restart sshd
配置容器内的用户密码:
passwd
# 配置密码后可以远程连接
设置SSH开机自启动
sudo systemctl enable ssh
上面的命令一般在容器都不能成功,需要设置:
$ cd
$ vim startup_run.sh
# startup_run.sh的内容
LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
echo "[$LOGTIME] startup run..." >>/root/startup_run.log
service ssh start >>/root/startup_run.log
#service mysql start >>/root/startup_run.log
$ chmod +x startup_run.sh
$ vim .bashrc
# 末尾新增
# startup run
if [ -f /root/startup_run.sh ]; then
/root/startup_run.sh
fi
1.2 总结
#!/bin/bash
#ssh服务状态检查
/etc/init.d/ssh status
if [ $? -eq 0 ]; then
echo "ssh server is running."
else
echo "start install openssh-server...";
apt-get update; apt-get install vim openssh-server -y;
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config;
echo "RSAAuthentication yes" >> /etc/ssh/sshd_config;
echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config;
service ssh restart
fi
# 修改密码(ubuntu系统)
uname="root"
newpass="123456"
echo "$uname:$newpass" | chpasswd &> /dev/null
if [ $? -eq 0 ]; then
echo "密码修改成功"
else
echo "密码修改失败"
fi
# 再次检查服务状态
/etc/init.d/ssh status
if [ $? -eq 0 ]; then
echo "ssh server is running."
else
echo "ssh server is not running."
fi
# 设置开机启动
if [ -f "/root/startup_run.sh" ]; then
echo "startup find!"
else
echo "startup not find. start writte..."
echo "LOGTIME=$(date '+%Y-%m-%d %H:%M:%S')" >> /root/startup_run.sh;
echo "echo '[$LOGTIME] startup run...' >>/root/startup_run.log" >> /root/startup_run.sh;
echo "service ssh start >>/root/startup_run.log" >> /root/startup_run.sh;
chmod +x /root/startup_run.sh;
echo "if [ -f /root/startup_run.sh ]; then" >> /root/.bashrc;
echo " /root/startup_run.sh" >> /root/.bashrc;
echo "fi" >> /root/.bashrc;
source /root/.bashrc
fi
1.3 pycharm远程连接docker容器内的项目
Xshell测试连接
测试远程连接是否可行,我这里使用xshell6连接容器,成功进去到容器内!
容器外测试连接
测试通过后,在本地使用pycharm进行远程环境连接配置!
step1
本地配置项目环境:
File--->Setting--->Project: xxxxxx --->Project Interpreter ---> 添加环境 ---> SSH Interpreter
输入容器的IP与端口,注意这里的ip是宿主机的ip地址,端口为容器内22端口的映射端口!
下一步选择容器内的python环境即可!
step2
Tools配置上传
Tools---> Deployment ---> Connection里面设置根目录---> Mappings里面设置映射路径
远程测试:
-
项目路径下文件列表
-
pycharm下创建、修改文件
在xshell里可以看到有相应的文件:
经过测试,相应连接成功了!!
清澈的爱,只为中国