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里面设置映射路径


远程测试:

  1. 项目路径下文件列表

  2. pycharm下创建、修改文件

    在xshell里可以看到有相应的文件:

    经过测试,相应连接成功了!!

posted @ 2020-11-03 14:43  巴蜀秀才  阅读(1312)  评论(0编辑  收藏  举报