使用PyCharm专业版,记住一定是专业版(社区版不提供远程服务)
在服务器上安装docker

启动docker服务:

systemctl start docker

拉取镜像(这里我使用的是python3.7.4版本,不加版本号默认使用最新版)

docker pull python:3.7.4

下载完毕,使用docker images 查看本地镜像

dockerfile部署python服务 docker python3.7_docker

执行以下命令创建docker容器,并映射端口号22为8022,映射端口号可以自己设置,后面ssh连接需要使用

docker run -itd --name 容器名 --shm-size=1g --ulimit memlock=-1 --ulimit stack=67108864 -p 端口号:22 -p 5000:5000 -v /data/:/data/ 镜像名 /bin/bash

        1、-d 表示启动守护式进程,不主动关闭会一直运行

        2、-v 表示宿主机目录映射python容器目录

进入容器后执行以下命令:

# 进入容器
sudo docker exec -it 容器名 /bin/bash
# 更新
apt-get update
# 安装ssh服务
apt-get install openssh-server

配置远程服务

1.在容器内部输入以下命令

# 设置root账号密码,可以自定义但是一定要记住,后面要用
echo 'root:password' | chpasswd

# 允许使用root身份以密码登录,/etc/ssh/sshd_config是配置文件路径
sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd

echo "export VISIBLE=now" >> /etc/profile

2.配置完成,重启ssh服务

service ssh restart

3.退出容器测试

# 退出容器
exit

# 测试端口是否映射到之前自己设置的端口号上
docker port 容器名 22

# 如果输出格式为以下,表明端口已经映射到8022端口上
0.0.0.0:8022

4.新建一个终端测试ssh连接

# 新终端连接docker中python容器,密码为password(自己设置的密码)
ssh root@宿主机ip -p 8022

5.如果出现以下错误

Permission denied, please try again.

6.进入容器修改配置文件

# 容器内没有 vim,安装
apt-get install vim

# 修改配置文件(容器内部操作)
vim /etc/ssh/sshd_config

7.将PermitRootLoginPasswordAuthentication改为yes,将注释符#删除,保存退出

dockerfile部署python服务 docker python3.7_pycharm_02

 

dockerfile部署python服务 docker python3.7_python_03

 8.重启ssh服务

service ssh restart

9.可使用命令查看ssh是否启动,如果有以下结果,说明启动成功

ps -ef | grep ssh

dockerfile部署python服务 docker python3.7_docker_04

 10.接下来我们在本地主机上测试,win+R输入cmd进入命令黑窗口

ssh -p 映射端口号 root@虚拟机ip地址

password:输入之前设置的密码

连接成功,我们开始最后一步

pycharm中的配置

pycharm中新建项目

dockerfile部署python服务 docker python3.7_pycharm_05

选择python解释器

dockerfile部署python服务 docker python3.7_python_06

dockerfile部署python服务 docker python3.7_端口号_07

 

dockerfile部署python服务 docker python3.7_端口号_08

新建sftp

dockerfile部署python服务 docker python3.7_端口号_09

dockerfile部署python服务 docker python3.7_python_10

 

dockerfile部署python服务 docker python3.7_pycharm_11

dockerfile部署python服务 docker python3.7_pycharm_12

查看容器内项目内容

dockerfile部署python服务 docker python3.7_python_13

  

常见问题

1、运行时报错找不到文件,如下图

dockerfile部署python服务 docker python3.7_docker_14

解决:

dockerfile部署python服务 docker python3.7_docker_15

  在虚拟机中找到虚拟机项目文件,或者新建一个项目文件,将文件路径和本地文件映射

dockerfile部署python服务 docker python3.7_docker_16

 

dockerfile部署python服务 docker python3.7_docker_17

 

 好了,大功告成了!!

有问题可留言,相互学习进步!!